آیا هوش مصنوعی می تواند کدهای آماده تولید بنویسد؟ آنچه هر توسعه دهنده ای باید بداند

سفر استفاده از هوش مصنوعی برای کمک به کدنویسی اما آیا آماده تولید است؟
استفاده از هوش مصنوعی برای کدنویسی به سرعت به چیزی بیش از یک نمونه اولیه تبدیل شده است. اکنون بخشی از جعبه ابزار برای توسعه دهندگان است. هنوز به یاد دارم زمانی که برای اولین بار با کدهای تولید شده توسط هوش مصنوعی مواجه شدم.
GitHub Copilot بود، و من با خودم فکر کردم، “آیا این می تواند به من کمک کند تا کد بهتری بنویسم؟” در ابتدا شک داشتم.
چیزی که به شوخی شروع شد، به عنوان یک آزمایش پوچ، به این واقعیت تبدیل شد که با استفاده صحیح از هوش مصنوعی، واقعاً میتوان شیوه کدنویسی ما را تغییر داد.
مانند بسیاری از توسعه دهندگان، من هنگام برخورد با یک مشکل جدید یک فرآیند کاملاً استاندارد داشتم. جمع آوری نیازمندی ها، ترسیم طرح کلی، شروع به نوشتن کد و سپس اشکال زدایی در صورت لزوم بود.
معرفی هوش مصنوعی در این گردش کار در ابتدا عجیب بود. این فقط نوشتن سریعتر کد نبود. این بود که چگونه هوش مصنوعی طرز فکر من در مورد کدنویسی را تغییر داد. جای خالی را پر نمی کرد. این ساختارهای کدی را پیشنهاد میکرد که شاید فکر نمیکردم به ناکارآمدیهای احتمالی اشاره کنم تا به رویکردهای مختلف برای یک مشکل کمک کند.
به عنوان مثال، من روی یک پروژه باطن کار می کردم. NET. وظیفه بهینه سازی یک پرس و جو پایگاه داده بود که داده های زیادی را جذب می کرد.
به طور معمول، من در پرس و جو فرو می رفتم، آن را می شکستم، و سپس آن را مجدداً اصلاح می کردم تا جایی که ممکن بود کارآمد باشد. و بنابراین همه چیز تغییر کرد روزی که من شروع به نوشتن پرس و جو کردم. GitHub Copilot گزینهها و راههای بسیار کارآمدتری برای انجام صفحهبندی و فیلتر کردن به من داد که حتی فکرش را هم نمیکردم.
و این چیز دیوانه کننده ای است که اینها فقط چیزی کاملاً تصادفی را پیشنهاد نمی کردند. آنها واقعا پیشرفت های خوبی بودند.
هوش مصنوعی در زمان من صرفه جویی کرد اما تکنیک های بهینه سازی را در زمان واقعی به من آموخت.
چند تلاش اولیه برای کار بر روی ابزارهای هوش مصنوعی ثابت کرد که من هنوز نیاز به درک منطق کدهایی دارم که به من پیشنهاد می شود.
یک وسوسه واقعی وجود دارد که فقط خروجی هایی را که هوش مصنوعی بیرون می زند، بپذیرید، به خصوص زمانی که پشت سر یک ضرب الاجل هستید، اما این یک شیب لغزنده است.
هوش مصنوعی میتواند به شما در کدنویسی سریعتر کمک کند، اما جایگزینی برای دانستن اینکه چرا آن کد را مینویسید نیست. و اینجاست که توسعهدهندگان میتوانند اشتباه کنند – هوش مصنوعی بسیار سنگین است، بررسی دقیق کافی وجود ندارد.
یک مورد عالی در این مورد این است که من سعی میکردم نحوه ادغام کافکا را با حداقل API بیابم. می دانستم که این نوع مصرف پیام ها به صورت ناهمزمان می تواند بهینه شود. البته، هنوز به شما اجازه نمی دهد که آن را در معماری صحیح قرار دهید.
این بار، احساس می کنم باید آن را با همه به اشتراک بگذارم و هوش مصنوعی می تواند زندگی شما را کارآمدتر کند.
شما باید یاد بگیرید که چه زمانی تصمیم هوش مصنوعی را بپذیرید و چه زمانی پیشنهادات آن را در پرتو زمینه پروژه خود تنظیم کنید.
زیبایی کدنویسی با هوش مصنوعی این است که صرفاً بر روی چیزهای کوچک تمرکز نمیکند – آن کارهای معمولی. با گذشت زمان، متوجه شدم که هوش مصنوعی چگونه مرا در تصمیم گیری های طراحی عمیق راهنمایی می کند
تقریباً مانند داشتن یک توسعهدهنده جوان که در اصول اولیه مهارت دارد، اما بهجای اینکه فقط خروجی هوش مصنوعی را به صورت اسمی در نظر بگیرید، میتوانید آن را راهنمایی کنید، حتی او را راهنمایی کنید و پیشنهاداتش را با نیازهای خود تطبیق دهید.
اینجاست که هوش مصنوعی می درخشد، ابزاری برای کاوش و یادگیری. این مانند “در اینجا نحوه نوشتن یک حلقه for” نیست، بلکه بیشتر “آیا این رویکرد جایگزین را در نظر گرفته اید؟”
خواه بهینه سازی پرس و جوی PostgreSQL، اجرای عملکرد کپی انبوه با NPGSQL، یا بهینه سازی ادغام اتصال در EF Core، هوش مصنوعی گزینه هایی را در اختیار شما قرار می دهد که شاید به تنهایی به آن فکر نمی کردید. این فرضیات شما را آزمایش می کند و شما را وادار می کند که خارج از چارچوب فکر کنید.
هوش مصنوعی هنوز راه زیادی در پیش دارد تا بتواند ظرافت های هر محیط توسعه را به دست آورد. یک بار از ChatGPT خواستم تا به من کمک کند تا مشکل شرایط مسابقه را در یک برنامه چند رشته ای حل کنم.
پاسخی به من داد اما موارد لبهای را که میدانستم در تولید با مشکل خاصی مواجه میشوند، توضیح نداد.
این به من یادآوری کرد که ابزارهای هوش مصنوعی فقط به اندازه داده هایی هستند که آنها را آموزش می دهد. این هنوز بیشتر یک بازی شهودی و تجربه انسانی در بسیاری از سناریوهای پیچیده است.
این تلفیقی از نقاط قوت هوش مصنوعی و استعدادهای انسانی، آینده کدنویسی را مشخص خواهد کرد. بکارگیری درست هوش مصنوعی شامل به دست آوردن محدودیت های استفاده از آن و بازی با نقاط قوت آن است.
من اکنون هوش مصنوعی را به عنوان یک شریک در کدنویسی می بینم و نه به عنوان شخصی که برای من کد می نویسد، بلکه به عنوان کسی که به من در کدنویسی هوشمندانه کمک می کند. این می تواند به من کمک کند ایده بگیرم، ساختار کد را تمیز کنم، و کارهای تکراری را انجام دهم، اما من همچنان آخرین تماس ها را انجام می دهم.
برای توسعه دهندگانی که هنوز هوش مصنوعی را قبول نکرده اند، این را درک می کنم. این یک ترس طبیعی از ابزارهایی است که به نظر می رسد بخشی از کار ما را در اختیار می گیرند.
با این وجود، من همیشه به مبتدیان توصیه می کنم که از کوچک شروع کنند. به عنوان مثال اجازه دهید هوش مصنوعی در تستهای واحد یا حتی اصلاح مجدد پیشنهادها کمک کند. همانطور که راحت تر می شوید، استفاده از آنها را در زمینه های بزرگتر شروع کنید – تصمیمات معماری، بهینه سازی سیستم، یا اشکال زدایی.
بسیار مهم است که هوش مصنوعی را به عنوان یک ابزار در حال تکامل در نظر بگیریم. مانند نحوه یادگیری چارچوب ها یا زبان های جدید، سیستم های هوش مصنوعی مانند کدکس و GitHub Copilot هر روز بهبود یابد هرچه بیشتر از آنها استفاده کنید، آنها در درک سبک کدنویسی و ترجیحات شما و نحوه تفکر شما در مورد مشکلات بهتر می شوند.
جادوی چنین سیستمی در این است که چگونه با شما با ارائه بینشهای ارزشمندتر هر چه بیشتر با آن کار کنید، تکامل مییابد. چیزی که در مورد این غیر جادویی است این است که کار را برای شما انجام نمی دهد.
مثل یادگرفتن دوباره کدنویسی است، اما شما یک دستیار دارید. شما به شخص دیگری اجازه نمیدهید همه پایگاه کد شما را بنویسد، اما اگر راه جدیدی برای برخورد با یک مشکل ارائه دهد، به آن گوش میدهید. اینگونه است که من اکنون از هوش مصنوعی به عنوان یک عصا استفاده می کنم، اما به عنوان راهی برای گسترش افق هایم و بهبود هنرم.
اکنون، با رشد هوش مصنوعی، من انتظار دارم که آینده کدنویسی نه در این باشد که چگونه ماشینها جایگزین ما شوند، بلکه در کمک به ماشینها برای تبدیل شدن به نوعی ابزار است که ما را توسعهدهندگان بهتری میکند.
اگر هوش مصنوعی را به درستی انجام دهید، نه تنها به این معنی است که شما را بهرهوری میکند، بلکه شما را به کدنویس بهتری تبدیل میکند، فرصتهای جدیدی را باز میکند و شما را به فکر عمیقتر، حل سریعتر مشکلات و ارائه راهحلهای قویتر سوق میدهد. و در پایان، این همان چیزی است که در مورد کد است.
مرجع
-
پیوند Copilot GitHub
-
لینک OpenAI Codex
-
پیوند PostgreSQL Npgsql
-
پیوند ادغام کافکا