۲۹ مهر ۱۴۰۴

Techboy

اخبار و اطلاعات روز تکنولوژی

کدنویسی Vibe با GitHub Spark

کد بدون نوشتن کد در پلتفرم توسعه برنامه‌های کاربردی مبتنی بر هوش مصنوعی گیت‌هاب.

کد بدون نوشتن کد در پلتفرم توسعه برنامه‌های کاربردی مبتنی بر هوش مصنوعی گیت‌هاب.

چند وقتی طول کشید تا GitHub Spark، پلتفرم کدنویسی جدید مبتنی بر هوش مصنوعی GitHub، فراتر از بتای کوچک و بسته اولیهٔ خود برود. اما اکنون برای هر کسی که اشتراک GitHub CoPilot+ دارد در دسترس است، با امکان گسترش بیشتر در آینده. برخلاف استاندارد GitHub Copilot که به عنوان IntelliSense هوشمندتر و یک برنامه‌نویس جفت‌مجازی عمل می‌کند و پیشنهادها را بر پایهٔ آنچه می‌نویسید می‌دهد، Spark شبیه ابزارهایی است که در Visual Studio Code Copilot Agent تعبیه شده‌اند، که با درخواست‌ها به ساخت پاسخ به پرسش‌های شما می‌پردازند و کدی تولید می‌کنند که هدف آن پیاده‌سازی ایده‌های شماست.

این یک کدنویسی کاملاً حس‌محور است، همان‌قدر که می‌توان می‌گوید، چون اگرچه می‌توانید خروجی GitHub Spark را در نمای کد ویرایش کنید، احتمالاً بیشتر تمایل خواهید داشت درخواست‌هایش را تغییر یا اصلاح کنید تا برنامهٔ مورد نظر خود را به دست آورید. به‌جای شروع با یک طرح، با یک ایده آغاز می‌کنید و از ابزارهای Spark برای تبدیل آن به کد استفاده می‌کنید—به‌سرعت و بدون نیاز به تعامل با جاوااسکریپت تولیدشده.

ساخت در GitHub Spark چطور است؟

من در حال آزمایش پیش‌نمایش فقط برای دعوت‌شدگان از این سرویس روی پلتفرم Next گیت‌هاب بوده‌ام. پیش از این هرگز به «کدنویسی حس‌محور» نپرداخته بودم، فقط گاهی با GitHub Copilot برای پیدا کردن سینتکس APIهای نا‌آشنا (مانند APIی که برای تأیید دسترسی به Mastodon و سپس ارسال محتوا به آن استفاده می‌شود) کمک می‌گرفتم. جالب بود که از ایده‌ای که به شکل این درخواست شروع شد، «برنامه‌ای برای پرتاب تاس برای بازی Dungeons & Dragons؛ که به من اجازه می‌دهد چند تاس را هم‌زمان بخوانم»، به برنامه‌ای برسیم که نه تنها رنگ تاس‌ها را می‌تواند تغییر دهد، ترکیب‌های تاس‌های مکرراً استفاده‌شده را ذخیره کند و تاریخچهٔ پرتاب‌ها و نتایج را نگه دارد.

هر تکرار بر پایهٔ کد تولیدشده ساخته می‌شود و با درخواست‌های جدید طراحی و ویژگی‌ها را تصفیه می‌کند. من توانستم پیش‌نمایش برنامه و کد فعلی را ببینم. متأسفانه گزینه‌ای برای ذخیرهٔ کد در مخزن نداشتم، هرچند می‌توانستم به‌راحتی آن را در Visual Studio Code یا ویرایشگر مشابه بریده و در دو مکان محلی و GitHub ذخیره کنم. این کار ممکن است برای ذخیرهٔ کد تولیدشده مؤثر باشد، اما به کتابخانه‌ها و ویژگی‌های ارائه‌شده توسط زیرساخت Spark وابسته است، به‌طوری که خارج از گیت‌هاب به‌طور کامل قابل حمل نیست.

پس از پنج درخواست، یک برنامهٔ وب که از آن راضی بودم ایجاد کردم و می‌توانستم آن را با دیگر کاربران GitHub Spark به اشتراک بگذارم. دو گزینهٔ اشتراک‌گذاری وجود دارد: پیش‌فرض، با دسترسی فقط‑خواندنی، و گزینه‌ای که به دیگر کاربران اجازهٔ همکاری در همان فضای طراحی را می‌دهد. جاوااسکریپتی که پیش‌نمایش تولید می‌کند از فرمت JSX استفاده می‌کند، بنابراین نمایی ساختارمندتر از کد شما ارائه می‌دهد که خواندن و درک آن آسان‌تر است.

درون محیط GitHub Spark

