هفتهی پیش بعد از انجام دادن یکی از تسکهام به این فکر کردم که اگر این کار رو میخواستم ۳ سال پیش با زبان برنامهنویسیای که تسلط بسیار بیشتری (از زبان پروژهی الان) داشتم انجام بدم، چقد بدون ابزارهای امروز کار سخت و پیچیده میشد. کاری که در گذشته حتماً بیشتر از یک روز طول میکشید، الان در کمتر از ۲ ساعت انجام شد.
البته این نکته بسیار مهمه که داشتن ترکیب مناسبی از ابزار درست، معماری مناسب، و آماده بودن کد برای استفاده از ابزار AI و آشنایی با نحوهی پرامپت نوشتن تأثیر خیلی زیادی در میزان کمک هوش مصنوعی به یک برنامهنویس دارد. حتماً روز اول وصل کردن یک پروژهی بزرگ به یک ابزار AI نباید انتظار چنین خروجیای داشت.
شاید این مطلب بیشتر برای کسانی جالب باشد که برنامهنویس نیستند و میخواهند بدانند ابزارهای هوش مصنوعی چه تأثیری روی روند کاری یک برنامهنویس دارد.
دیروز یک تسک داشتم که باید قبل از ارسال عکسها به یک پنل، آنها را ریسایز کرده و واترمارک اضافه کنم. برای انجام این کار باید تصمیمات زیر را میگرفتم:
انتخاب سرویسها و کتابخانههای مناسب برای ریسایز و واترمارک.
بررسی اینکه آیا لینک عکسهای جدید باید ذخیره شود یا خیر.
انتخاب سریعترین و بهینهترین ابزارها.
مدیریت آپلود چندین عکس بهصورت موازی (async و parallel tasks).
چالش مهم برای من این بود که این تسک باید در یک پروژهی کاتلین انجام میشد، در حالی که تجربهی من با این زبان خیلی کم بود.
پیشنیازها برای خروجی مناسب از هوش مصنوعی، عملاً در صورت نبود هرکدام از این موارد امکان استفاده با سرعت زیاد از AI در یک پروژهی بزرگ از بین میرود.
۱- معماری مناسب و قابل فهم برای هوش مصنوعی که بتواند از ساختار کد پیروی کند.
۲- وجود ruleهای مناسب نوشتهشده توسط برنامهنویسها (در واقع همون cursor rules)
۳- نوشتن پرامپتهای مناسب با شناخت کامل از ساختار کد و نیازمندیهای پیادهسازی، همچنین شناخت خوب از خروجیهای AI در شرایط مختلف. (حتماً روز اول استفاده از AI به این نتیجه نمیرسید و نیاز به کسب تجربه، شناخت پرامپتنویسی و آشنایی با مشکلات احتمالی دارد.)
۱. تصمیمگیری معماری و انتخاب APIها
میزان استفاده از AI: صفر
زمان با AI: ۳۰ دقیقه (با جلسه با یکی از همکاران)
زمان بدون AI: تقریباً مشابه
توضیح: به دلیل نیاز به دانش دامین و شناخت کاربران، این بخش را خودم انجام دادم و AI کمکی نمیتوانست بکند.
۲. یافتن ابزار مناسب برای واترمارک و ریسایز
میزان استفاده از AI: ۹۰٪
زمان با AI: ۱۰ دقیقه
زمان بدون AI: ۱ ساعت
توضیح: با پرسش از AI و بررسی پیشنهادات، سریعترین و مناسبترین ابزارها را پیدا کردم.
۳. پیادهسازی واترمارک و ریسایز
میزان استفاده از AI: ۹۵٪
زمان با AI: ۱۵ دقیقه
زمان بدون AI: ۳ تا ۴ ساعت
توضیح: تمام کد با کمک ابزار Cursor نوشته شد و تنها نیاز به ریفکتور جزئی داشت. وجود cursor ruleهایی که در طول زمان بهبود پیدا کرده بودن به شدت به کیفیت کد و رعایت conventionهای موجود در کد کمک میکرد.
۴. مدیریت آپلود موازی
میزان استفاده از AI: ۹۵٪
زمان با AI: ۲۰ دقیقه
زمان بدون AI: ۱ تا ۲ ساعت
توضیح: به کمک AI مفاهیم کوروتینها و scope را سریعتر یاد گرفتم و روش درست را تست و استفاده کردم.
۵. تست و دیباگ کد
میزان استفاده از AI: صفر
زمان با AI: ۱۵ دقیقه
زمان بدون AI: ۱ ساعت
توضیح: کدی که AI نوشت، باگهای کمتری داشت و تنها تست سناریوها کافی بود.
در مجموع با این ابزارها و استفادهی درست ازشون کاری که حتماً در گذشته بیشتر از یک روز طول میکشید، در کمتر از دو ساعت انجام شد.