મારો AI કોડિંગ એજન્ટ સતત બગડતો હતો — મેં શું બદલ્યું
છ અઠવાડિયા પહેલા, મારો AI કોડિંગ એજન્ટ બિનઉપયોગી પરિણામો આપતો હતો.
તે એવા ફંક્શન્સ લખતો હતો જે કમ્પાઈલ તો થતા પણ કંઈ કામ નહોતા કરતા. તે ખોટા કારણોસર ટેસ્ટ પાસ કરતો હતો. તે એક બગ (bug) સુધારતો પણ ત્રણ નવા બગ ઊભા કરી દેતો.
મને લાગ્યું કે એજન્ટ સમસ્યા હતી. હું ખોટો હતો. સમસ્યા મારા પોતાના શિસ્તનો અભાવ હતો.
હું મારા એન્જિનિયરિંગ કામના 40% માટે AI એજન્ટનો ઉપયોગ કરું છું. તે રિફેક્ટર્સ (refactors), ટેસ્ટ જનરેશન અને બગ ઇન્વેસ્ટિગેશન સંભાળે છે. જ્યારે મારો કોડબેઝ (codebase) અસ્તવ્યસ્ત હતો, ત્યારે AI એ તે અસ્તવ્યસ્તતાને 3 ગણી વધારી દીધી હતી.
AI શિસ્તનું સ્થાન લેતું નથી. તે તમારી પાસે જે છે તેને વધુ પ્રબળ બનાવે છે.
આઉટપુટ સુધારવા માટે મેં મારી વર્કફ્લો (workflow) કેવી રીતે બદલી તે અહીં છે:
ટેસ્ટ વર્તણૂક (behavior) સાબિત કરવા જોઈએ, સ્ટેટ (state) નહીં. "assert user is not None" જેવા ટેસ્ટ લખવાનું બંધ કરો. તે એક જૂઠ છે. ટેસ્ટમાં "assert user.email == expected_email" જેવા ચોક્કસ ડેટાની તપાસ થવી જોઈએ. જો ટેસ્ટ નબળો હશે, તો AI તેનો ફાયદો ઉઠાવશે.
દરેક એક diff વાંચો. હું કોડ જોયા વગર જ રિફેક્ટર્સ સ્વીકારી લેતો હતો. આના કારણે સર્ક્યુલર ડિપેન્ડન્સી (circular dependencies) અને અસ્તવ્યસ્ત આર્કિટેક્ચર ઊભા થયા. જો તમે સમજાવી ન શકો કે ફેરફાર શા માટે વધુ સારો છે, તો તેને નકારી દો.
સ્ટેટ (state) સ્પષ્ટ રાખો. AI ને કેશ (caches) અથવા સેશન્સ (sessions) કેવી રીતે હેન્ડલ કરવા તે "સમજવા" ન દો. આને તમારા પ્રોમ્પ્ટ્સ અથવા સ્કીમામાં વ્યાખ્યાયિત કરો. અનુમાનિત સ્ટેટ (inferred state) ને કારણે સાયલન્ટ બગ્સ (silent bugs) આવે છે જે પ્રોડક્શનને ક્રેશ કરી શકે છે.
એજન્ટના ફેરફારો માટે તમારા પોતાના ટેસ્ટ લખો. જ્યારે પણ એજન્ટ કોડ બદલે છે, ત્યારે હું પહેલા માનવ દ્વારા લખાયેલ ટેસ્ટ લખું છું. આમાં 15 મિનિટ લાગે છે પરંતુ ડિબગિંગના કલાકો બચાવે છે.
સ્પષ્ટ નિષ્ફળતા (loud failures) ની માંગ કરો. જો કોઈ ફેરફાર ટેસ્ટ પાસ કરે પણ લોજિક તોડી નાખે, તો સિસ્ટમે તેને તરત જ દર્શાવવું જોઈએ. "ટેસ્ટ પાસ થાય છે, મોકલી દો" ને ક્યારેય માન્ય માપદંડ તરીકે સ્વીકારશો નહીં.
પરિણામો:
- અઠવાડિયાના બગ્સ 5 થી ઘટીને 1 થી પણ ઓછા થઈ ગયા.
- ડિબગિંગનો સમય અઠવાડિયાના 6 કલાકથી ઘટીને 1 કલાક થઈ ગયો.
એજન્ટ બદલાયો નથી. હું બદલાયો છું.
જો તમે AI એજન્ટનો ઉપયોગ કરો છો, તો પહેલા તમારો કોડબેઝ સુધારો. તમારા ટેસ્ટ સુધારો, સ્ટેટ સ્પષ્ટ કરો અને તમારા રિવ્યુઝ (reviews) વધુ સચોટ બનાવો.
એજન્ટ એક અરીસો છે. ખાતરી કરો કે તમારી પાસે એવું કંઈક છે જે વધારવા જેવું હોય.
સ્ત્રોત: https://dev.to/susiloharjo/my-ai-coding-agent-kept-breaking-what-i-changed-4l5f
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi
