Моделі та платформи ШІ

Будівництво інфраструктури для ефективного кодування у підприємствах

mm
Додайте Unite.AI до бажаних джерел у Google

Нова реальність розробки програмного забезпечення з допомогою штучного інтелекту

Перехід від коду, написаного людиною, до коду, згенерованого штучним інтелектом, прискорюється швидше, ніж передбачалося. Microsoft (MSFT ) і Google (GOOGL ) вже генерують до 30% свого коду за допомогою інструментів штучного інтелекту, а Марк Цукерберг оголосив, що половина коду Meta буде згенерована штучним інтелектом протягом року. Навіть більш драматично, генеральний директор Anthropic прогнозує, що практично весь код буде згенерований штучним інтелектом протягом наступного року. Це широке впровадження розвивається, і команди розробників тепер експериментують з кодуванням настроєнь – інтуїтивним підходом, при якому розробники “налаштовуються” на штучний інтелект, щоб швидко генерувати код через природну мовну співпрацю, а не традиційне програмування рядка за рядком.

По мірі того, як ця практика набуває популярності, спільнота залишається розділеною щодо того, чи це революція в практиках розробки, чи потенційна криза в якості коду. Реальність, як і в більшості технологічних змін, лежить десь посередині. Поява помічників кодування штучного інтелекту змінила підхід розробників до створення програмного забезпечення, але справжній потенціал кодування настроєнь і кодування з допомогою штучного інтелекту в цілому може бути реалізований лише тоді, коли ми поєднуємо інтуїтивну співпрацю з міцним фундаментом. Успіх вимагає вдумливого підходу, який адресує три критичні елементи: будівництво систем RAG, які забезпечують контекстно-чутливість штучного інтелекту, створення нових робочих процесів, які балансують швидкість з якістю, і підтримання цілісності коду на протяженні всього життєвого циклу розробки.

RAG є суттєвим для кодування настроєнь

Системи генерації з пошуком (RAG) є важливими для ефективного кодування настроєнь у великих масштабах. Ці системи виходять за межі знань, набутих моделлю, шляхом отримання відповідних артефактів коду, документації та контексту з вашої фактичної бази коду, а потім використовують цю інформацію для керівництва генерацією коду. Багато хто вважає, що більші вікна контексту в моделях мови зроблять системи пошуку зайвими, але навіть найрозвітліші моделі штучного інтелекту все ще борються з актуальністю та точністю при навігації великих, складних баз коду.

Ефективні системи RAG ідентифікують і отримують код, який забезпечує критичний контекст для завдання, над яким ви працюєте. Коли ви створюєте нову функцію, ці системи можуть автоматично витягнути пов’язані компоненти, політики безпеки та тести з усієї вашої бази коду. Це забезпечує повну картину, необхідну для того, щоб забезпечити, що новий код працює гармонійно з існуючими системами, а не створює ізольовані рішення, які технічно функціонують, але не дійсно інтегруються. Цей контекстно-чутливий підхід перетворює кодування настроєнь з простої генерації коду на генерацію правильного коду для вашої конкретної середовища.

Важливість правильної системи RAG стає очевидною в практичному використанні. По мірі того, як розробники все частіше працюють з інструментами кодування штучного інтелекту, багато з них знаходять, що виконання одного й того ж невизначеного запиту кілька разів може дати драматично різні результати. Без належного контексту з систем RAG, який ґрунтує відповіді в конкретному, актуальному контексті, ця несумісність стає значною перешкодою. Якість ваших специфікацій і міцність ваших систем пошуку безпосередньо визначають, чи стане штучний інтелект надійним партнером, який відповідає вашій базі коду, чи непередбачуваним співробітником.

Переосмислення робочих процесів розробки

Традиційний робочий процес розробки – проектування, реалізація, тестування, огляд – вимагає суттєвої адаптації для роботи з кодуванням настроєнь. По мірі того, як штучний інтелект приймає на себе більшу частину реалізації, весь процес розробки програмного забезпечення повинен змінитися відповідним чином.

Роль розробника вже змінюється з написання кожного рядка коду на роль архітектора, який керує системами штучного інтелекту до бажаних результатів. Ця зміна вимагає нових навичок, яких багато організацій ще не сформували чи не включили до свого розвитку талантів. 

Досвідчені практики все частіше витрачають час на написання специфікацій, а не на прямий код. Ця увага до попереднього етапу проектування створює більш обдуманий етап планування, який традиційна розробка іноді спішить. З міцними і стратегічними специфікаціями розробники можуть працювати з інструментами штучного інтелекту для генерації коду та повернутися пізніше для оцінки результатів. Цей підхід створює нові продуктивні моделі, але вимагає розвитку інтуїтивного відчуття щодо того, коли треба уточнити згенерований код, а коли треба переглянути原始ні специфікації.

Для підприємств успішна реалізація означає інтеграцію допомоги штучного інтелекту в усталені системи розробки, а не роботу навколо них. Організації потребують механізмів управління, які забезпечують контроль над тим, як, коли та де допомога штучного інтелекту застосовується на протяженні всього життєвого циклу розробки, забезпечуючи відповідність та послідовність, а також захоплюючи продуктивні вигоди.

Організації, які намагаються впровадити інструменти кодування штучного інтелекту без адаптації своїх робочих процесів, часто переживають сплеск продуктивності, за яким слідує каскад проблем з якістю. Я бачив цю модель повторюваною: команди святкують початкові вигоди швидкості, лише щоб згодом зіткнутися з суттєвими роботами з рефакторингом, коли технічний борг накопичується. Без структурованих процесів уточнення швидкісні переваги генерації штучним інтелектом можуть в кінцевому підсумку привести до повільнішої довгострокової поставки.

Балансування швидкості з цілісністю коду

Найбільша проблема кодування настроєнь полягає не в створенні функціонального коду, а в підтриманні цілісності коду. Хоча штучний інтелект може швидко генерувати робочі рішення, він часто нехтує важливі аспекти, такі як підтримуваність, безпека та відповідність стандартам. Традиційні огляди коду просто не можуть впоратися з тим, коли розробники створюють за хвилини те, що раніше займало дні, залишаючи потенційні проблеми невиявленими. Ефективне кодування настроєнь повинно допомогти забезпечити, а не підірвати, стандарти якості, які команди працювали над встановленням.

Ця проблема посилюється в складному програмному забезпеченні, де розрив між “це працює” і “це добре побудовано” має найбільше значення. Вбудовані механізми валідації та автоматизоване тестування стають життєво необхідними, коли швидкість розробки збільшується драматично, оскільки функція може працювати ідеально, але містити дублікат логіки, вразливості безпеки або пастки обслуговування, які з’являються лише місяці пізніше – створюючи технічний борг, який в кінцевому підсумку сповільнює розвиток до повзучої швидкості. 

Вірусна перспектива в спільноті розробників припускає, що “два інженери тепер можуть створити технічний борг 50 інженерів” за допомогою інструментів штучного інтелекту. Однак, коли я провів опитування серед фахівців галузі, більшість вказали на більш збалансовану реальність: продуктивність може збільшитися суттєво, але технічний борг зазвичай зростає з набагато нижчою швидкістю – можливо, в 2 рази гірше, ніж традиційна розробка, але не в 25 разів гірше. Хоча це менш катастрофічно, ніж деякі побоюються, це залишається серйозним і неприйнятним ризиком. Навіть подвійне збільшення технічного боргу може швидко паралізувати проекти та анулювати будь-які вигоди від продуктивності, досягнуті завдяки розробці з допомогою штучного інтелекту. Ця більш нюансова точка зору підкреслює, що інструменти штучного інтелекту прискорюють генерацію коду, але без належних заходів безпеки, інтегрованих у процес розробки, вони все одно створюють неприйнятні рівні технічного боргу.

Щоб досягти успіху в кодуванні настроєнь, організації повинні впровадити безперервні перевірки цілісності на протяженні всього процесу розробки, а не лише під час остатніх оглядів. Встановіть автоматизовані системи, які забезпечують негайну зворотню зв’язок щодо якості коду, визначте чіткі стандарти, які виходять за межі функціональності, та створіть робочі процеси, в яких швидкість і стійкість співіснують.

Висновок

Кодування настроєнь представляє суттєву зміну в тому, як ми створюємо програмне забезпечення, підкреслюючи інтуїцію, креативність та швидку ітерацію. Однак цей інтуїтивний підхід повинен бути заснований на міцній інфраструктурі, яка забезпечує контекст, підтримує якість та забезпечує цілісність коду.

Майбутнє належить організаціям, які можуть балансувати ці суперечливі сили: використовувати штучний інтелект для прискорення розробки, а одночасно зміцнювати процеси забезпечення якості. Зосереджуючись на ефективних системах RAG, переосмислюючи робочі процеси та здійснюючи безперервні перевірки цілісності коду, команди можуть використати трансформаційний потенціал кодування настроєнь без жертвування надійністю та підтримуваністю, яких вимагає професійне програмне забезпечення.

Технологія існує, але тепер потрібен вдумливий підхід до впровадження, який приймає “настрій”, будуючи при цьому фундамент, який робить його стійким у великих масштабах.

Ітамар Фрідман є генеральним директором і співзасновником Qodo, стартапу з розробки штучного інтелекту, який використовують понад 1 мільйон розробників. До заснування Qodo Ітамар був співзасновником Visualead, яку придбала група Alibaba. Потім він працював у групі Alibaba протягом 4 років на посаді директора з машинного зору. Тепер Ітамар присвячений генерації коду з пріоритетом якості.