114447

آیا طراحی API یک هنر است؟

در نگاه اول، کدنویسی شاید شباهت چندانی با نقاشی، شعر یا آهنگسازی نداشته باشد. اما می‌توان استدلال کرد که ترکیب تفکر تحلیلی و خلاقیت در طراحی API، آن را به همان اندازهٔ سایر فعالیت‌های خلاقانه به یک «هنر» تبدیل می‌کند.

در اجلاس API آستین ۲۰۲۴، دیوید بیزاک، مدیر ارشد API شرکت Apiture، دربارهٔ «هنر طراحی API» و نقش حیاتی تجربهٔ توسعه‌دهنده (Developer Experience) در پذیرش، استفادهٔ مداوم و تبلیغ APIها سخنرانی کرد.

بیزاک طراحی API را یک فرآیند «ترجمه» می‌داند: «شما نیازمندی‌های تیم محصول را می‌گیرید — مثلاً محصول جدید یا فیچر جدید — آن‌ها را درک می‌کنید و سپس به یک API تبدیل می‌کنید که این قابلیت‌ها را در اختیار دیگران قرار دهد تا روی آن برنامه بسازند.»

اما با ظهور اتوماسیون و تولید کد توسط هوش مصنوعی، آیا خطر این وجود دارد که APIها بی‌روح، یکنواخت یا حتی کاملاً خراب شوند؟ بیایید بررسی کنیم.

خلاقیت در برابر تجربهٔ توسعه‌دهنده

در آهنگ معروف Science vs. Romance گروه Rilo Kiley در سال ۲۰۰۱، جنی لوییس می‌خواند: «هنوز ربات‌هایی در شبکهٔ صفر و یک نیستیم.»

پیام این است که وقتی بیش از حد به فناوری وابسته شویم، فناوری ناکام می‌ماند. با دیدن شکست‌های اخیر هوش مصنوعی، این جمله هنوز هم صدق می‌کند.

بیزاک می‌گوید مهم‌ترین بخش طراحی API «درک دامنهٔ مسئله و سپس نگاشت آن به یک API» است. اما جالب اینجاست که او معتقد است خلاقیتِ صرف گاهی دقیقاً در تضاد با تجربهٔ توسعه‌دهندهٔ خوب قرار می‌گیرد:

  • خلاقیت به دنبال تازگی است → اما DX به ثبات و یکنواختی نیاز دارد
  • خلاقیت دوست دارد همه چیز را از نو اختراع کند → اما DX می‌گوید از الگوهای موجود استفاده کن
  • خلاقیت ممکن است استانداردها را زیر پا بگذارد → اما DX می‌گوید استاندارد را رعایت کن
  • خلاقیت منحنی یادگیری را تند می‌کند → اما DX می‌خواهد منحنی یادگیری ملایم باشد

به قول بیزاک: «APIها باید کاربردی (utilitarian) باشند… باید کارکرد را بر زیبایی و محتوا را بر ظاهر ترجیح دهند.»

وبلاگ Axway هم دربارهٔ «اصل کمترین شگفتی» (principle of least astonishment) صحبت می‌کند: هیچ چیز نباید توسعه‌دهنده را شوکه کند. توکن احراز هویت باید استاندارد باشد، کدهای خطا آشنا و پیام‌ها قابل فهم.

در دنیای هنر، این نوع APIها شبیه مینیمالیسم یا بروتالیسم هستند — شاید سلیقهٔ شما نباشد، اما نمی‌توانید بگویید «هنر نیستند».

اصول راهنمای طراحی API

البته هیچ API در خلأ ساخته نمی‌شود. بیزاک تأکید می‌کند که جنبهٔ علمی هم بسیار مهم است:

  • تحلیل و مدل‌سازی دامنه
  • بردارهای حمله
  • انطباق قانونی (Compliance)
  • سطح تماس API
  • وضوح و کامل بودن
  • سهولت استفاده و پیاده‌سازی

