خانه / اخبار تکنولوژی / «Kiro»: محیط توسعه هوش مصنوعی عامل‌محور آمازون، فراتر از وایب‌کدینگ

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

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

نویسنده:

انتشار:

به‌روزرسانی:

تعداد نظرات: 0

زمان مطالعه: 6 دقیقه
👀 خبر در یک نگاه:

آمازون ،Kiro، نسخه‌ای از VS Code با هوش مصنوعی، معرفی کرد که توسعه‌دهندگان را از وایب کدینگ به توسعه مشخصه‌محور می‌برد. با پردازش زبان طبیعی، Kiro مستندات، معیارهای پذیرش و برنامه پیاده‌سازی را خودکار تولید و همزمان با کد به‌روزرسانی می‌کند. هدف، ساده‌تر کردن فرایند توسعه است.

AWS اخیرا «Kiro» را منتشر کرده است. این ابزار، یک شاخه جدید از VS Code است که هدف آن ارائه تجربه‌ای فراتر از کدنویسی وایب (Vibe Coding) به توسعه‌دهندگان و رفع برخی از نقاط ضعف وایب کدینگ است. Kiro به‌طور مستقیم از توسعه مبتنی بر مشخصات (Spec-Driven Development) پشتیبانی می‌کند. توسعه‌دهندگان می‌توانند نیازهای خود را به زبان طبیعی برای آن توصیف کنند؛ Kiro بر اساس داستان‌های کاربری با معیارهای پذیرش دولوپرها، یک سند طراحی فنی و فهرستی از وظایف کدنویسی برای پیاده‌سازی نیازها را ارائه می‌دهد. پس از بازبینی، توسعه‌دهندگان می‌توانند اجرای وظایف را مرحله به مرحله با Kiro آغاز کنند.

Kiro‌ فراتر از وایب کدینگ

در حالی که وایب کدینگ برای نمونه‌سازی سریع و فاز کشف نیازهای یک برنامه عالی است اما چندین نقطه ضعف هم دارد:

  • کدی که توسط هوش مصنوعی تولید می‌شود، اغلب طولانی، از نظر سبک ناهماهنگ و فاقد پایبندی به الگوهای معماری، حاکمیتی و امنیتی تثبیت‌شده است.
  • در تیم‌های بزرگ‌تر، استفاده ناهماهنگ از وایب کدینگ می‌تواند منجر به چالش‌های جدی در ورود اعضای جدید، یکپارچگی سیستم و نگهداری شود.
  • در غیاب یک مجموعه تست که به‌طور مداوم به‌روزرسانی شود، برنامه‌هایی که با وایب کدینگ ساخته شده‌اند ممکن است در طول زمان دچار پس‌رفت شوند؛ به این معنا که پیاده‌سازی یک ویژگی جدید می‌تواند عملکرد صحیح یک ویژگی قدیمی را تغییر دهد.

گردش‌کار در Kiro

گردش‌کار مبتنی بر مشخصات در Kiro توسعه را به سه فاز مجزا تقسیم می‌کند:

  • تولید داستان‌های کاربری با معیارهای پذیرش دقیق
  • ایجاد یک طراحی فنی با دیاگرام‌ها و طرح‌واره‌ها
  • تقسیم کار به دنباله‌ای از وظایف قابل‌ردیابی برای پیاده‌سازی.

نمونه درخواست اولیه و نتیجه آن

یک نمونه از نیازمندی برای یک داشبورد تحلیلی به این صورت است:

نیازمندی‌ها

نیازمندی ۱

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

معیارهای پذیرش

  1. وقتی کاربر به برنامه دسترسی پیدا کند سیستم باید یک رابط بارگذاری فایل نمایش دهد. 
  2. وقتی کاربر یک یا چند فایل داده انتخاب کند سیستم باید فرمت و اندازه فایل را اعتبارسنجی کند: 
    • فایل‌های بارگذاری‌شده باید JSON باشند (یعنی با پسوند ‎.json) و فقط یک آبجکت JSON داشته باشند.
    • آبجکت JSON باید تنها یک کلید با نام «raw» داشته باشد.
    • کلید «raw» باید یک آرایه از اشیاء باشد که هرکدام دارای یک فیلد اجباری «type» و احتمالا چندین فیلد اختیاری دیگر باشند. 
  3. وقتی فایل‌های معتبر انتخاب شوند سیستم باید داده‌ها را در حافظه برنامه بارگذاری کند و یک نوار پیشرفت در نوار وضعیت نمایش دهد که بارگذاری و پردازش هر فایل انتخاب‌شده را ردیابی کند. 
  4. اگر فرمت فایل پشتیبانی نشود سیستم باید یک پیام خطای راهنمایی‌کننده نمایش دهد (مثلا درباره فرمت‌های پشتیبانی‌شده، فیلدهای مفقود یا نوع نادرست). 
  5. وقتی داده‌ها با موفقیت بارگذاری شوند سیستم باید یک پیام تایید در نوار وضعیت نمایش دهد و صفحه اصلی را مطابق با نیازمندی‌های طراحی صفحه اصلی نشان دهد.

