برنامهنویسی با عوامل هوش مصنوعی: بازدهی بالا در مقابل کیفیت کد
عوامل هوش مصنوعی سریع کد میزنند. مشکل سرعت نوشتن آنها نیست؛ مشکل، تمیز و منسجم نگه داشتن کد است.
من این رویکرد را در Project Venom پیاده کردم. میخواستم ببینم آیا میتوان از عوامل هوش مصنوعی برای افزایش سرعت استفاده کرد بدون اینکه کیفیت از دست برود یا خیر.
نتایج: • ۱۳۸,۰۱۱ خط کد نوشته شده توسط عوامل هوش مصنوعی • ۱,۵۸۷ کامیت (commit) • ۹۲.۲٪ پوشش تست (test coverage) • صفر مشکل کیفی در SonarQube (در ابتدا ۱,۶۵۰ مشکل وجود داشت)
چطور این کار را انجام دادم؟ من یک خط لوله (pipeline) ساختم. هوش مصنوعی کد را مینویسد، اما این فرآیند است که تصمیم میگیرد آیا کد باقی میماند یا خیر.
گردش کار (workflow) شامل این مراحل است:
- انسان هدف و محدوده را تعیین میکند.
- عامل هوش مصنوعی تغییر را برنامهریزی و اجرا میکند.
- بررسیهای پیش از کامیت (pre-commit) محلی، اعتبارسنجی استاتیک و تستها را اجرا میکنند.
- GitHub Actions فرآیند CI (شامل linting، بررسی قراردادها و محافظهای معماری) را اجرا میکند.
- SonarQube بدهی فنی (technical debt) و پیچیدگی را بررسی میکند.
- عوامل هوش مصنوعی و یک انسان Pull Request را بازبینی میکنند.
- ادغام (Merge).
این فرآیند سه مرحله دارد.
مرحله ۱: سرعت. عوامل هوش مصنوعی کد و تستهای واحد (unit tests) تولید میکنند. این کار باعث گسترش سریع پروژه میشود.
مرحله ۲: کنترل. من SonarQube را اضافه کردم. این ابزار ۱,۶۵۰ مشکل پیدا کرد. سپس دروازههای (gates) پیش از کامیت محلی را ساختم. عوامل هوش مصنوعی نمیتوانستند یک وظیفه را تمام کنند مگر اینکه از این دروازهها عبور میکردند.
مرحله ۳: پایداری. خط لوله به بخشی از کار روزانه تبدیل شد. کیفیت یک بررسی نهایی نبود، بلکه یک الزام مستمر بود.
نکته کلیدی برای تیم شما: دیگر نپرسید کدام عامل هوش مصنوعی بهترین است. بهترین عامل هر هفته تغییر میکند.
در عوض این را بپرسید: چگونه فرآیندی بسازیم که کدهای هوش مصنوعی را با امنیت پذیرفته باشد؟
شما به حداقل مجموعهای از ابزارها نیاز دارید:
- مخزن GitHub و Pull Requestها
- هوکهای pre-commit
- تستهای واحد (unit tests)
- GitHub Actions
- SonarQube یا SonarCloud
- دستورالعملهای شفاف برای عوامل خود
- بازبینیهای انسانی و هوش مصنوعی
کدنویسی با هوش مصنوعی بدون یک خط لوله، فقط یک آزمایش است. کدنویسی با هوش مصنوعی همراه با یک خط لوله، یک فرآیند حرفهای است.
عامل کد را مینویسد. خط لوله از پروژه محافظت میکند.
شما چگونه با عوامل هوش مصنوعی کار میکنید؟ آیا از آنها به عنوان دستیاران ساده استفاده میکنید، یا آنها در فرآیند شما دروازهها و دستورالعملهای مخصوص به خود را دارند؟
Optional learning community: https://t.me/GyaanSetuAi