فضای توسعهٔ GitHub Spark یک برنامهٔ وب با سه پنل است. پنل میانی برای کد، پنل راست برنامهٔ در حال اجرا (و انیمیشن‌ها هنگام تولید کد) و پنل چپ شامل مجموعه‌ای از ابزارهاست.

این ابزارها طیف وسیعی از عملکردها را ارائه می‌دهند؛ اول به شما اجازه می‌دهند درخواست‌های خود را ببینید و به درخواست‌های قبلی برگردید اگر تکرار فعلی برنامه‌تان را نمی‌پسندید. یک جعبهٔ ورودی اجازه می‌دهد تا درخواست‌های جدیدی که روی کد تولیدشدهٔ فعلی تکرار می‌شوند اضافه کنید، با امکان انتخاب اسکرین‌شات یا تغییر مدل زبانی بزرگ (LLM) در حال استفاده توسط سرویس زیرین GitHub Copilot. من گزینهٔ پیش‌فرض، Claude Sonnet ۳.۵ از Anthropic را انتخاب کردم. به‌عنوان بخشی از این قابلیت، GitHub Spark مجموعهٔ کوچک‌‌یی از بهبودهای محتمل را که مفاهیم مرتبط با درخواست‌های شما را می‌گیرد و ارتقاهایی را به کدتان پیشنهاد می‌کند، نمایش می‌دهد.

کنترل‌های دیگر راه‌هایی برای تغییر گزینه‌های طراحی سطح پایین برنامه فراهم می‌کنند، از جمله تم فعلی، قلم یا سبک استفاده‌شده برای آیکون‌های برنامه. ابزارهای طراحی دیگر به شما اجازه می‌دهند حاشیه‌های عناصر گرافیکی، ضریب‌های مقیاس‌گذاری را تنظیم کنید و یک آیکون برنامه برای نصب کد خود بر پایهٔ برنامه‌های وب پیش‌رونده (PWA) انتخاب کنید.

GitHub Spark یک فروشگاه کلید/مقدار داخلی برای داده‌های برنامه دارد که بین ساخت‌ها و جلسات حفظ می‌شود. نوار ابزار فهرستی از کلیدهای فعلی و ساختار داده‌ای که برای فروشگاه مقدار استفاده می‌شود ارائه می‌دهد. روی یک تعریف کلیک کنید و نمای ویرایش‌پذیری از دادهٔ ذخیره‌شده در حال حاضر دریافت می‌کنید تا بتوانید محتوای ناخواسته را حذف کنید. اگر کد شما یک LLM را فراخوانی کند، فهرستی از درخواست‌هایی که استفاده می‌شود نمایش داده می‌شود.

گزینهٔ نهایی مجموعه‌ای از تنظیمات خاص کاربر است، شامل یک درخواست پایه که می‌تواند برای تمام برنامه‌های شما استفاده شود. این تنظیمات به سفارشی‌سازی برنامه‌تان کمک می‌کند و سبک خود را به کد تولید شده توسط هوش مصنوعی اضافه می‌کند. لینکی به سرور Discord تحت حمایت GitHub وجود دارد که می‌توانید در آن با دیگر کاربران گفتگو کنید.

برای برنامهٔ نمونهٔ React ساده‌ای که ساختند، تنظیمات پیش‌فرض به‌حد کافی کارآمد بودند و اگرچه چند درخواست تولیدشده را استفاده کردم، قبل از ارسال آن‌ها را ویرایش کردم تا بهتر با نیات خود هماهنگ شوند. هر چه بهبودهای من جزئی‌تر شد، تولید برنامه زمان بیشتری گرفت، اگرچه حداکثر سه یا چهار دقیقه برای حدود ۵۰۰ خط کد React JavaScript طول کشید—زمانی بسیار کمتر از این که خودم آن را بنویسم.

GitHub Spark برای سازمان‌ها

اگر اشتراک GitHub Copilot+ (۳۹ دلار در ماه برای هر کاربر) داشته باشید، می‌توانید نسخهٔ دوستدار سازمانی‌تر GitHub Spark را استفاده کنید. این نسخه بر پایهٔ پیش‌نمایشی است که من استفاده می‌کردم، اما به‌جای ارائهٔ کد React JavaScript، از TypeScript قدرتمندتر استفاده می‌کند و با یک Codespace ادغام می‌شود که می‌توانید در آن کد را ویرایش و آزمایش کنید. پشتیبانی از کار تیمی، استفاده از مخزن برای ذخیره و به‌اشتراک‌گذاری کد با همگام‌سازی دو‑طرفه بین دو محیط را فراهم می‌کند.