نسخه انگلیسی:

## Requirements

### Requirement 1

**User Story:** As a data analyst, I want to upload data files from my local directory, so that I can analyze my data without sending it to external servers.

#### Acceptance Criteria

1. WHEN the user accesses the application THEN the system SHALL display a file upload interface

2. WHEN the user selects one or more data files THEN the system SHALL validate the file format and size:

– uploaded files should be JSON files (i.e., .json) that contain one single JSON object

– the JSON object has a single key: “raw”

– the “raw” key is an array of objects, each with a mandatory “type” field and possibly many other optional fields.

3. WHEN valid files are selected THEN the system SHALL load the data into the application’s memory and display a progress bar in a status bar that tracks the loading and processing of every selected file

4. IF the file format is unsupported THEN the system SHALL display a helpful error message (.e.g., supported formats, missing fields, incorrect type)

5. WHEN data is successfully loaded THEN the system SHALL display a confirmation message reflected in the status bar and display the main page according to the main page design requirements.

بخشی از سند طراحی تولیدشده به این صورت است:

یک نمونه از دنباله وظایف تولیدشده (برنامه پیاده‌سازی) به‌صورت زیر است:

از زبان آمازون

یادداشت انتشار Kiro تاکید می‌کند:

«مشخصات (Specs) در Kiro، همگام با کد در حال تکامل شما باقی می‌مانند. توسعه‌دهندگان می‌توانند کد بنویسند و از Kiro بخواهند مشخصات را به‌روزرسانی کند یا به‌صورت دستی مشخصات را تغییر دهند تا وظایف به‌روزرسانی شوند. این موضوع مشکل رایجی را حل می‌کند که باعث می‌شد توسعه‌دهندگان در حین پیاده‌سازی، به‌روزرسانی آرتیفکت‌های اصلی را متوقف کنند و همین عامل ایجاد ناهماهنگی در مستندات و پیچیدگی در نگهداری آینده کد می‌شد.»

قابلیت Hooks در Kiro

Kiro همچنین قابلیت Hooks را معرفی می‌کند، پرامپت‌هایی که اجرای آن‌ها با تغییر فایل‌ها فعال می‌شود. ترکیب Hooks با سرورهای MCP، به توسعه‌دهندگان اجازه می‌دهد طیف وسیعی از اقدامات را انجام دهند. همچنین این قابلیت به‌طور ویژه برای حفظ سازگاری و کیفیت در میان یک تیم توسعه مفید است. مستندات مثال زیر از Hooks را ارائه می‌دهد که بررسی می‌کند طراحی رابط کاربری مطابق با طراحی Figma باشد:

«از MCP مربوط به Figma استفاده کنید تا فایل‌های HTML یا CSS به‌روز شده را تحلیل کند و بررسی کند که آن‌ها از الگوهای طراحی تعریف‌شده در Figma پیروی می‌کنند. عناصری مانند بخش‌های اصلی (Hero Sections)، هایلایت‌های قابلیت‌ها، عناصر ناوبری، رنگ‌ها و جای‌گذاری دکمه‌ها را بررسی کنید.»

نظرات کاربران

برخی توسعه‌دهندگان در Hacker News گزارش دادند که توسعه مبتنی بر مشخصات سرعت توسعه را کاهش داده است. یکی از توسعه‌دهندگان گفت:

