راهنمای کامل مصاحبه طراحی API

این مقاله توسط فهیم الحق، بنیانگذار و مدیر عامل Educative نوشته شده است.
وقتی شنیدم متا شروع به ارائه نامزدهای مهندسی نرم افزار کرده است مصاحبه های طراحی API، می دانستم روندی در حال شروع است. کلمه به سرعت در میان شرکتهای MAANG جابهجا میشود، بنابراین سایرین نیز از این شرکتها عقب نبودند.
بنابراین، مصاحبه طراحی API دقیقاً چیست و چرا شرکتهای فناوری برتر مانند Meta شروع به اولویتبندی آن کردهاند؟
برای جمع بندی، مصاحبه های طراحی زیرمجموعه ای منحصر به فرد از مصاحبه های فنی در یک حلقه مصاحبه معمولی هستند. آنها به دلایل مختلفی با مصاحبه های کدگذاری سنتی کاملاً متفاوت هستند.
- آنها معمولاً از شما نیازی به نوشتن هیچ کدی ندارند
- از شما انتظار می رود که گفتگو را رهبری کنید
- آنها یکی از ابزارهای مرتبسازی اولیه هستند که مصاحبهکنندگان برای تعیین سطح ارشدیت شما استفاده میکنند
ناآماده شدن در هر مصاحبه طراحی، خطر گرفتن را به همراه دارد پایین تراز شد به یک موقعیت کمتر ارشد یا حتی از دست دادن گام بزرگ بعدی در حرفه خود به طور کامل
مصاحبه طراحی API برای حلقه مصاحبه فنی توسعه دهندگان نرم افزار نسبتاً جدید است. در نتیجه نیاز به آمادگی خاصی دارد.
از آنجایی که میدانیم مصاحبههای طراحی API در شرکتهای فناوری برتر محبوبیت زیادی پیدا کرده است – هم برای استخدام مدیران و هم برای توسعهدهندگان – ما یک دوره آموزشی واقعاً بینظیر در مورد طراحی API ایجاد کردیم. (به طور جدی، ما نتوانستیم منبع دیگری مانند این را در هیچ کجای اینترنت پیدا کنیم!)
امروز، ما مشتاقیم که شما را با دوره جدید خود آشنا کنیم: مصاحبه طراحی API. این خبرنامه زمینه را برای شما فراهم می کند تا در این مرز جدید پیمایش کنید و به شما کمک می کند تا از رقبای خود برای مصاحبه بعدی خود پیشی بگیرید.
اول، من پوشش می دهم چرا شما باید یک مصاحبه طراحی API را آماده کنید و چگونه آن را آماده کنید. در مرحله بعد، من روند طراحی را (با مخفف خاص خودمان) شرح می دهم. در نهایت، من دقیقاً به شما میگویم که چه چیزی میتوانید از مصاحبه Grokking در طراحی API انتظار داشته باشید.
چرا باید برای مصاحبه طراحی API آماده شوید؟
مصاحبه طراحی API یک پدیده جدید در حلقه مصاحبه فناوری است. بنابراین ممکن است از خود بپرسید که آیا در فرآیند مصاحبه برای شما اعمال خواهد شد یا خیر. دو نقشی که اکنون باید برای یک مصاحبه طراحی API آماده شود عبارتند از توسعه دهندگان جلویی و توسعه دهندگان بک اند.
برای بهینهسازی یک API، باید کل چرخه عمر یک درخواست را، از قسمت جلویی تا بکاند، طی کنید. مانند سایر مصاحبه های طراحی، داوطلبان ارشد بیشتر با انتظارات بالاتری برای کارایی و کامل بودن طراحی مواجه خواهند شد. حتی به عنوان یک توسعهدهنده جوان، ممکن است در معرض یک مصاحبه طراحی API باشید.
گفته می شود، تقریباً هر توسعه دهنده حرفه ای باید این دوره را بررسی کند. اگرچه در نام آن “مصاحبه” وجود دارد، این دوره بسیار بیشتر از تمرکز بر آماده سازی مصاحبه است.
حتی اگر شما یک مبتدی کامل برای API ها هستید، Grokking the API Design Interview یک رویکرد جامع برای یادگیری هر آنچه که باید در مورد طراحی و توسعه API مدرن بدانید ارائه می دهد. این دوره بر اساس این مفاهیم اساسی در یک رویکرد از پایین به بالا است. ما علاوه بر غواصی عمیق در “چگونه” طراحی API، “چرا” را نیز مورد بحث قرار می دهیم تا بتوانید آموزه ها را در پروژه های معنادار به کار ببرید در حرفه شما
بعداً به این خواهیم پرداخت که چگونه این دوره شما را برای کار با APIها در کار توسعه روزانه خود آماده می کند. اما ابتدا، اجازه دهید به خود مصاحبه طراحی API برگردیم، زیرا الهام بخش این دوره بود.
نحوه استخدام از مصاحبه طراحی API
اگر برای نقشی که ارتباطی با طراحی و ساخت محصولات جدید دارد درخواست می دهید، این احتمال وجود دارد که با یک مصاحبه طراحی API روبرو شوید. صرف نظر از دانش توسعه API شما، باید این کار را انجام دهید ارزیابی، برنامه ریزی، طراحی و بررسی یک API قادر به الزامات تعیین شده توسط مصاحبه کننده شما باشد.
مهم است که به یاد داشته باشید که این مصاحبه ها نیز به سرعت انجام می شود. شما نیاز دارید ارسال سیگنال های قابل استخدام فقط در حدود 40 دقیقه به مصاحبه کنندگان خود. از شما انتظار می رود که این مکالمه را بر روی طراحی API خود هدایت کنید، بنابراین آگاهی در مورد چرخه عمر کلی توسعه نرم افزار یک API بسیار مهم است.
اجازه دهید به طور خلاصه به این بپردازیم که یک مصاحبه موفق چگونه باید باشد.
1- مصاحبه با الف شروع می شود بیان مسئله بسیار گسترده از مصاحبه کننده معمولا چیزی در امتداد خطوط «طراحی یک API برای…»
2- برای اطمینان از درک مشکل، باید آن را روشن کنید الزامات کاربردی و غیر عملکردی. API باید چه کاری انجام دهد؟ چند کاربر خواهد داشت؟ چگونه انتظار می رود رشد یا تغییر کند؟
سعی کنید تمام اطلاعات مورد نیاز خود را از مصاحبه کننده دریافت کنید. (ما برخی از جزئیات لازم را بررسی خواهیم کرد تا کمی بعداً پوشش دهیم.)
3- بعد، شروع کنید فاز طراحی. در اینجا باید به معماری و پروتکل های مورد نیاز برای برآوردن الزامات عملکردی بپردازید. API به چه نقاط پایانی نیاز دارد؟ از چه نوع فرمت داده برای تبادل اطلاعات استفاده می کنید؟
4- در نهایت، شما نیاز دارید طراحی خود را بهینه کنیدو تکنیک هایی مانند رندر سمت مشتری و رندر سمت سرور را در نظر بگیرید.
استخدامهای قوی نه تنها در کل چرخه عمر تماس API قدم میزنند، بلکه میتوانند طراحی خود را با توجه به بودجه تاخیر. با توجه به ارزیابیهای اولیه بر اساس دادهها و الزامات استفاده، در نظر بگیرید که چگونه میتوانید API را در حالی که در بودجه چند صد میلیثانیهای باقی میمانید، بهبود ببخشید.
اکنون که ایدهای دارید که یک مصاحبهکننده در یک مصاحبه طراحی API چه انتظاراتی دارد، بیایید نگاهی دقیقتر به نوع مواد فنی بیندازیم که باید برای آن آماده شوید.
نحوه درک فرآیند طراحی API
دانستن اینکه از کجا شروع کنید می تواند مشکل باشد. عوامل متعددی وجود دارد که قبل از اینکه بتوانیم وارد طراحی شویم باید شناسایی شوند.
-
کاربر: آیا این یک ابزار داخلی است یا محصولی است که ممکن است طرف های دیگر به آن نیاز داشته باشند؟
-
مسئله: هدف API حل چیست؟
-
نوع پاسخ: نقاط پایانی و تماس های موفق یا ناموفق باید به وضوح تعریف شوند.
-
مورد استفاده: API چگونه پیاده سازی خواهد شد؟ این برای تست و رفع اشکال ضروری است.
-
مقیاس پذیری: برای افزایش تقاضا برنامه ریزی کنید. API باید انعطاف پذیر و قابل گسترش باشد.
-
مستندات: برای ادغام موفقیت آمیز API توسط سایر توسعه دهندگان چه مستنداتی لازم است؟ این شامل ساختار، رفتارها و پارامترهایی است که باید تعریف شوند.
این موارد بسیار قابل تامل است، بنابراین بیایید اطلاعاتی را که باید در مصاحبه منتقل کنید، تجزیه و تحلیل کنیم. خوشبختانه، ما یک مخفف برای اهداف حفظ داریم: REDCAMEL.
این مخفف مخفف:
- الزامات (RE)
- ملاحظات طراحی (DC)
- مدل API (AM)
- ارزیابی و بودجه تأخیر (EL)
الزامات (RE)
عملکردی و الزامات غیر کاربردی باید توجه و روشن شود. بیان مشکل و انگیزه توسعه API را روشن کنید. پس از بحث الزامات، باید اطلاع رسانی کنید محاسبات پشت پاکت در خطوط لوله داده، کاربران و تعداد درخواست ها.
ملاحظات طراحی (DC)
بعد، می توانیم طراحی سطح بالای API را در نظر بگیریم.
-
جریان کار: چگونه API در سیستم بزرگتر قرار می گیرد؟
-
سبک های معماری API: با توجه به کلاینت، دروازه API و سرورهای باطن به چه سبک API نیاز است؟
- معماری های رایج API عبارتند از: REST، GraphQL و RPC
-
فرمت های داده: داده های ارائه شده توسط API چگونه باید قالب بندی شوند؟
- فرمت های رایج عبارتند از: JSON، XML، باینری
-
پروتکل ها و نسخه ها: به عنوان پیروی از سبک معماری، از چه پروتکل ارتباطی مشتری و سرور استفاده خواهد شد؟
مدل API (AM)
این جایی است که شما ابتدا یک را توسعه خواهید داد URL پایه و ضروری است نقاط پایانی API. به این ترتیب که طراحی شما باید شامل موارد زیر باشد:
-
موجودیت های داده: با توجه به موارد استفاده، API شما به چه عناصر داده ای نیاز دارد؟
-
فرمت نوع درخواست-پاسخ: فرمت هر عملیات چگونه است؟
-
درخواست های ناموفق: API شما باید دارای کدهای وضعیت درخواست ناموفق به وضوح تعریف شده باشد.
ارزیابی و بودجه تأخیر (EL)
پس از تشریح ساختار API عملکردی، زمان آن فرا رسیده است که بررسی کنیم که چگونه طراحی با موفقیت مطابقت خواهد کرد الزامات غیر کاربردی.
-
ارزیابی و بهبود بخشد: با توجه به انتخاب های طراحی خود، مبادلات را پیمایش کنید. فرآیند فکری که در پس انتخاب هایی که انجام داده اید را توضیح دهید. اگر گزینه های بهینه تر دیگری وجود دارد، می توانید تغییرات را پیشنهاد دهید.
-
بودجه تاخیر: محاسباتی که در ابتدا انجام دادید را دوباره بررسی کنید. از این اعداد برای محاسبه زمان پاسخ پیشنهادی API استفاده کنید.
چرا دوره جدید ما شما را برای مصاحبه آماده می کند و بقیه حرفه شما
مصاحبه طراحی API Grokking با یک رویکرد جامع برای درک معماری APIها و نحوه چسباندن بهینه قسمت جلویی یک سیستم به قسمت پشتی باز می شود.
پس از پوشش اصول اولیه شبکه ها، معماری های API، در دسترس بودن، مقیاس پذیری و امنیت، این دوره ارائه می کند. مشکلات طراحی دنیای واقعی و رئوس مطالب دقیقا چگونه آنها را حل کنیم.
دارای مشکلات طراحی اساسی است که قابل استفاده مجدد برای خواننده است. یادگیری و درک این سبکهای پایه API به شما کمک میکند تا مشکلات پیچیدهتر طراحی API را حل کنید. نه تنها این نوع خدمات پایه به شما کمک خواهد کرد حل مسائل پیچیده تر مصاحبه، اما آنها خواهند کرد مهارت های توسعه دهنده خود را ارتقا دهید در دنیای واقعی نیز!
ما چگونگی و چرایی APIهای رایج مانند:
- طراحی الف سرویس جستجو
- طراحی الف سرویس فایل
- طراحی الف خدمات نظر دادن
- طراحی الف خدمات فرعی میخانه
در حالی که اینها تنها خدمات اساسی نیستند که اهمیت دارند، اما برخی از رایج ترین و قابل استفاده ترین هستند.
به دنبال خدمات پایه، ما شروع به بحث در مورد خدمات API خاص سازمان می کنیم. این دوره API های سازمان هایی مانند:
- نقشه های گوگل
- فیس بوک مسنجر
- بزرگنمایی
- درگاه پرداخت Stripe
- و خیلی بیشتر!
با توجه به عملکرد تقریباً بیپایان APIهای فرضی، به عنوان یک مصاحبهشونده، میتوان تقریباً هر چیزی را از شما پرسید. اما، این APIها در دوره نشان دهنده این هستند مهمترین ویژگی برای هر سرویس داده شده (به عنوان مثال درگاه پرداخت برای Stripe).
هنگام انتخاب APIها برای پوشش، به تنوع توجه زیادی داشتیم. ما میخواهیم مطمئن شویم که صرفنظر از اینکه در چه صنعتی مشغول هستید، میتوانید تجربه دوره خود را به زندگی حرفهای خود تبدیل کنید.
در نهایت، برای تأکید بر اهمیت طراحی API انعطافپذیر، چندین قطع API قابل توجه را پوشش میدهیم و برخی از تکنیکهای کاهش خرابی API را توصیه میکنیم که به تقویت سیستم کمک میکنند. طراحی یک API برای انعطاف پذیری در مصاحبه به شما کمک می کند تا در میان نامزدها برجسته شوید – و شما را آماده می کند تا از هزینه های شکست API در نقش های آینده خود جلوگیری کنید.
با طراحی API تجربه عملی داشته باشید
API ها در همه شرکت های دیجیتال موفق وجود دارند و رهبران صنعت استانداردهایی را برای پیاده سازی API ها برای تغییر محصولات خود و افزایش مزیت رقابتی تعیین کرده اند.
به عنوان یک توسعه دهنده، اگر می خواهید در صنعت موفق شوید، باید (حداقل) نحوه کار با API ها را بدانید. برای جلوتر ماندن از منحنی، باید در مصاحبه طراحی API برتر باشید.
ما معتقدیم که Grokking the API Design Interview به شما در انجام هر دو کمک می کند.
ما به این دوره بسیار افتخار می کنیم و امیدواریم که از آن استفاده فراوانی ببرید، چه در حال آماده شدن برای مصاحبه باشید و چه بخواهید درباره طراحی و ساخت API اطلاعات بیشتری کسب کنید.
دوست دارید در ادامه به چه چیزی بپردازیم؟
مثل همیشه، یادگیری مبارک!