AI કોડિંગ એજન્ટ્સને પ્રોમ્પ્ટ્સ કરતાં ટેસ્ટની વધુ જરૂર છે
મેં ૨૫ વર્ષ સુધી સોફ્ટવેર લખ્યું છે. મારા આખા કરિયર કરતા છેલ્લા આઠ મહિનામાં મારા વર્કફ્લોમાં વધુ ફેરફાર આવ્યો છે.
AI કોડિંગ ટૂલ્સ પહેલા રિફેક્ટરિંગ (refactoring) અથવા ભૂલો સમજાવવા જેવા નાના કાર્યો માટે વપરાતા હતા. AI સાથે મોટા ફીચર્સ બનાવવું પીડાદાયક લાગતું હતું.
હવે, પરિસ્થિતિ અલગ છે. આધુનિક એજન્ટ્સ એક ચોક્કસ લૂપ (loop) અનુસરે છે:
- કોડ વાંચો.
- કોડ બદલો.
- કમાન્ડ ચલાવો.
- શું નિષ્ફળ ગયું તે જુઓ.
- તેને સુધારો.
- ફરીથી કરો.
આ લૂપ શક્તિશાળી છે, પરંતુ એજન્ટ્સ વિઝ્યુઅલ ઇન્ટરફેસ (visual interfaces) સાથે સંઘર્ષ કરે છે. બટન કામ કરે છે કે નહીં તે જોવા માટે તેઓ UI માં વિશ્વસનીય રીતે ક્લિક કરી શકતા નથી.
મેં મારો અભિગમ બદલ્યો છે. હું નવા ફીચર્સ એવી રીતે બનાવું છું કે જેથી તેઓ પહેલા કમાન્ડ લાઇન (command line) પરથી કામ કરે.
એજન્ટને "આ સ્ક્રીન જુઓ" એમ કહેવાને બદલે, હું તેને કમાન્ડ આપું છું:
npm run test:feature-xnode scripts/run-new-feature-client.js
એજન્ટ્સને કમાન્ડ્સ ગમે છે. તે તેમને એક્ઝિક્યુટેબલ ફીડબેક લૂપ (executable feedback loop) આપે છે.
મારો વર્તમાન વર્કફ્લો આવો દેખાય છે:
- Markdown ફાઇલમાં ફીચરનું આયોજન કરો.
- ટેસ્ટ ક્લાયન્ટ અથવા યુનિટ ટેસ્ટ બનાવો.
- સ્પષ્ટ ટેસ્ટ કેસ વ્યાખ્યાયિત કરો.
- એજન્ટને ફીચર ઇમ્પ્લીમેન્ટ કરવા દો.
- એજન્ટને વારંવાર ટેસ્ટ ચલાવવા દો.
- પરિણામોની સમીક્ષા કરો.
એક ચેતવણી: જો તમે એજન્ટને "બધા ટેસ્ટ પાસ કરો" એમ કહેશો, તો તે તે કરી દેશે. સફળ થવા માટે તે સોફ્ટવેર એન્જિનિયરિંગના ગુના કરી શકે છે. તે માત્ર ફેઈલ્યોર મેસેજ રોકવા માટે નબળા ટેસ્ટ લખી શકે છે અથવા ભૂલો છુપાવવા માટે try/catch બ્લોક્સનો ઉપયોગ કરી શકે છે.
આથી જ ટેસ્ટ વ્યાખ્યાયિત કરવું એ મારું સૌથી મહત્વનું મેન્યુઅલ કાર્ય છે. તમારે પૂછવું જોઈએ:
- શું આ ટેસ્ટ વાસ્તવિક ઉપયોગના કિસ્સા (use case) નું પ્રતિનિધિત્વ કરે છે?
- શું તે વાસ્તવિક રિગ્રેસન (regression) પકડી શકશે?
- શું તે ખૂબ જ મર્યાદિત છે?
AI ના યુગમાં, Test-Driven Development (TDD) માત્ર સુરક્ષા જાળ (safety net) નથી. તે સ્ટીયરિંગ વ્હીલ છે. ટેસ્ટ વગર, એજન્ટ માત્ર યોગ્ય લાગે તેવો કોડ બનાવે છે. સારા ટેસ્ટ સાથે, એજન્ટ પાસે માપી શકાય તેવું લક્ષ્ય હોય છે.
બીજી ટીપ: ટેસ્ટ આઉટપુટ માટે સ્ટ્રક્ચર્ડ ફાઇલોનો ઉપયોગ કરો. ચેટમાં વિશાળ લોગ્સ (logs) નાખવાને બદલે, તમારા સ્ક્રિપ્ટ્સને ફોલ્ડરમાં JSON અથવા Markdown ફાઇલોમાં લખવા દો.
આ મદદરૂપ થાય છે કારણ કે:
- એજન્ટ સીધો જ સંબંધિત ડેટા પર જાય છે.
- કોન્ટેક્સ્ટ (context) નાનો રહે છે.
- ટોકનનો વપરાશ ઘટે છે.
- તે પૈસા બચાવે છે.
AI એજન્ટ્સ ડેવલપર્સનું સ્થાન લેતા નથી. તેઓ આપણું ધ્યાન બદલે છે. આપણે કોડ ટાઈપ કરવામાં ઓછો સમય અને આ બાબતોમાં વધુ સમય વિતાવીએ છીએ:
- સમસ્યાઓ સ્પષ્ટ રીતે વર્ણવવી.
- ફીડબેક લૂપ્સ બનાવવી.
- ગુણવત્તાયુક્ત ટેસ્ટ વ્યાખ્યાયિત કરવા.
- આર્કિટેક્ચરની સમીક્ષા કરવી.
AI ડેવલપમેન્ટનું ભવિષ્ય તે વ્યક્તિનું નથી જે શ્રેષ્ઠ પ્રોમ્પ્ટ્સ લખે છે. તે તે વ્યક્તિનું છે જે શ્રેષ્ઠ ફીડબેક લૂપ્સ બનાવે છે.
Source: https://dev.to/stoefln6/ai-coding-agents-need-tests-more-than-prompts-11pm
Optional learning community: https://t.me/GyaanSetuAi
