کد بنویس، نه اسپک
خلاصهٔ کاملتر
داگ ترنبول، توسعهدهنده و نویسندهی این پست، تعریف میکنه که تو بیشتر پروژههاش عادت داشته اسپکهای دقیق انگلیسی بنویسه تا ایجنتهای کدنویسی رو راهنمایی کنه. اما به این نتیجه رسیده که این کار یعنی دو تا سیستم موازی داری - یکی نامنظم (اسپک) و یکی دقیق (کد) - و نگهداشتن هردوشون دوبرابر کار میاره.
به گفتهی اون، الان بهجای نوشتن اسپک، مستقیم کد مینویسه و الگوهای مشخصی رو تعیین میکنه. توی همون قلمروی مشخصشده اعتماد بالایی به خودکارسازی ایجنت داره؛ ولی بیرون از این مرز اعتمادش کمتر میشه، چون ایجنت اونجا شکننده عمل میکنه و به جزئیات و توجه زیادی نیاز داره.
تو مرزهای جدید، اول خودش کد میزنه و ایجنت رو تو نقش reviewer/tutor نگه میداره؛ اینجوری روی رابطها و جایی که باید عملکرد خاصی قرار بگیره فکر میکنه. نویسنده میگه تنها راه ساختن این «سلیقه» انجامدادن بخشی از کاره - نمیشه فقط دستور داد و کنار وایساد.
برای پوششدادن نیازمندیها، بهجای اسپک از تست استفاده میکنه؛ چون زبان اجرایی تست دقیقتر از پیشنهادهای مبتنی بر اسپکه. وقتی به چندتا تست اعتماد کنه که واقعاً یه چیزی رو تست میکنن، اجازه میده ایجنت بیشتر بنویسه، اما مثل شاهین زیر نظرش داره.
این روش یه سطح اعتماد رو بهتدریج گسترش میده: بعضی بخشها رو کاملاً خودکار میکنه که در برابر تغییرات ناشیانهی انسانی محافظت میشن، و بخشهای جدیدتر رو هم آروم و با دقت جلو میبره. به گفتهی نویسنده، در نهایت ایجنت ۹۹٪ سیستم رو نگه میداره، ولی خودش هنوز context بلندمدت از نحوهی کارکرد سیستم رو داره.
نویسنده استفاده از ایجنتهای کدنویسی رو نه یه سطح انتزاع بالاتر، بلکه ساختن یه کارخونه میدونه؛ میگه نمیشه بدون طراحی و ساخت دستیِ قطعات نمونه یه کارخونه ساخت. فقط اینجوری میفهمی کیفیت خوب یعنی چی، از ماشین کامل گرفته تا گیربکس و پیچومهره.
نکات کلیدی:
- نگهداشتن همزمان اسپک و کد یعنی دو تا سیستم موازی و کار دوبرابری
- نویسنده بهجای اسپک، مستقیم کد میزنه و الگوها رو خودش تعیین میکنه
- تستها جایگزین اسپکهای زبان طبیعی میشن چون دقیق و قابلاجرا هستن
- اعتماد به ایجنت بهتدریج و پلهبهپله گسترش پیدا میکنه
- استفاده از ایجنت کدنویسی رو به ساختن یه کارخونه تشبیه میکنه، نه یه سطح انتزاع جدید




