Replying to @FarzamBored
Orchestration
در اغلب پروداکت ها ما کم کم از مهندس نرم افزار شیفت پیدا خواهیم کرد به مدیر محصول. مدیر محصولی که بکگراند فنی قوی ای داره و میدونه از مدل چی بخواد و چطور بخواد و مدل چطور تسکا رو توش نکنه
1
15
Replying to @FarzamBored
نکته اصلا درک نکردن پروژه نیست
نکته اینه که مدلی مثل fable 5.2 «سرعت» درک کردنش از انسان خیلی بیشتره
و اینکه فکر میکنی دارت فقط برای رابط کاربری هست و لاجیک نمیشه باهاش نوشت هم عجیب بود.
1
94
بنظرم این یکی از مهمترین مواردیه که توی مهندسی نرمافزار با AI باید در موردش بدونیم. درواقع رسیدیم به اون نقطه که دیگه استک و زبان و تکنولوژی محل بحث نیست. یعنی شما میتونی با زبانی که بصورت تخصصی هم باهاش کار نکردی، پروژهت رو پیش ببری و محصول خوبی هم تولید کنی، ولی حتما باید با مفاهیم و معماری مهندسی نرمافزار آشنا باشی. یعنی شما میشی تصمیم گیرندهی اصلی در مورد محصول و تصمیم گیری جزئیات باید با شما باشه.
حالا این مسیر چطور پیش میره؟
برای من اینطوریه که قبل از هرچیزی planning و brainstorming میکنم و یه فولدر داکیومنت میسازم که همهی جزئیات پروژه توش باشه. این مرحله ممکنه چند روز هم طول بکشه. اما داکیومنت نهایی باید حداقل این چندتا خصوصیت رو داشته باشه:
۱. همهی نیازمندیهای پروژه با جزئیات باید نوشته شده باشه، حتی ریزترین جزئیات.
۲. تا جای ممکن تناقض و مغایرت بین فلوها وجود نداشته باشه، و اگر جایی به مغایرت خورد، باید از من بپرسه و من تصمیم نهایی رو بگیرم.
۳. مطلقا هیچ تصمیمی توسط AI نهایی نشده باشه(چه از انتخاب استک، چه کتابخانههایی که باید توی پروژه استفاده بشه، حتی ورژنها). همه چیز باید توسط خودم تایید بشه.
۴. اجرای پروژه فاز بندی بشه و هر فاز تسکهای خودش رو داشته باشه.
۵. قوانین بصورت دقیق نوشته شده باشه(برای مثال ترجیح من اکثرا Functional Programming هست و تا جای ممکن از نوشتن کلاس پرهیز میکنم؛ پس AI هم باید از همین الگو پیروی کنه. یا مثلا بعد از پایان هر تسک کد باید توسط یک ایجنت مستقل، ریویو بشه و در صورتی که مشکلی وجود نداشت با مسیج فرمت بندی شدهی من کامیت بشه).
۶. قوانین سختگیرانه برای نوشتن تست برای پروژه درنظر میگیرم همیشه(این خیلی مهمه، چون خیلی وقتها AI توی نوشتن تست تقلب میکنه که فقط اون تست pass بشه).
و بعد از همهی اینها پروژه رو فاز به فاز و تسک به تست شروع به پیاده سازی میکنم(با رعایت کامل dependency های هرفاز). تا جای ممکن Native پیش میرم و نمیذارم پروژه agent-driven نوشته بشه(مگر حس کنم واقعا لازمه).
در نهایت پایان هر فاز یه گزارش مختصر و مفید میده و تسکهای اون فاز رو خودم اجرا، مرور و تست میکنم.
در آخر هم بعد از اتمام همهی فازها، یه تست پلن میریزم و از AI میخوام با توجه به فلوهای پروژه، سناریوهای مختلف رو بررسی کنه و توی تست پلن بیاره.
این وسط هم بسته به پروژه از یکسری پلاگین و اسکیل استفاده میکنم که مهمترینش Superpowers هست که تقریبا توی همه پروژهها ازش استفاده میکنم، خصوصا برای brainstorming، planning و ریویوها.
Replying to @RezaBashir70944
درسته. مشکل جایی هست که اشراف بالایی نداشته باشی روی کدبیس، در این حالت اج کیس هارو نمیتونی توی ریویو درنظر بگیری. گاها ریویو توسط مدل های دیگه کمک میکنه که سناریوهای محتمل ولی پنهان رو در کدریویو درنظر بگیری
410
Replying to @erfan_rfmhr
ساده ست ولی کارآمد. مهمه که edge-case ها رو هم ایجنت در نظر بگیره. اینکه در مستر پرامپت ها (agents.md) قید بشه که همیشه اج کیس هارو در نظر بگیر عملا جواب نمیده مخصوصا وقتی پروژه بزرگ میشه
اینطور مواقع استفاده از اسکیل هایی مثل superpowers و یا ECC و mattpocock/skills کمک میکنه.
1
198
Replying to @T10_Stark
بله و نکته همینجاست: و تو بخش به بخش باهاش پیش بری
این که چه سیستمی تعریف کنی برای این مورد مهمه.
1
153
Replying to @Respect2052
هر کس به طریقی. اینجا scalability خیلی مهم میشه مخصوصا در کدبیس های بزرگ تر.
1
507
Replying to @moaminsharifi
همینطوره. از playwright و agent-browser برای وب و google/artemis برای خروجی اپ استفاده میکنم
1
3
171
Replying to @moaminsharifi
بله. محل بحث اینجاست که چطور این مدل هارو به کار بگیریم طوری که سرعت توسعه با Ai به اندازه سرعت انسان پایین نیاد و در عین حال کیفیت خروجی هم production-level باشه
1
4
1,067
کدها رو با کمک اسکیل هایی که دارم میگم ریویو کنه
در نهایت اگر مطمئن نباشم از خروجی، یک مدل قوی تر دیگه رو (یا همون مدل با effort قوی تر) بعنوان llm as judge میگم ریویو کنه
در نهایت اگر مطمئن نباشم، چند سناریو لایو تست تعریف میکنم و با کمک MCP ها خودش اپ رو QA test میکنه.
8
1,506
راهکاری که خودم دارم و فعلا جواب داده:
پرامپت های بزرگ سعی میکنم ندم
اگر کار بزرگ خواستم، Main Agent رو روی Opus xHigh میذارم و بهش میگم اجازه داری از N تا ساب-ایجنت استفاده کنی (ساب ایجنت های با تسک سبک رو با Sonnet باید انجام بدی)
1
13
1,539
اگر قرار باشه AI کد بزنه و من ریویو کنم، عملا سرعت دولوپ به همون میزان سرعت من پایین میاد. میزان بازدهی یک سیستم به اندازه ضعیف ترین عضو اون سیستم هست.
مدل های فعلی نه اونقدر ضعیفن که بشینی کل کدهارو ریویو کنی، نه اونقدر کارشون خوبه که بشه چشم بسته بهشون اعتماد کرد
چیکار میکنم؟
مشکل اینطور ایده ها اینه که مسئله اصلی رو نرم افزار میبینند. در صورتی که برای سرویس مثل Stripe نرم افزار یکی از آخرین چیزهایی هست که باید بهش فکر کنید.
چالش اصلی گرفتن مجوزهای مالی در دهها کشور، انطباق با قوانین بانکی، سیستمهای Fraud Detection و قرارداد مستقیم با شبکههای 1/
Replying to @QDC98
ممنون که معرفی کردی. استفاده از ساب ایجنت ها باعث هدر رفت بی رویه توکن نمیشه؟ مثلا کلاد کد تا همین امروز قبل اپدیت یک باگ سنگین داشت که باعث میشد وقتی ایجنت برای کارهای ساده ساب ایجنت ران میکنه کلی توکن اضافی بعنوان کانتکس به ساب ایجنت هاش پاس میداد.
این اون داستان رو نداره؟
1
100




