AI જે કોડ નહીં લખે
હું ટેકનિકલ ઇન્ટરવ્યુ પ્રશ્ન તરીકે ફોર્મ વેલિડેશન (form validation) નો ઉપયોગ કરું છું. તે સરળ લાગે છે. લોકો તેને કેવી રીતે ઉકેલે છે તે દર્શાવે છે કે તેઓ કેવી રીતે વિચારે છે.
મેં Claude, ChatGPT અને Gemini પર આ સમસ્યાનું પરીક્ષણ કર્યું. તેઓ બધા એક જ ઉકેલ પર પહોંચ્યા.
મોટાભાગના લોકો તેને ઉકેલવા માટે ત્રણમાંથી એક રીતનો ઉપયોગ કરે છે:
- વિવિધ પ્રકારોને હેન્ડલ કરવા માટે ફ્લેગ્સ (flags) સાથે એક સિંગલ ફંક્શનનો ઉપયોગ કરવો.
- ડેટા શેપ (data shape) માં આગળ વધવા માટે રિકર્ઝન (recursion) નો ઉપયોગ કરવો.
- વેલિડેશન કરવા માટે સ્કીમા (schema) નો ઉપયોગ કરવો.
AI મોડલ્સ બધાએ સ્કીમા એપ્રોચ (schema approach) પસંદ કર્યો. તે ટેકનિકલી સચોટ છે. તે ખૂટતી કીઝ (missing keys) ને હેન્ડલ કરે છે. તે સારી રીતે સ્કેલ (scale) થાય છે. જો તમારો ડેટા રનટાઇમ (runtime) પર બદલાતો હોય, તો સ્કીમા એ સાચો વિકલ્પ છે.
પરંતુ મોટાભાગના સોફ્ટવેર માટે એક વધુ સારો રસ્તો છે.
દરેક વસ્તુ માટે એક જ પેટર્ન શોધવાનો પ્રયાસ કરવાને બદલે, કોમ્પોઝિશન (composition) નો ઉપયોગ કરો. દરેક બિઝનેસ કોન્સેપ્ટને તેનું પોતાનું ફંક્શન આપો.
- એક બેઝિક એડ્રેસ વેલિડેટર બનાવો.
- એક શિપિંગ વેલિડેટર બનાવો જે બેઝિક વેલિડેટરનો ઉપયોગ કરે છે.
- એક બિલિંગ વેલિડેટર બનાવો જે બેઝિક વેલિડેટરનો ઉપયોગ કરે છે.
આ એપ્રોચ રિકર્ઝનનો ઉપયોગ કરતો નથી. તે સ્કીમાનો ઉપયોગ કરતો નથી. તે સ્પષ્ટ, અલગ-અલગ ફંક્શન્સનો ઉપયોગ કરે છે.
તેનો ફાયદો સરળ છે. કોડ બિઝનેસને પ્રતિબિંબિત કરે છે. બિલિંગ એડ્રેસ એ એક અલગ કોન્સેપ્ટ છે. તે તેના પોતાના લોજિકને પાત્ર છે. જ્યારે તમે નવો પ્રકાર ઉમેરો છો, ત્યારે તમે હાલના ફંક્શનમાં ફેરફાર કરતા નથી. તમે નવું ફંક્શન ઉમેરો છો. આ તમારા ફેરફારોને લોકલ (local) રાખે છે.
AI ભાગ્યે જ આ રસ્તો પસંદ કરે છે. તે એવો પેટર્ન પસંદ કરે છે જે લોજિકને સેન્ટ્રલાઇઝ (centralize) કરે છે. આપણું શિક્ષણ આપણને ડુપ્લીકેશન (duplication) દૂર કરવાનું અને જનરલાઇઝ (generalize) કરવાનું શીખવે છે. AI તે સંસ્કૃતિમાંથી શીખે છે.
AI નિષ્ફળ જઈ રહ્યું નથી. તે ફક્ત એ જ એન્જિનિયરિંગ ઇન્સ્ટિન્ક્ટ્સ (engineering instincts) ને અનુસરી રહ્યું છે જે આપણે તેને શીખવ્યા છે.
શ્રેષ્ઠ ઉકેલ એ નથી જેમાં કોડની લાઇન સૌથી ઓછી હોય. તે એ છે જે તમારા બિઝનેસ ડોમેનને (business domain) સૌથી પ્રમાણિક રીતે પ્રતિબિંબિત કરે છે.
આગલી વખતે જ્યારે તમે કોઈ ઉકેલ બનાવો, ત્યારે તમારી જાતને એક પ્રશ્ન પૂછો:
શું આ વિવિધતા મારા કોડમાં છે, કે મારા ડેટામાં છે?
જવાબ તમારો આખો ડિઝાઇન બદલી નાખશે.
સ્ત્રોત: https://dev.to/iceonfire/the-code-ai-wont-write-1ieb