مانند نسخهٔ تحت توسعه‌ای که استفاده می‌کردم، این انتشار GitHub Spark توسعهٔ مبتنی بر درخواست را با پشتیبانی از درخواست‌های چندبخشی پیچیده به کار می‌گیرد. دوباره می‌توانید کد را از طریق چندین تکرار درخواست تصفیه کنید و تصاویر را برای کمک به چینش واسط‌های کاربری بارگذاری کنید. این تصاویر می‌توانند شامل طرح‌های اولیه یا حتی عکس‌های طراحی‌های تختهٔ سفید باشند.

پس از تولید کد، می‌توانید آن را آزمایش کنید، تکرارهای بیشتری اعمال کنید یا با ویرایشگر داخلی کد تغییر دهید. می‌توانید از پنل پیش‌نمایش برای تمرکز بر عناصر نمایش خاص استفاده کنید پیش از سوئیچ به ویرایشگر برای تصحیح آن‌ها. این امکان را می‌دهد تا از ابزارهای تم و سبک استاندارد برای ویرایش ظاهر و احساس آن‌ها همراه با کل برنامه استفاده کنید. کد تولیدشده شامل CSS قابل ویرایش برای ویرایش هدفمندتر توسط طراحان خواهد بود. خارج از ابزارهای تم داخلی، می‌توانید دارایی‌های بصری خود را بارگذاری کنید و به برنامه‌تان اضافه کنید. همان ابزارهایی که در پیش‌نمایش فروشگاه کلید/مقدار داخلی را مدیریت می‌کنند، به همراه هر درخواست استفاده‌شده با ادغام‌های AI و APIهای شخص ثالث نیز موجود است.

مانند بسیاری از ابزارهای کدنویسی مبتنی بر درخواست، محدودیت‌هایی برای GitHub Spark وجود دارد. اشتراک شما شامل ۳۷۵ درخواست و تکرار Spark در ماه است، و گزینه‌های پرداخت به‌محض استفاده برای درخواست‌های بیشتر وجود دارد. هر درخواست اضافه ۰٫۱۶ دلار هزینه دارد. هزینه‌ای برای ذخیره و اجرای برنامه‌های منتشرشده وجود ندارد، اگرچه اگر از محدودیت‌های استفاده عبور کنید، برنامه تا دورهٔ صورتحساب بعدی مسدود خواهد شد.

GitHub Spark برای چه کاری مفید است؟

بدون شک ابزاری مثل این در جعبه‌ابزار توسعهٔ شما جایگاه دارد، اما هرچند کد تولیدشده عالی است، جایگزینی برای نوشتن خودتان نیست. این «کد شما» نیست، بنابراین با ساختار و سبک آن آشنا نیستید. ویرایش و بازاستفاده از کد GitHub Spark شبیه درک بخشی از کدهای یک پروژهٔ متن‌باز یا کد یک غریبه است. ابتدا باید بفهمید چرا توسعه‌دهنده تصمیمات خاصی گرفته است.

GitHub Spark کجا باید استفاده شود؟ واضح‌ترین مکان، به‌عنوان ابزار نمونه‌سازی است که به شما اجازه می‌دهد به‌سرعت یک مثال عملی از ایدهٔ خود بسازید. این راهی عالی برای شبیه‌سازی برنامه‌ها و داشتن یک پشت‌صحنهٔ کارآمد با دسترسی به داده‌ها و سرویس‌ها است تا قبل از صرف زمان لازم برای کدنویسی راه‌حل نهایی، آن را نشان داده و به اشتراک بگذارید.

این امکان را نشان می‌دهد که می‌توان از ابزارهای مشابه برای افزودن واسط‌های کاربری به برنامه‌های ساخته‌شده با ابزارهای بدون کد یا کد‌کم استفاده کرد، مانند ابزارهای ارائه‌شده توسط Power Platform مایکروسافت. ترکیبی از درخواست‌های کاربر و تحلیل کد می‌تواند به‌سرعت مفاهیم UI را تولید کند و با تکرار به یک برنامهٔ نهایی قابل اشتراک تبدیل شود.

ساختن بر پایهٔ React و TypeScript، همان‌طور که GitHub Spark انجام می‌دهد، به این معنی است که می‌توان کد تولیدشده را به مخزنی افزود که تیم‌های فرانت‌اند بتوانند آن را اصلاح کنند؛ نمونه‌ای از مفهوم «تیم‑فیوژن» مایکروسافت که توسعه‌دهندگان حرفه‌ای، ذینفعان، متخصصان حوزه و توسعه‌دهندگان کد‌کم را ترکیب می‌کند. نتیجه جالب است: ابزار توسعهٔ مبتنی بر AI که کد طراحی‌شده، عملکردی و خوب ارائه می‌دهد. تنها چیزی که کم است، راهی برای گرفتن کد شما و زمان‌اجرای GitHub Spark و استقرار آن بر روی سیستم‌های خودتان—درون‌سازمانی یا در ابر—است.