כיצד אוכל להסביר את ההבדל בין API ל- SDK לאנשים שלא יודעים עליהם כלום?


תשובה 1:

שניהם מכוונים למפתחים, אך ברמות גימור שונות. ההבדל קשור למקום בו אתה יושב כמפתח יחסית למשתמש הקצה, והאם אתה יוצר משהו מאפס או צורך פונקציונליות קיימת ואורז אותו למשתמש קצה. יכול להיות אזור אפור בין יצירה לצריכה מכיוון שהם יכולים לקרות כל כך קרובים זה לזה - ההבחנה יכולה להפוך במקרים מסוימים לפיצול שיער.

SDK הוא כמו קופסת לגוס - עליכם לבצע את כל ההרכבה, אך החלקים והתיעוד הונחו עבורכם. בדרך זו אתה בעיקר יוצר מכיוון ש- SDK הוא בעיקר רק חומרי גלם ותיעוד.

ממשק API הוא "יצירה מוגמרת" למטרה ספציפית אך ללא ממשק משתמש. לכן, כשעובדים עם ממשק API, אתם צורכים ממשק API זה תוך כדי יצירת ממשק משתמש כלשהו למשתמש הקצה. לפיכך, יש שילוב של יצירה וצריכה כאשר ניגשים לממשקי API.


תשובה 2:

אני לא בטוח שהייתי קורא ל- SDK תערובת עוגה, וגם לא הייתי קורא ל- API מתכון. שתי התשובות האחרות נכונות מבחינה טכנית, אבל אני חושב שחלק מהבעיה כאן הוא של קהל. אלה לא אנשים טכניים, ולכן מה שנראה כמו הסבר ברור אולי לא כזה.

אני חושב שהאנלוגיה זה בסדר, אבל היא צריכה להראות באמת את ההבדל בין שני הדברים, וכאמור, תערובת עוגה ומתכון לא ממש מספקים את זה. הדוגמה שלי משתמשת בשני דברים שאינם קשורים, ולא בדברים הקשורים להם, ומפשטת דברים יתר, אבל אני חושב שזה עשוי לעזור.

הפשטות יתר שלי לממשק API היא להסתכל ספציפית על ממשק API של CRUD. כיוון שכך, זה יכול להיחשב דומה לבנק. אתה יכול לפתוח חשבון כדי להחזיק את הכסף שלך (ליצור), אתה יכול לבדוק את יתרת החשבון שלך (לקרוא), אתה יכול להוסיף או להסיר ממנו כסף (עדכן), ואתה יכול לסגור אותו (למחוק). יתכן שתורשה להסתכל, להפקיד כסף ולקחת כסף מחשבונות השייכים לאחרים (אימות ואישור).

SDK, לעומת זאת, הוא כמו מערך כלים. זה מספק דברים שאתה יכול להשתמש בהם כדי לבנות או לתחזק משהו. אתה עשוי למצוא בו פטיש, כמה מברגים, צבת וכו '.


תשובה 3:

זה מזכיר לי דיון עם חבריי הכימאי שהתעצבן מהדיון שקיים עם חבר מהנדס תוכנה אחר.

היינו צריכים להסביר לו את הדברים, אז בחרנו משהו שהוא כבר אדון.

אז הדיון עבר כך:

CF (חבר כימאי): חבר'ה שאתה מרגיז אותי עם משהו שקשור ל- API וכמה SDK, מה הם אלה?

ארה"ב (אני ו- SF (חבר תוכנה)): חה, בסדר ..

ארה"ב: תן לקחת את API כמשהו כמו הפריטים שאתה מחזיק בחנות שלך. כמו טבליות, הזרקה, סירופ, שתייה ודברים אחרים.

ו- SDK יכול להיות אוסף של כל הפריטים הנ"ל, שהיא החנות שלך.

אם מישהו זקוק להזרקה, פירוש הדבר שהוא צריך להשתמש בממשק API.

אם מישהו זקוק להרבה תרופות, הוא יכול לבחור לבקר בחנות כימאים.

CF: אהה, נכון? תמיד לא קיבלתי הרבה, אבל זה עזר.