Bagaimanakah saya dapat menjelaskan perbezaan antara API dan SDK kepada orang yang tidak tahu apa-apa tentangnya?


Jawapan 1:

Kedua-duanya bertujuan untuk pemaju, tetapi pada tahap yang berbeza. Perbezaannya ada kaitan dengan mana anda duduk sebagai pemaju relatif kepada pengguna akhir, dan sama ada anda mencipta sesuatu dari awal atau menggunakan fungsi sedia ada dan membungkusnya untuk pengguna akhir. Terdapat kawasan kelabu antara mencipta dan memakan kerana mereka boleh berlaku begitu dekat - pembezaan boleh bertukar menjadi hairsplitting dalam beberapa kes.

SDK adalah seperti kotak Legos - anda mesti melakukan semua perhimpunan, tetapi potongan dan dokumentasi telah dibentangkan untuk anda. Dengan cara ini, anda mencipta terutamanya kerana SDK adalah hanya bahan mentah dan dokumentasi.

API adalah "penciptaan selesai" untuk tujuan tertentu tetapi tanpa antara muka pengguna. Oleh itu, apabila bekerja dengan API, anda memakan API itu sambil membuat beberapa jenis antara muka pengguna untuk pengguna akhir. Oleh itu, terdapat campuran penciptaan dan penggunaan apabila menghampiri API.


Jawapan 2:

Saya tidak pasti bahawa saya akan memanggil SDK campuran kek, dan tidak akan memanggil API resipi. Dua jawapan yang lain secara teknikal betul, tetapi saya fikir bahawa sebahagian daripada masalah di sini adalah salah satu penonton. Ini bukan orang teknikal, jadi apa yang kelihatan seperti penjelasan yang jelas mungkin tidak demikian.

Saya fikir analogi adalah baik, tetapi ia perlu menunjukkan perbezaan antara kedua-dua perkara itu, dan, seperti yang anda katakan, campuran kek dan resipi tidak benar-benar memberikannya. Contoh saya menggunakan dua perkara yang tidak berkaitan, bukannya yang berkaitan, dan menyederhanakan perkara, tetapi saya fikir ia mungkin membantu.

Kelebihan saya untuk API adalah melihat secara khusus pada API CRUD. Oleh itu, ia boleh dianggap serupa dengan bank. Anda boleh membuka akaun untuk memegang wang anda (membuat), anda boleh menyemak baki akaun anda (baca), anda boleh menambah atau mengeluarkan wang dari itu (pembaruan), dan anda boleh menutupnya (padam). Anda mungkin dibenarkan untuk melihat, mendepositkan wang, dan mengambil wang dari akaun milik orang lain (pengesahan dan kebenaran).

Suatu SDK, sebaliknya, adalah seperti set alat. Ia menyediakan perkara yang boleh anda gunakan untuk membina atau mengekalkan sesuatu. Anda mungkin menemui tukul, beberapa pemutar skru, tang, dan lain-lain di dalamnya.


Jawapan 3:

Ini mengingatkan saya perbincangan dengan rakan ahli kimia saya yang terganggu oleh perbincangan yang sedang berlaku dengan rakan kejuruteraan perisian yang lain.

Kami terpaksa menjelaskan perkara itu, jadi kami memilih sesuatu yang dia sudah menjadi tuan.

Jadi perbincangan itu seperti ini:

CF (Rakan Kimia): Lelaki yang anda menjengkelkan saya dengan sesuatu tentang API dan beberapa SDK, apa itu?

US (saya dan SF (kawan perisian)): haha, okay ..

AS: Biarkanlah API sebagai sesuatu seperti barang yang anda simpan di kedai anda. Seperti tablet, suntikan, sirap, minuman dan lain-lain.

Dan SDK boleh menjadi koleksi semua item di atas, yang merupakan kedai anda.

Jika seseorang memerlukan suntikan, itu bermakna dia perlu menggunakan API.

Jika seseorang memerlukan banyak ubat, mereka boleh memilih untuk melawat kedai kimia.

CF: Ohh, adakah ia?. Sudah tentu saya tidak mendapat banyak, tetapi ini membantu.