ડેવ લોગ: સિસ્ટમની પ્રામાણિકતા (System Honesty)
એવી સિસ્ટમ બનાવો જે સત્ય કહે છે.
સિસ્ટમ તેના સિગ્નલ્સ જેટલી જ સારી હોય છે. જો તમારી ક્વેરીઝ બગાડ છુપાવતી હોય, તમારા હેલ્થ ચેક્સ જૂઠું બોલતા હોય, અથવા તમારા ટૂલ્સ કામનું પુનરાવર્તન કરતા હોય, તો તમારી સિસ્ટમ અપ્રામાણિક છે.
મેં આખો દિવસ ચાર અલગ-અલગ ટેકનિકલ વિષયો પર કામ કરવામાં વિતાવ્યો. દરેક એક જ થીમ અનુસરે છે: સિસ્ટમને પ્રામાણિક બનાવવી.
- Database Performance તમે ઉપયોગમાં ન લો તેવો ડેટા ફેચ કરવાનું બંધ કરો.
- તમારા ડેવલપમેન્ટ એન્વાયરમેન્ટમાં N+1 ડિટેક્ટરનો ઉપયોગ કરો. તે છુપાયેલા lazy-loads ને સ્પષ્ટ કાર્ય સૂચિમાં ફેરવે છે.
- બિનઉપયોગી eager loads દૂર કરો. જો તમારો વ્યુ કોઈ કોલમનો ઉપયોગ ન કરતો હોય, તો તેને ફેચ કરશો નહીં.
- દરેક રિક્વેસ્ટ દીઠ કોન્સ્ટન્ટ્સને મેમોઇઝ (Memoize) કરો. એક જ સાયકલમાં એક જ વેલ્યુને વારંવાર ફરીથી ગણશો નહીં.
- ડેશબોર્ડ ક્વેરીઝને ગ્રુપ કરો. વીસ નાની count calls ને બદલે એક ગ્રુપ કરેલી ક્વેરીનો ઉપયોગ કરો.
- Real Health Checks માત્ર કોન્ફિગરેશન અસ્તિત્વમાં છે કે નહીં તે ચકાસતું ચેક 'હેલ્થ ચેક' નથી. તે 'કોન્ફિગ ચેક' છે.
- વાસ્તવિક હેલ્થ ચેકે પહોંચની ક્ષમતા (reachability) સાબિત કરવી જોઈએ.
- ટાર્ગેટ હોસ્ટ અને પોર્ટ પર સોકેટ (socket) ખોલો.
- TCP, HTTP, અથવા TLS પ્રોબ્સ વચ્ચે સ્વિચ કરવા માટે કોન્ટ્રાક્ટ અથવા ઇન્ટરફેસનો ઉપયોગ કરો.
- દરેક પ્રોબને તેના પોતાના કનેક્શન પર ચલાવો. એક ધીમી સર્વિસ તમારા સમગ્ર મોનિટરિંગ ટૂલને અટકાવવી જોઈએ નહીં.
- Safer AI Tools (MCP) જ્યારે તમે AI એજન્ટને તમારી સિસ્ટમનો એક્સેસ આપો છો, ત્યારે તમારે એવું માની લેવું જોઈએ કે તે ભૂલો કરશે.
- Idempotency keys નો ઉપયોગ કરો. જો એજન્ટ રિક્વેસ્ટ ફરીથી કરે, તો સર્વરે ડુપ્લીકેટ બનાવવાને બદલે સમાન પરિણામ આપવું જોઈએ.
- બહાર નીકળતી વખતે પર્સનલ ડેટા સાફ (scrub) કરો. રિસ્પોન્સ પાથને પબ્લિક બાઉન્ડ્રી તરીકે ગણો.
- ટાઇપ્ડ એરર કોડ્સનો ઉપયોગ કરો. રો (raw) સ્ટ્રિંગ્સ મોકલશો નહીં. એજન્ટને યોગ્ય રીતે કામ કરવા માટે "not_found" જેવા સ્ટ્રક્ચર્ડ કોડ્સની જરૂર હોય છે.
- Identity and Password Resets જ્યારે તમે એકસાથે અનેક સિસ્ટમ્સ સાથે કામ કરો છો, ત્યારે ક્રમ (order) મહત્વનો છે.
- જો પાસવર્ડ રીસેટ એકથી વધુ ડિરેક્ટરીઓને અસર કરતું હોય, તો સત્યનો એક જ સ્ત્રોત (source of truth) પસંદ કરો.
- સૌ પ્રથમ અધિકૃત (authoritative) ડિરેક્ટરીમાં લખો.
- ક્રમનું દસ્તાવેજીકરણ કરો. "જ્યારે મેં પ્રયાસ કર્યો ત્યારે તે કામ કરી ગયું હતું" એ નિષ્ફળતા દરમિયાન સફળતાની ખાતરી નથી.
ધ્યેય આકર્ષક ફીચર્સ બનાવવાનો નથી. ધ્યેય એવી સિસ્ટમ બનાવવાનો છે જે તમે જોતા ન હોવ ત્યારે પણ વિશ્વસનીય રહે.