«من فقط یک ابزار کمکی کوچک می‌خواستم تا میانبرهای صفحه‌کلید سراسری‌ام را در macOS نشان دهد. به Kiro یک مشخصات کوتاه و مقداری TypeScript که طرح ورودی داده را توصیف می‌کرد دادم. حدود ۵۰۰۰ خط کد همراه با تست تولید کرد که کار هم می‌کردند. ظاهرش به زیبایی چیزی که انتظار داشتم نبود اما نتوانستم آن را خراب کنم. با این حال، ۵۰۰۰ خط کد برای چنین کار ساده‌ای خیلی زیاد بود؛ راه‌حل از هر نظر بیش از حد پیچیده طراحی شده بود. توانستم (به‌صورت دستی) آن را به حدود ۸۰۰ خط کد کاهش دهم بدون اینکه قابلیت مهمی از دست برود.»

رویکرد ارزشمند Kiro

با این وجود، برخی دیگر رویکرد را بسیار ارزشمند دانستند:

«هفته گذشته Kiro را روی یک مسئله سخت در تجزیه تاریخ و زمان امتحان کردم. با یک پرامپت حدود دویست کلمه‌ای و چند مثال کد برای زمینه شروع کردم تا مسئله را توصیف کنم. مشابه کاربر اول، این باعث شد متوقف شوم و واضح‌تر به مسئله‌ای که سعی در حل آن داشتم فکر کنم و در نهایت وقتی دیدم چطور لیست وظایف را اجرا می‌کند، شگفت‌زده شدم.
تنها بازخورد اولیه‌ام این بود که وظایف من هم حجم زیادی تست می‌نوشتند و اگر چرخه بازخورد نتایج تست‌ها روان‌تر بود، این ابزار فوق‌العاده قدرتمند می‌شد. چیزی مثل یک ترمینال sandbox شده؛ چندان علاقه‌ای به حالت YOLO نداشتم و مجبور بودم مرتبا اجرای ترمینال را تایید کنم.»

وایب کدینگ یا مدیریت پروژه؟

برخی توسعه‌دهندگان دیگر تاکید کردند که با Kiro، برنامه‌نویسی ممکن است بیشتر به سمت مدیریت محصول/پروژه حرکت کند:

«این خیلی جالب به نظر می‌رسد به جز اینکه باید یک نحو جدید یاد گرفت؛ با این حال، چیزی که مدام مرا اذیت می‌کند این است که در تمام این گردش‌کارهای مبتنی بر هوش مصنوعی عاملی، چه زمانی واقعا مهندسی انجام می‌دهید؟ این یک دموی عالی برای یک مدیر پروژه بود. تیم خود را از طریق توسعه قابلیت‌ها هدایت کنید اما بدون معماری درست، توسعه واقعا به اسپاگتی کد تبدیل می‌شود.
این دیگر وایب کدینگ نیست؛ این جایی است که احساس می‌کنم یک مدیر پروژه هستم، نه یک مهندس.»

ارزیابی عملکرد Kiro

یِهودا کوهن (Yehuda Cohen) یک پست وبلاگی با کمک خود این ابزار نوشت، Kiro را مثبت ارزیابی کرد و این نظر را اضافه کرد:

«واقعیت این است که Kiro به نوعی متفاوت از مدیریت پروژه نیاز دارد. شما دیگر فقط کدنویسی نمی‌کنید؛ بلکه در حال هدایت یک هوش مصنوعی هستید که می‌تواند از پیچیدگی سرریز شود، گاهی راه‌حل موقتی را به تحلیل علت اصلی ترجیح می‌دهد و گاهی نیاز دارد صریحا به آن بگویید تا وقتی مشکل‌ها واقعا حل نشده‌اند جلو نرود. این ابزار قدرتمند است اما بدون دخالت انسان کارآمد نیست.»

جمع‌بندی

Kiro، به‌عنوان یک انشعاب از VS Code، از افزونه‌های سازگار با Open VSX پشتیبانی می‌کند. در پشت صحنه، Kiro با Claude شرکت Anthropic قدرت گرفته است. توسعه‌دهندگانی که به آزمایش گردش‌کار Kiro علاقه دارند می‌توانند یک آموزش بازی‌محور ویژه (یادگیری از طریق بازی) را دنبال کنند.

پلن‌های Kiro

Kiro در حال حاضر به‌صورت پیش‌نمایش در دسترس است و از مک، ویندوز و لینوکس پشتیبانی می‌کند، همراه با یک طرح قیمت‌گذاری تازه منتشرشده که از ۲۰ دلار در ماه شروع می‌شود. Kiro یک نرم‌افزار مالکیتی توسعه‌یافته توسط آمازون است.

منبع: infoq.com

فرصت‌های شغلی

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

دیدگاه‌ها

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *