એકમ 3 / 12

કોડ રીડિંગ, સમજૂતી અને નવા કોડ બેઝ સાથે સુસંગતતા

નફો:

  • AI સાથે લેયર દ્વારા વિદેશી કોડ બેઝ લેયરને મેપ કરવાની ક્ષમતા અને એન્ડ-ટુ-એન્ડ ફીચરને ટ્રેક કરવાની ક્ષમતા
  • જટિલ કાર્યોને સ્ટેપ બાય સ્ટેપ સમજાવવાની અને ડેટા ફ્લોને મોનિટર કરવાની ક્ષમતા
  • AI વર્ણનને પૂર્વધારણા તરીકે જોવાની અને કોડમાં નિર્ણાયક દાવાઓની ચકાસણી કરવાની ક્ષમતા

વિકાસકર્તાઓ કોડ લખવાને બદલે કોડ વાંચે છે. જ્યારે તમે કોઈ નવી નોકરી શરૂ કરો છો, કોઈ અન્ય વ્યક્તિ દ્વારા છોડી દેવામાં આવેલી સેવાનો કબજો લો છો અથવા ઓપન સોર્સ લાઇબ્રેરીમાં યોગદાન આપો છો, ત્યારે તમારું પ્રથમ કાર્ય "અહીં શું ચાલી રહ્યું છે?" પ્રશ્નનો જવાબ શોધવાનો છે. AI આ શોધ કાર્યને અઠવાડિયાને બદલે કલાકો સુધી ઘટાડી શકે છે - પરંતુ જ્યારે યોગ્ય પ્રશ્નો અને ચકાસણી રીફ્લેક્સ સાથે ઉપયોગ કરવામાં આવે ત્યારે જ.

આ એકમમાં, અમે AI નો ઉપયોગ "કોડ માર્ગદર્શિકા" ની જેમ કરવાનું શીખીએ છીએ: વિદેશી કોડ બેઝનું મેપિંગ કરવું, જટિલ કાર્યને સાદી ભાષામાં અનુવાદિત કરવું, ડેટા ફ્લોને અનુસરવું અને લાઇબ્રેરીનો ઉપયોગ કેવી રીતે કરવો તે શોધવું. અહીં સુવર્ણ નિયમ એ છે કે AI ની સમજૂતી એક પૂર્વધારણા છે; તમે કોડ સાથે જ તેની ચકાસણી કરો.

કોડ એનોટેશન શા માટે શક્તિશાળી પરંતુ જોખમી છે?

LLM કોડના ભાગને વાંચવામાં અને તેને માનવ ભાષામાં અનુવાદિત કરવામાં ખૂબ જ સારો છે, જેમ કે "આ કાર્ય વપરાશકર્તાના સત્ર ટોકનને તાજું કરે છે"; કારણ કે તેણે લાખો સમાન ઉદાહરણોમાંથી પેટર્ન શીખી છે. આ એક વિશાળ સમય બચાવનાર છે, ખાસ કરીને લાંબા અને નેસ્ટેડ કાર્યો સાથે.

અહીં જોખમ છે: મોડેલ કેટલીકવાર કહે છે કે કોડ શું કરે છે, તે ખરેખર શું કરે છે તે નહીં. જો ચલનું નામ isAdmin છે પરંતુ અંદરનો તર્ક ઉલટો છે, તો મોડેલ નામ જોઈ શકે છે અને ખોટો સારાંશ કાઢી શકે છે. તેથી, નિવેદનને તમારા નિર્ણાયક નિર્ણયોનો આધાર બનાવતા પહેલા, તમારે સંબંધિત રેખાઓ પર કથિત વર્તનને દૃષ્ટિની રીતે તપાસવું જોઈએ. વર્ણન તમને યોગ્ય સ્થાન પર લઈ જાય છે; કોડમાં અંતિમ કહેવું છે.

સાવધાન: AI ના "આ કોડ X કરે છે" સારાંશને સુરક્ષા અથવા નાણાંના પ્રવાહ સાથે સંકળાયેલા નિર્ણયમાં એકલા પુરાવા તરીકે ગણશો નહીં. સારાંશ એ એક નકશો છે જે દર્શાવે છે કે ક્યાં જોવું છે; તમે કોડમાં કન્ફર્મેશન આપો.

વિદેશી કોડ બેઝને મેપ કરવાનાં પગલાં

  1. ટોચના સ્તરથી પ્રારંભ કરો. પ્રથમ, ફોલ્ડર સ્ટ્રક્ચર અને એન્ટ્રી પોઈન્ટ્સ (મુખ્ય, એપ્લિકેશન લોન્ચ, હોમ રાઉટર) થી પોતાને પરિચિત કરો. AI ને પૂછો "આ ડાયરેક્ટરી સ્ટ્રક્ચર પર આધારિત એપ્લિકેશનના સ્તરો શું છે?" પૂછો
  2. ફીચરને એન્ડ-ટુ-એન્ડ ટ્રૅક કરો. "જ્યારે વપરાશકર્તા લૉગ ઇન કરે છે ત્યારે કઈ ફાઇલો સક્રિય થાય છે અને કયા ક્રમમાં?" - સમગ્ર આર્કિટેક્ચર વાંચવા કરતાં એક પ્રવાહ જોવો એ વધુ ઉપદેશક છે.
  3. શરતોનું સ્થાનિકીકરણ કરો. AI ને પ્રોજેક્ટ-વિશિષ્ટ ખ્યાલો ("ભાડૂત", "લેજર", "જોબ રનર") માટે પૂછો અને કોડમાં તેમના સમકક્ષ શોધો.
  4. તમે જટિલ કાર્યને સરળ બનાવ્યું છે. એક લાંબી ફંક્શનને સ્ટેપ બાય સ્ટેપ સમજાવો, પછી કોડમાં તે સ્ટેપ્સને માર્ક કરો.
  5. ચકાસો. તમારી સમજ ચકાસવા માટે એક નાનો ફેરફાર કરો અને પરીક્ષણો ચલાવો; જો તમારી સમજ ખોટી હોય તો પરીક્ષણ તમને તરત જ કહે છે.

ત્રણ મિની કેસ

કેસ 1 — વારસાગત સેવા 2 દિવસથી ઘટાડીને 3 કલાક કરવામાં આવી હતી. એક ડેવલપરે વિદાય લેતા સહકર્મી પાસેથી 4,000-લાઈન ચુકવણી સમાધાન સેવા લીધી. જો AI પાસે મોડ્યુલોનો સારાંશ હોય અને પેમેન્ટ ફ્લો એન્ડ-ટુ-એન્ડ ટ્રેક હોય; તેમણે વ્યક્તિગત રીતે કોડમાં બે જટિલ કાર્યોની ચકાસણી કરી. શાસ્ત્રીય "અંધ વાંચન" સાથે 2 દિવસનો સમય લાગતો આ શોધ ચકાસાયેલ AI પદ્ધતિ સાથે લગભગ 3 કલાકમાં પૂર્ણ કરવામાં આવી હતી.

કેસ 2 - ભ્રામક નામની છટકું. એક ફંક્શનને validateAndSave કહેવામાં આવતું હતું પરંતુ AI સારાંશમાં કહ્યું હતું કે "પહેલા માન્ય કરે છે, પછી સાચવે છે". જ્યારે ડેવલપર કોડમાં ગયો, ત્યારે તેણે જોયું કે વેરિફિકેશન પહેલાં સેવિંગ કરવામાં આવ્યું હતું, અને વેરિફિકેશન માત્ર લૉગ પર જ લખ્યું હતું. ઉત્પાદનમાં બગ ટિકિટનું આ વાસ્તવિક મૂળ કારણ હતું. જો કોડમાં કોઈ માન્યતા ન હોય, તો ખોટા સારાંશ ભૂલને છુપાવશે.

કેસ 3 — નવી લાઇબ્રેરી શિક્ષણ ઝડપી. ટીમ સંદેશ કતાર લાઇબ્રેરીને એકીકૃત કરવા જઈ રહી હતી જેનાથી તેઓ અજાણ હતા. મેં AI ને પૂછ્યું કે "આ લાઇબ્રેરીમાં ગ્રાહક કેવી રીતે સેટ કરવો, ભૂલના કિસ્સામાં ફરીથી પ્રયાસ કેવી રીતે કરવો?" તેઓએ પૂછ્યું અને નમૂનો તૈયાર કર્યો; પછી તેઓએ અધિકૃત દસ્તાવેજ સાથે ઉદાહરણની તુલના કરી અને તફાવત (જૂનું સંસ્કરણ API) નક્કી કર્યું. શીખવાનો સમય અડધો કાપી નાખે છે.

ચાર નકલ કરી શકાય તેવા નમૂનાઓ

કોડબેઝ મેપિંગ:

નીચે પ્રોજેક્ટની ડિરેક્ટરી/ફાઇલ સૂચિ છે. 1) એપ્લિકેશનના સ્તરોને બહાર કાઢો (ઇનપુટ, બિઝનેસ લોજિક, ડેટા એક્સેસ, વગેરે). 2) "{{ઉદાહરણ મિલકત}}" વિનંતીની સંભવિત ફાઇલ મુસાફરીની સૂચિ બનાવો. 3) એવા વિસ્તારોને ચિહ્નિત કરો જેના વિશે તમે અચોક્કસ છો "ચકાસાયેલ હોવું જોઈએ". {{directory_list}}

કાર્ય વર્ણન (પગલાં દ્વારા):

આ કાર્યને પંક્તિ જૂથોમાં વિભાજીત કરો અને દરેક જૂથ શું કરે છે તે સાદા ટર્કિશમાં સમજાવો. છેલ્લે: સૂચિ ઇનપુટ, આઉટપુટ, આડ અસરો (ડેટાબેઝ/ફાઇલ/નેટવર્ક) અને સંભવિત ધાર કેસ. અલગ "ચકાસાયેલ હોવું જ જોઈએ" મથાળા હેઠળ તમે જે વર્તણૂકો વિશે ચોક્કસ નથી તે એકત્રિત કરો.{{function}}

ડેટા ફ્લો ટ્રેકિંગ:

મૂલ્ય "{{variable/data}}" ક્યાંથી આવે છે, તે કયા પરિવર્તનોમાંથી પસાર થાય છે, તે ક્યાં લખાયેલું છે? કોડમાં ફંક્શન નામોનો ઉપયોગ કરીને ફ્લો ચેઇન બનાવો. સંબંધિત કોડ: {{code_segments}}

પુસ્તકાલયનો ઉપયોગ કેવી રીતે કરવો તે શીખવું:

હું {{library}} સાથે {{purpose}} બનાવવા માગું છું. ન્યૂનતમ, કાર્યકારી ઉદાહરણ આપો. ખાતરી કરો કે તમે ઉપયોગ કરો છો તે દરેક કાર્ય ખરેખર આ પુસ્તકાલયનું છે; જો તમને ખાતરી ન હોય, તો "અધિકૃત દસ્તાવેજીકરણમાંથી ચકાસો" પર ટિક કરો. સંસ્કરણ: {{version}}.

નબળા પ્રોમ્પ્ટ / મજબૂત પ્રોમ્પ્ટ

નબળા: "આ કોડ સમજાવો." (તમે શું વિચારી રહ્યા છો? કયા સ્તરે? તમે શું કરશો?)
સશક્ત: "હું આ કાર્ય સંભાળી રહ્યો છું અને હું તેમાં પુનઃપ્રયાસના તર્કને બદલીશ. ફંક્શનને સ્ટેપ બાય સ્ટેપ સમજાવો, ખાસ કરીને ભૂલના કિસ્સામાં, તમે કેટલી વાર અને કયા અંતરાલ પર ફરીથી પ્રયાસ કરો છો તે સ્પષ્ટપણે જણાવો; તમે જે ભાગો વિશે ચોક્કસ નથી તેને 'ચકાસવું આવશ્યક છે' તરીકે ચિહ્નિત કરો. [code]"

મજબૂત સંસ્કરણ તમારો ઉદ્દેશ આપે છે (હું ફરીથી પ્રયાસ તર્ક બદલીશ) અને ધ્યાન કેન્દ્રિત કરો; જેથી કરીને સમજૂતી સામાન્ય સારાંશ નથી પરંતુ ઉપયોગી માર્ગદર્શિકા છે.

ક્વેસ્ટ

AI સારું કરે છે

ચકાસવાની ખાતરી કરો

સામાન્ય આર્કિટેક્ચર સારાંશ

સ્તરો દૂર કરો

વાસ્તવિક કૉલ ક્રમ

જટિલ કાર્ય

પગલું દ્વારા પગલું સમજૂતી

વિપરીત તર્ક, આડ અસરો

ડેટા સ્ટ્રીમ

સાંકળ ડ્રાફ્ટિંગ

શરતી શાખાઓ, છોડેલા માર્ગો

પુસ્તકાલયનો ઉપયોગ

નમૂના પેઢી

API ની અધિકૃતતા અને સંસ્કરણ

માનવ સમજ માટે કોઈ રિપ્લેસમેન્ટ

AI વર્ણન એ શીખવાનો વિકલ્પ નથી; તે તેને ઝડપી બનાવે છે. કોડબેઝને સાચા અર્થમાં "માલિક" બનાવવાનો અર્થ એ છે કે તેનું માનસિક મોડેલ બનાવવું, અને તે મોડેલ ફક્ત તમે કોડ વાંચો, નાના ફેરફારો કરો અને પરિણામ જુઓ ત્યારે જ બંધબેસે છે. AI નો ઉપયોગ કરો જેમ કે કોઈ માર્ગદર્શક તમને કહેશે કે "અહીં જુઓ, આ મહત્વપૂર્ણ છે" — પરંતુ તમે તેને તમારી પોતાની આંખોથી ક્યાં જુઓ છો તે વાંચો.

ટીપ: જ્યારે તમને લાગે કે તમે કોઈ કાર્યને સમજો છો, ત્યારે AI ને "એક વાક્યમાં સારાંશ" આપવા માટે કહો; પછી તમારા પોતાના વાક્ય સાથે તેની તુલના કરો. જો બે વાક્યો એકબીજા સાથે વિરોધાભાસી હોય, તો કાં તો તમે અથવા મોડેલ કંઈક ચૂકી ગયા છો — અને તમે તેને કોડમાં કામ કરો છો.