به همین دلیل او طراحی API را «هنر تصمیم‌گیری» می‌نامد: آیا این endpoint اضافی واقعاً لازم است؟ آیا OAuth 2.0 بهترین گزینه برای این API است؟

بیزاک این کار را یک فعالیت «تمام‌مغزی» (whole-brain activity) می‌داند که هم نیمکرهٔ چپ (منطقی، تحلیلی) و هم نیمکرهٔ راست (خلاق، خیال‌پرداز) را درگیر می‌کند.

و همان‌طور که ارنست همینگوی به اسکات فیتزجرالد گفت: «من یک صفحه شاهکار می‌نویسم و نود و یک صفحه آشغال. سعی می‌کنم آشغال‌ها را بیندازم سطل.» این دقیقاً همان کاری است که طراحان خوب API و نویسندگان مستندات عالی انجام می‌دهند.

آیا روندهای جدید (AI و اتوماسیون) برای هنر طراحی API خطرناک‌اند؟

در تئوری، مینیمالیسم، وضوح و یکنواختی چیزهایی هستند که هوش مصنوعی باید در آن‌ها عالی باشد. در عمل، هنوز این‌طور نیست.

بیزاک تأکید می‌کند که هنوز به هوش ارگانیک انسانی نیاز داریم تا API:

  • قابل کشف (discoverable) باشد
  • قابل فهم باشد
  • مشتریان را از تغییرات بک‌اند محافظت کند
  • با قوانین و مقررات حوزهٔ مربوطه (مثلاً بانکداری، سلامت) کاملاً هماهنگ باشد

در حال حاضر، مدل‌های هوش مصنوعی مولد معمولاً از تغییرات لحظه‌ای قوانین آگاه نیستند و دانش عمیق دامنه را ندارند — دو چیزی که برای ساخت APIهای قانونی و امن حیاتی‌اند.

از طرف دیگر، استانداردسازی (مثل استفاده از مشخصه‌های OpenAPI) و اتوماسیون (مثل تولید خودکار SDKها) واقعاً به پذیرش و مصرف API کمک کرده‌اند — هرچند شاید «هنری» به نظر نیایند.

نتیجه‌گیری: بله، طراحی API یک هنر است

با نقل قولی از آلبرت اینشتین تمام کنیم: «وقتی سطح بالایی از مهارت فنی به دست آمد، علم و هنر در زیبایی‌شناسی، انعطاف‌پذیری و فرم به هم می‌رسند. بزرگ‌ترین دانشمندان همیشه هنرمند هم هستند.»

اگر اینشتین درست می‌گوید، باید جدی به نگرانی‌ها دربارهٔ کدهای تولیدشده توسط هوش مصنوعی و اتوماسیون بیش از حد در دنیای API گوش کنیم.

به قول بیزاک: «طراحی API خیلی بیشتر از این است که یک پرامپت بدهی و جواب بگیری.»

اما در آینده، شاید نقش توسعه‌دهنده تغییر کند: به جای نوشتن API، انتخاب کنیم کدام APIها و سبک‌ها برای آموزش هوش مصنوعی مناسب‌اند، کدام داده‌های آموزشی با دامنهٔ ما سازگارند و کدام سبک با نیازهای توسعه‌دهندگانمان هم‌خوانی دارد.

در نهایت، طراحی API یک پارادوکس زیباست: به همان اندازه که نیاز به دانش فنی و استاندارد دارد، نیاز به درک عمیق از نیازها و انتظارات کاربران و آسان کردن زندگی توسعه‌دهندگان هم دارد.

و این دقیقاً همان چیزی است که اکثر شکل‌های هنری را تعریف می‌کند: موسیقی نیاز به گام و کلید دارد، ادبیات نیاز به دستور زبان درست دارد، و طراحی API هم نیاز به استاندارد و وضوح دارد — اما بدون شور، همدلی و درک انسانی، هرگز «شاهکار» نمی‌شود.

تفاوت‌های کلیدی بین Redis و Apache Kafka در چیست؟

دیدگاهتان را بنویسید

سبد خرید
علاقه‌مندی‌ها
مشاهدات اخیر
دسته بندی ها