وقتی ایجنتها کد مینویسن، توسعهدهنده چی باید بلد باشه؟
خلاصهٔ کاملتر
نویسنده با یه اتفاق واقعی شروع میکنه: CI شکست خورده بود چون SonarQube روی فایل App.tsx خطای cyclomatic complexity (یعنی تعداد زیاد مسیرهای شرطی تو کد) داده بود. Codex حدود ۱۵ کامپوننت کامل رو هر کدوم تو یه خط نوشته بود. بعد از بررسی معلوم شد منطقش درست بوده و پیچیدگیش هم لازم بوده. Codex با شکستن کد به ۱۰ فایل مشکل رو حل کرد، ولی نکته اینجاست که این کدی بود که نویسنده هیچوقت ندیده بود.
به گفتهی نویسنده، صنعت داره به این سمت میره که مالکیت سیستم کمتر به نوشتن دستی کد وابستهست. چیزی که مهم میشه اینه که اونقدر بدونی که بفهمی یه چیزی ایراد داره و بتونی هر وقت لازم شد عمیق بری. او برای توضیح از استعارهی «دایوبات»ها استفاده میکنه، رباتهایی که خودشون میرن ته اقیانوس و معدن طلا میسازن. خوشبینها میگن فقط بشین طلا جمع کن، بدبینها میگن یه روز گم میشن یا چیزی میارن که فقط شبیه طلاست.
نویسنده هیچکدوم از دو دیدگاه افراطی رو قبول نداره: نه «هر خطی که ایجنت نوشته رو بخون» و نه «اصلاً به کد نگاه نکن». او میگه مسیری که سنیورهای امروز طی کردن، یعنی سالها کدنویسی دستی و دیباگ، برای جونیورهای امروز از نظر اقتصادی شدنی نیست. صاحب سیستم کسیه که وقتی چیزی خراب میشه بهش زنگ میزنن. چنین آدمی به یه نقشهی کلی از سیستم نیاز داره و باید بدونه کجا رو بگرده، نه اینکه جزئیات همهی ماژولها رو حفظ باشه.
او سه ستون پیشنهاد میده. اول مبانی مثل ساختمان داده، الگوریتم، شبکه، همروندی و سیستمهای توزیعشده. مثلاً اگه با دو برابر شدن عمق زمان چهار برابر بشه، باید بدونی این پیچیدگی درجه دو هست. دوم گستردگی دانش، یعنی از هر حوزه اونقدر بدونی که بفهمی چی رو باید سرچ کنی. به نظرش این رو نمیشه درس داد و فقط با کنجکاوی جمع میشه.
ستون سوم عمق بهموقع (just-in-time depth) هست، یعنی آمادگی برای شیرجه زدن تو هر مشکلی و یاد گرفتن هرچی لازمه. خودش تو ارکستریتور ایجنتهاش باگهای lifecycle داشت. یادش افتاد سالها پیش تو یه کتاب Kubernetes دربارهی level-triggered state machine خونده و با همین ایده معماری رو از اول طراحی کرد که از اون موقع پایدار مونده. جمعبندیش اینه که مبانی رو میشه یاد گرفت، گستردگی جمع میشه و عمق بهموقع رو باید تمرین کرد.
نکات کلیدی:
- یه App.tsx نوشتهی Codex با ۱۵ کامپوننت تکخطی، به خاطر cyclomatic complexity تو SonarQube شکست خورد ولی منطقش درست بود.
- نویسنده هم «هر خط کد ایجنت رو بخون» و هم «اصلاً کد رو نگاه نکن» رو رد میکنه.
- یادگیری از راه سالها کدنویسی دستی برای جونیورهای امروز از نظر اقتصادی شدنی نیست.
- سه ستون مالکیت سیستم: مبانی علوم کامپیوتر، گستردگی دانش، و عمق بهموقع.
- یه ایدهی level-triggered state machine از یه کتاب Kubernetes، باگهای ارکستریتور ایجنت نویسنده رو حل کرد.




