Kako objasniti razliku između API-ja i SDK-a ljudima koji ne znaju ništa o njima?


Odgovor 1:

Oba su usmjerena prema programerima, ali na različitim razinama završetka. Razlika se odnosi na to gdje sjedite kao programer u odnosu na krajnjeg korisnika i da li nešto stvarate od nule ili trošite postojeću funkcionalnost i pakirate je za krajnjeg korisnika. Između stvaranja i konzumiranja može postojati sivo područje jer se može dogoditi tako blizu jedan zajedno - razlika se u nekim slučajevima može pretvoriti u rezanje kose.

SDK je poput kutije Legosa - morate obaviti svu montažu, ali komadi i dokumentacija su pripremljeni za vas. Na ovaj način uglavnom stvarate jer je SDK uglavnom samo sirovine i dokumentacija.

API je "gotova kreacija" za određenu svrhu, ali bez korisničkog sučelja. Dakle, tijekom rada s API-jem konzumirate taj API dok stvarate nekakvo korisničko sučelje za krajnjeg korisnika. Dakle, dolazi do mješavine stvaranja i potrošnje prilikom pristupanja API-jevima.


Odgovor 2:

Nisam sigurna da bih zvala SDK mješavinu kolača, niti bih API nazvala receptom. Druga dva odgovora su tehnički ispravna, ali mislim da je dio problema ovdje publika. To nisu tehnički ljudi, pa ono što se čini kao jasno objašnjenje možda i nije takvo.

Mislim da je analogija u redu, ali treba istinski pokazati razliku između dvije stvari, a kao što kažete, kombinacija kolača i recept to zapravo ne pružaju. Moj primjer koristi dvije nepovezane stvari, a ne povezane i previše pojednostavljuje stvari, ali mislim da bi to moglo pomoći.

Moje pojednostavljenje za API je da pogledam posebno CRUD API. Kao takav, mogao bi se smatrati sličnim banci. Možete otvoriti račun da biste zadržali novac (stvorili), možete provjeriti stanje računa (čitati), možete dodati ili ukloniti novac s njega (ažurirati), a možete ga zatvoriti (izbrisati). Možda će vam biti dopušteno gledati, polagati novac i uzimati novac s računa koji pripadaju drugima (autentifikacija i autorizacija).

SDK je, s druge strane, poput skupa alata. Pruža stvari pomoću kojih možete nešto izgraditi ili održavati. U njemu možete pronaći čekić, odvijače, kliješta itd.


Odgovor 3:

Ovo me podsjeća na raspravu s mojim prijateljem kemičarom koji je bio nervozan zbog rasprave koja je trajala s drugim prijateljem softverskim inženjerom.

Morali smo mu objasniti stvari, pa smo odabrali nešto u čemu je on već majstor.

Pa je rasprava išla ovako:

CF (Prijatelj kemičara): Ljudi, iritirate me nečim o API-ju i nekom SDK-u, što su to?

SAD (ja i ​​SF (softverski prijatelj)): haha, ok ..

SAD: Neka API uzme kao nešto što držite u svojoj trgovini. Kao tablete, injekcije, sirup, pića i druge stvari.

A SDK može biti kolekcija svih ovih gore navedenih predmeta, što je vaša prodavaonica.

Ako je nekome potrebna injekcija, to znači da mora koristiti API.

Ako nekome treba puno lijekova, može se odlučiti posjetiti trgovinu ljekarnama.

CF: Oh, zar ne? Uvijek nisam dobio puno, ali to je pomoglo.