સામાન્ય ભૂલો

  • સારાંશને પુરાવા તરીકે ધ્યાનમાં લો. વર્ણનની ચકાસણી કર્યા વિના કોડ વિશે નિર્ણય લેવાનો અર્થ છે ભ્રામક નામોની જાળમાં પડવું.
  • ખૂબ મોટા ટુકડાઓ gluing. એકસાથે 2,000 રેખાઓનો સારાંશ સુપરફિસિયલ અને ભૂલ-સંભવિત પરિણામો આપે છે; ટુકડાઓમાં વિભાજીત કરો.
  • હેતુ જણાવતો નથી. જો તમે "તમે શું કરશો" ના કહેતા હોય તો વર્ણન સામાન્ય રહે છે અને તમારા વ્યવસાય પર ધ્યાન કેન્દ્રિત કરતું નથી.
  • લાઇબ્રેરી દાખલાની માન્યતા નથી. મોડેલ જૂના અથવા અસ્તિત્વમાં ન હોય તેવા API કહી શકે છે; સત્તાવાર દસ્તાવેજ સાથે સરખામણી કરો.
  • બધા શિક્ષણ દૂર આપીને. કોડ બેઝને ક્યારેય વાંચ્યા વિના માત્ર એબ્સ્ટ્રેક્ટ્સ સાથે કામ કરવાથી તમે પ્રથમ વાસ્તવિક ભૂલમાં લાચાર થઈ જશો.

સારાંશમાં

વિદેશી કોડ બેઝની શોધમાં AI એ એક શક્તિશાળી માર્ગદર્શિકા છે: નકશા આર્કિટેક્ચર, જટિલ કાર્યોને સરળ બનાવે છે, ડેટા ફ્લો શોધી કાઢે છે, પુસ્તકાલયનો ઉપયોગ શીખવે છે. પરંતુ દરેક સમજૂતી એક પૂર્વધારણા છે. તમારો મુદ્દો સ્પષ્ટ કરો, તેને તોડી નાખો અને કોડમાં ચકાસો અને દરેક નિર્ણાયક નિવેદનનું પરીક્ષણ કરો કે જે મોડેલ કહે છે (અને નથી) "ચકાસાયેલ હોવું આવશ્યક છે." માર્ગદર્શિકા એઆઈ છે; તમે જ છો જે નકશો વાંચે છે અને જવાબદારી ઉઠાવે છે.

એપ્લિકેશન કાર્ય

એક મોડ્યુલ પસંદ કરો કે જેનાથી તમે અજાણ્યા છો અથવા જે તમને હમણાં જ વારસામાં મળ્યું છે. સૌપ્રથમ, "કોડ બેઝ મેપિંગ" ટેમ્પલેટ વડે ફીચરના લેયર્સ અને ફાઇલ જર્ની બહાર કાઢો. પછી "ફંક્શન એક્સ્પ્લેનેશન" ટેમ્પ્લેટ સાથે સ્ટેપ બાય સ્ટેપ સમજાવેલ તે ફીચરનું સૌથી જટિલ કાર્ય રાખો. છેલ્લે, વ્યક્તિગત રીતે કોડમાં ઓછામાં ઓછા બે નિવેદનો તપાસો કે જે મોડેલે "ચકાસાયેલ હોવું જોઈએ" તરીકે ચિહ્નિત કર્યું છે અને નોંધ કરો કે તે સાચા છે કે ખોટા.

ચેકલિસ્ટ

  • [ ] હું AI સ્ટેટમેન્ટને પૂર્વધારણા તરીકે ગણું છું અને કોડમાં તેની ચકાસણી કરું છું.
  • [ ] કોડ સમજાવતી વખતે, હું મારો હેતુ ઉમેરું છું અને પ્રોમ્પ્ટ પર ધ્યાન કેન્દ્રિત કરું છું.
  • [ ] હું મોટા કોડ બેઝને ભાગોમાં વિભાજીત કરીને સારાંશ આપું છું.
  • [ ] હું ગેરમાર્ગે દોરનારા નામ/વિપરીત લોજિક ટ્રેપ્સ માટે લાઇન પર નિર્ણાયક દાવાઓ તપાસું છું.
  • [ ] હું સત્તાવાર દસ્તાવેજ અને સંસ્કરણ સાથે પુસ્તકાલયના ઉદાહરણોની તુલના કરું છું.
  • [ ] હું AI નો ઉપયોગ શિક્ષણને વેગ આપવા માટે માર્ગદર્શિકા તરીકે કરું છું, શીખવાના વિકલ્પ તરીકે નહીં.