تصور کنید میخواهید یک ساعت پیچیده بسازید؛ آیا ترجیح میدهید تکتک چرخدندهها را با دست تراشید و یاد بگیرید هر قطعه چطور میچرخد، یا ساعتی پیشساخته بخرید که کار میکند اما درونش برایتان یک راز باقی میماند؟ این تضاد، نمایانگر تنشی رو به رشد در تجربه توسعهدهندگان است: شکاف میان دیدن یک محصول نهایی و درک دقت مکانیکی مورد نیاز برای نگهداری و پشتیبانی از آن.
به نقل از گزارشی که ۲۲ ژوئن ۲۰۲۶ در وبسایت dev.to منتشر شد، یک توسعهدهنده یک هفته را به مقایسه دو متد بنیادین یادگیری گذراند: نوشتن توابع Swift به صورت خطبهخط و استفاده از Google AI Studio برای تولید اپلیکیشنهای کامل تنها از طریق تکپاراگرافهای متنی. نتیجه این تجربه نشان داد که سرعت خیرهکننده تولید کد، لزوماً به معنای یادگیری یا تسلط فنی نیست.
زمینه: توسعه خطبهخط با Swift
در گردش کار اول، برنامهنویس قطعات کوچک کد (Snippets) را مینوشت، آنها را در محیط Playground آزمایش میکرد و خطاهای خاص را عیبیابی مینمود. این فرآیند شبیه گفتگو با معلمی دقیق و صبور است که اجازه نمیدهد تا وقتی گام فعلی بهطور کامل تسلط نیابید، پیشروی کنید.
یک چرخه معمولی در این متد از یک توالی سختگیرانه پیروی میکند: ابتدا تابعی نوشته میشود، سپس سعی در فراخوانی آن صورت میگیرد، در این مرحله خطایی رخ میدهد (مانند عدم تطابق برچسب پارامتر یا نبودن مقدار بازگشتی)، برنامهنویس خطا را میخواند، آن را اصلاح میکند و دوباره کد را اجرا میکند تا تأیید شود خروجی با انتظارات مطابقت دارد.
هر گام در این مسیر کوچک است و هر خطا، جزئی و مشخص. برای مثال، مواجهه با خطای «extraneous duplicate parameter name» به عنوان یک درس دقیق درباره تفاوت نامهای پارامتر داخلی در مقابل خارجی عمل کرد. این چرخه «نوشتن-خطا-اصلاح»، درکی فنی و تیزبین ایجاد میکند که برنامهنویس را قادر میسازد دقیقاً توضیح دهد چرا یک خط خاص از کد کار میکند یا شکست میخورد. این سطح از جزئیات است که تفاوت میان مقالهای که صرفاً یک قانون را بیان میکند با مقالهای که نشان میدهد «چرا» آن قانون وجود دارد، رقم میزند.
جزئیات: تولید کد مبتنی بر هوش مصنوعی
در مقابل، گردش کار دوم شامل استفاده از Google AI Studio و یک پرامپت تکپاراگرافی برای ساخت «MascotCraft Studio» بود؛ یک مولد ماسکوت که از مدلهای Imagen و Gemini به همراه ورودیهای کلیدواژهای سبک (Style) استفاده میکرد. نتایج در عرض چند دقیقه آماده شد و شامل قابلیتهایی بود که کاربر هرگز درخواست نکرده بود:
- یک رابط کاربری (UI) کامل با بخش اختصاصی «طراح شخصیت» (Character Designer).
- گزینههای پالت رنگی سفارشی که نویسنده هرگز نخواسته بود.
- انتخابهای متعدد برای سبکهای هنری.
- قابلیت «ویترین گالری استودیو» (Studio Gallery Showcase).
- یک وباپلیکیشن کاملاً عملیاتی، مستقر شده و کاربردی.
اگرچه خروجی خیرهکننده بود، اما فرآیند تکرار و اصلاح (Iterative process) کاملاً پنهان بود. نویسنده اشاره کرد که در یک مرحله دکمه «Fix» را فشار داد، اما این کار صرفاً منجر به نمایش یک اعلان برای دریافت کلید API پولی شد که باید بسته میشد. اصلاح واقعی خطاها در پشت صحنه و در مقیاسی رخ داد که کاربر قادر به دنبال کردن آن نبود. این روند اتوماسیون کامل، یادآور تحولاتی است که در تبدیل استکهای توسعه به محیطهای اجرای عاملهای هوشمند دیدیم، جایی که AI نه تنها کد را مینویسد، بلکه مسئولیت استقرار و تأیید آن را نیز بر عهده میگیرد.
هزینه پنهان تصمیمات نامرئی
این سرعت با یک هزینه پنهان همراه بود. هوش مصنوعی برای ذخیرهسازی دادهها (Persistence) از localStorage استفاده کرد؛ تصمیمی که بهطور نامرئی گرفته شد. یکی از کاربران در بخش نظرات اشاره کرد که این انتخاب برای محصولات واقعی مشکلساز است، زیرا اگر کاربر مرورگر خود را تغییر دهد، تمام ماسکوتهای ذخیره شده ناپدید میشوند.
از آنجا که هوش مصنوعی معماری را مدیریت کرده بود، توسعهدهنده میتوانست توصیف کند اپلیکیشن «چه کاری» انجام میدهد، اما نمیتوانست توضیح دهد «چرا» AI این روش ذخیرهسازی ناقص و خاص را انتخاب کرده است. او نمیتوانست توضیح دهد چرا Gemini نامهای خاصی را برای پالت رنگ انتخاب کرد یا چرا localStorage را به دیگر روشهای ذخیرهسازی ترجیح داد. این موضوع شکافی را آشکار میکند: در حالی که بیوگرافی تولید شده توسط AI برای شخصیتی به نام «Octo-Byte» خلاقانه و ساختاریافته بود، منطق مکانیکی زیربنایی آن همچنان یک جعبه سیاه باقی ماند.
این امر نشان میدهد که توسعه مبتنی بر AI، نقش برنامهنویس را از یک متخصص مکانیکی به یک معمار سیستم تغییر میدهد. شما دیدگاهی سطح بالا از محصول به دست میآورید — یعنی میبینید ویژگیها چگونه با هم ترکیب میشوند و یک اپلیکیشن جامع چگونه ساختار مییابد — اما جزئیات مربوط به «چرایی» را از دست میدهید.
مصالحه میان سرعت و درک فنی
برای فعالان حوزه سرگرمی یا تکنولوژیهای خلاق، این بدان معناست که ریسک دیگر بر سر این نیست که آیا ابزار «کار میکند» یا خیر، بلکه این است که آیا «بدهی فنی» (Technical Debt) نامرئی آن پایدار و قابل مدیریت است یا نه. تکیه صرف به دکمه «Fix» در AI Studio، حلقه یادگیری را که مانع از بروز باگهای سطح تولید (Production) میشود، میبندد.
برای کاهش این ریسک، نویسنده اکنون با کدهای تولید شده توسط AI به گونهای برخورد میکند که گویی باید آنها را حسابرسی (Audit) کرده و خطبهخط بخواند، نه اینکه فقط عملکردشان را تأیید کند. چک کردن اینکه «آیا یک ویژگی کار میکند» دیگر کافی نیست؛ برای اجتناب از تلههایی مانند localStorage باید پیادهسازی زیربنایی را درک کرد.
توسعهدهندگان باید حتی برای کارهای آشنا، به تمرین کدنویسی دستی و خطبهخط ادامه دهند. این نظم باعث میشود توضیحات فنی دقیق و مشخص باقی بماند و از عادت به استفاده از کلیات مبهم مانند «این مورد معمولاً به این صورت کار میکند» جلوگیری شود.
در نهایت، این دو گردش کار با هم رقابت نمیکنند، بلکه همزیستی دارند. تجربه AI دیدگاهی سریع از شکل نهایی یک محصول را فراهم میکند که در کنار دقت سطح جزئیات (مورد نیاز برای تسلط فنی)، دیدگاهی مفید است.
گام بعدی شما
- کدهای تولید شده توسط AI را به جای تست عملکرد، به صورت «بررسی معماری» بخوانید تا نقاط ضعف ساختاری (مثل روش ذخیرهسازی دادهها) را پیدا کنید.
- حتی برای کارهای تکراری، تمرین کدنویسی دستی را رها نکنید تا توانایی توضیح فنی شما کند نشود.
- در پرامپتهای خود، از مدل بخواهید دلیل انتخاب هر متد خاص یا کتابخانه را توضیح دهد تا جعبه سیاه را کمی شفافتر کنید.
اما داستان سختافزاری این تحول حتی شگفتانگیزتر است — به تحلیل ما دربارهی تراشههای Blackwell برای استنتاج سریعتر این مدلها مراجعه کنید.




گفتگو