کد یک‌بارمصرف، یک دروغ است

مردم می‌گویند در عصر هوش مصنوعی، طول عمر کد از بین رفته است. آن‌ها ادعا می‌کنند هوش مصنوعی کد را با سرعت ۱۰ برابر بازنویسی می‌کند. آن‌ها می‌پرسند چرا باید کدی با دوام بنویسید، وقتی می‌توانید بعداً دوباره آن را تولید کنید.

این ایده یک توهم است. این نگاه عمدتاً از سوی افرادی می‌آید که نگهداری نرم‌افزار را انجام نمی‌دهند.

این استدلال خوب به نظر می‌رسد. شما با یک پایگاه کد (codebase) نامنظم روبرو می‌شوید. تصمیم می‌گیرید آن را دور بریزید و از هوش مصنوعی بخواهید چیزی تمیزتر به شما بدهد. این کار شبیه پیشرفت به نظر می‌رسد، اما در واقعیت، یک شکست مهندسی است.

آنچه مردم درباره یک پایگاه کد تثبیت‌شده فراموش می‌کنند این است: کد چیزی فراتر از منطق است. کد، سوابق تمام خطاهایی است که اصلاح کرده‌اید.

آن دستور if عجیب در خط ۴۱۲ به دلیلی وجود دارد. آن دستور، یک خطای خاص از یک ارائه‌دهنده پرداخت را در زمان تغییر منطقه زمانی مدیریت می‌کند. آن منطق در هیچ تیکتی (ticket) ثبت نشده است؛ بلکه در دل کد زندگی می‌کند.

هر بازنویسی باعث از دست رفتن حافظه می‌شود. شما دانش ضمنی و مدیریت موارد خاص (edge-case) را از دست می‌دهید. هوش مصنوعی می‌تواند سریع کد بنویسد، اما نمی‌تواند تصمیمات گذشته تیم شما را بازسازی کند. نمی‌تواند ماه‌ها کاری را که برای منطق تلاش مجدد (retry logic) پس از شکست سیستم انجام داده‌اید، بازسازی کند.

سرعت تولید با سرعت درک و فهم یکی نیست. شما می‌توانید هزار خط کد را در چند دقیقه تولید کنید، اما خواندن هزار خط کد همچنان ساعت‌ها زمان می‌برد. هوش مصنوعی این نسبت را تغییر نمی‌دهد.

تایپ کردن هرگز بخش سخت کار نبود؛ بخش سخت، فهمیدن این بود که چه چیزی باید تایپ شود.

نگاه کردن به کد به عنوان چیزی یک‌بارمصرف، به این معناست که کاربران و پایداری سیستم (uptime) خود را نیز یک‌بارمصرف می‌بینید. هر بازنویسی یک بازه ریسک ایجاد می‌کند. هر بازه ریسک منجر به پس‌رفت‌ها (regressions) می‌شود. هر پس‌رفت به کاربری آسیب می‌زند که به شما اعتماد دارد.

اگر یک پروژه تفریحی برای آخر هفته می‌سازید، هر زمان که خواستید آن را بازنویسی کنید. کسی اهمیت نمی‌دهد.

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

بازنویسی‌ها بدهی فنی (tech debt) را حل نمی‌کنند؛ آن‌ها فقط ساعتِ پیدا کردن آن را دوباره تنظیم می‌کنند.

این روایت به نفع کسانی است که فقط پروژه‌ها را شروع می‌کنند اما هرگز از آن‌ها نگهداری نمی‌کنند. این روایت به نفع کسانی است که این ایده را می‌فروشند که هوش مصنوعی همه چیز را جایگزین‌پذیر می‌کند. این روایت به نفع مهندسی نیست که وقتی بازنویسی با شکست مواجه می‌شود، با او تماس می‌گیرند. این روایت به نفع کاربر نیست.

نگهداری، واقعیتِ نرم‌افزار است. کد یک‌بارمصرف فلسفه‌ای است که تنها زمانی کار می‌کند که هرگز مجبور نباشید سیستم را روشن و آماده‌به‌خدمت نگه دارید.

از هوش مصنوعی برای کمک به نوشتن کدی بهتر و بادوام‌تر استفاده کنید. از آن به عنوان بهانه‌ای برای بازسازی همه چیز از صفر استفاده نکنید.

دوام، چابکی را پایدار می‌کند.

قدیمی‌ترین قطعه کد در سیستم شما چیست؟ اگر آن را حذف کنید، چه چیزی را از دست خواهید داد؟

منبع: https://dev.to/adioof/disposable-code-is-a-psyop-by-people-who-dont-maintain-anything-33kg

انجمن یادگیری اختیاری: https://t.me/GyaanSetuAi