Kuidas selgitada API ja SDK erinevust inimestele, kes ei tea neist midagi?


Vastus 1:

Mõlemad on suunatud arendajatele, kuid erineval tasemel. Erinevus on seotud sellega, kus te lõpptarbijaga võrreldes arendajana asute ja kas loote midagi nullist või tarbite olemasolevat funktsionaalsust ja pakendate selle lõpptarbijale. Loomise ja tarbimise vahel võib olla hall piirkond, kuna need võivad juhtuda nii lähestikku - erinevus võib mõnel juhul osutuda juuste lõhestamiseks.

SDK on nagu Legose kast - peate kogu montaaži tegema, kuid tükid ja dokumentatsioon on teile ette valmistatud. Sel moel loote peamiselt seetõttu, et SDK on peamiselt ainult tooraine ja dokumentatsioon.

API on kindlale otstarbele loodud valmis looming, millel pole kasutajaliidest. Seega kasutate API-ga töötades seda API-d, luues lõppkasutajale mingisuguse kasutajaliidese. Seega on API-le lähenemisel segu loomingust ja tarbimisest.


Vastus 2:

Ma pole kindel, kas nimetaksin SDK-d koogiseguks ega API-d retseptiks. Kaks ülejäänud vastust on tehniliselt õiged, kuid ma arvan, et siin on osa probleemist publik. Need pole tehnilised inimesed, nii et selge selgitusena tunduv ei pruugi selline olla.

Arvan, et analoogia on hea, kuid see peab tõepoolest näitama kahe asja erinevust ning nagu te ütlete, kookisegu ja retsept seda tegelikult ei taga. Minu näide kasutab omavahel mitte seotud, vaid omavahel seotud asju ja lihtsustab asju, kuid arvan, et see võib aidata.

Minu API lihtsustamine on CRUD API vaatamine. Sellisena võiks seda pidada sarnaseks pangale. Saate avada konto oma raha hoidmiseks (luua), kontrollida oma konto saldot (lugeda), saate raha sinna lisada või eemaldada (värskendada) ning sulgeda (kustutada). Teil võidakse lubada vaadata, deponeerida raha ja võtta raha teistelt kontodelt (autentimine ja autoriseerimine).

SDK seevastu on nagu tööriistakomplekt. See pakub asju, mida saate kasutada millegi ehitamiseks või hooldamiseks. Selles võib olla haamer, mõned kruvikeerajad, tangid jne.


Vastus 3:

See tuletab mulle meelde arutelu oma keemikusõbraga, keda ärritas arutelu, mis toimus koos teiste tarkvarainseneride sõpradega.

Pidime talle asju seletama, nii et valisime midagi sellist, milles ta on juba peremees.

Nii et arutelu kulges järgmiselt:

CF (keemikute sõber): Poisid, kes ärritate mind API ja mõne SDK osas, mis need on?

USA (mina ja SF (tarkvara sõber)): haha, okei ..

USA: võtke API-st midagi sellist, nagu teie poes hoitavat eset. Nagu tablette, süste, siirupit, jooke ja muid asju.

Ja SDK võib olla kõigi nende ülaltoodud üksuste kogum, mis on teie pood.

Kui keegi vajab süstimist, tähendab see, et ta peab kasutama API-t.

Kui keegi vajab palju ravimeid, võib ta valida apteegi külastamise.

CF: Oh, kas on? .Igatahes ei saanud ma palju, aga see aitas.