وقتی یه قابلیت رو به یه AI Coding Agent میسپاریم، مسئله فقط تولید کد نیست؛ مسئله اینه که AI دقیقاً چه چیزی رو باید پیادهسازی کند؟
اینجاست که مفهوم Spec-Driven Development یا SDD مطرح میشود.
خب SDD یک رویکرد توسعه نرمافزار است که در آن Specification یا همان Spec به مرجع اصلی برای پیادهسازی و ارزیابی قابلیت تبدیل میشود.
به زبان ساده، یعنی بجای اینکه AI را مستقیماً از یک ایده یا Prompt به سمت کد بفرستیم، ابتدا مشخص میکنیم دقیقاً چه چیزی باید ساخته شود، چه رفتاری باید داشته باشد و چه محدودیتهایی دارد.
برای مقایسه
Vibe Coding:
۱. نوشتن Prompt
۲. تولید کد
۳. اصلاح Prompt
۴. اصلاح کد
۵. تکرار این چرخه
Spec-Driven Development:
۱. تعریف دقیق نیازمندی
۲. تهیه و بررسی Spec
۳. طراحی و برنامهریزی
۴. پیادهسازی توسط AI Agent
۵. بررسی و اعتبارسنجی خروجی
برای اینکه موضوع ملموستر شود، فرض کنیم میخواهیم یک سیستم ورود بدون رمز عبور با Magic Link بسازیم.
بهجای اینکه فقط به AI بگیم: «یک سیستم Magic Link برای ورود کاربران بساز.»
ابتدا Spec را تعریف میکنیم:
نیازمندیها:
کاربر ایمیل خود را وارد میکند.
یک لینک ورود برای او ارسال میشود.
لینک فقط ۱۵ دقیقه معتبر است.
لینک فقط یکبار قابل استفاده است.
درخواستهای متعدد برای یک ایمیل محدود میشوند.
بعد، معیار پذیرش را مشخص میکنیم:
Acceptance Criteria:
ایمیل باید حداکثر طی ۳۰ ثانیه ارسال شود.
لینک منقضیشده باید خطای مشخصی نمایش دهد.
لینک استفادهشده دیگر نباید قابل استفاده باشد.
حداکثر ۵ درخواست برای هر ایمیل در یک ساعت مجاز باشد.
حالا AI Agent بر اساس این Spec، طراحی، Taskها، کد و حتی تستها را تولید میکند.
در پایان هم بهجای اینکه صرفاً بپرسیم «کد درست به نظر میرسد؟»، میتوانیم بررسی کنیم:
آیا تمام مواردی که در Spec تعریف کرده بودیم واقعاً پیادهسازی شدهاند؟
نکته مهم این است که Spec لزوماً یک سند ثابت و کاملاً انسانی نیست. در Workflowهای جدید، AI میتواند در استخراج ابهامات، تکمیل Spec، طراحی و حتی تبدیل آن به Taskهای قابل اجرا کمک کند؛ اما انسان همچنان مرجع تصمیمگیری و تأیید نهایی است.
به همین دلیل، با گسترش AI Coding Agentها، مفاهیمی مثل Spec-Driven Development و ابزارهایی مانند GitHub Spec Kit، OpenSpec و Kiro مورد توجه قرار گرفتهاند.
@DevTwitter | <Amir Salehi/>
Post #13232
5.71K
- 👍 30
- ❤ 11
- 🍌 6