GitHub Copilot તમારા ડેટાબેઝ ડિઝાઇનને બગાડી રહ્યું છે

તમે 47 ટેબલ ધરાવતા Rails schema ને જોઈ રહ્યા છો. તેના સંબંધો (relationships) સ્પગેટી જેવા જટિલ લાગે છે. તમારે શુક્રવાર સુધીમાં એક નવું ફીચર જોઈએ છે. તમે schema ને Copilot માં પેસ્ટ કરો છો અને migration માટે પૂછો છો.

AI તમને એવો કોડ આપે છે જે જોવામાં સાચો લાગે છે. તમે તેને શિપ કરી દો છો. ત્રણ અઠવાડિયા પછી, એક circular dependency તમારા checkout flow ને ક્રેશ કરી દે છે.

આ Copilot ની નિષ્ફળતા નથી. આ Context Composting છે.

તમે તમારો ડેટાબેઝ એ રીતે ડિઝાઇન કરી રહ્યા છો જે AI એક સિંગલ પ્રોમ્પ્ટમાં સમજી શકે. તમે તેને તમારી એપ્લિકેશન જરૂરિયાતો માટે ડિઝાઇન નથી કરી રહ્યા.

Qiita પર એક જાપાનીઝ ડેવલપરે ટીમો AI નો ઉપયોગ કેવી રીતે કરે છે તેમાં તફાવત નોંધ્યો છે. ઘણા પશ્ચિમી (Western) ડેવલપર્સ AI ને ઓછો context આપીને tokens બચાવવાનો પ્રયાસ કરે છે. તેઓ ટૂંકા પ્રોમ્પ્ટ્સ અને નાના ટુકડાઓનો ઉપયોગ કરે છે.

કેટલીક જાપાનીઝ ટીમો context ને એક આર્કિટેક્ચરલ એસેટ (architectural asset) તરીકે જુએ છે. તેઓ AI માટે scaffolding તરીકે schema documentation નો ઉપયોગ કરે છે. તેઓ ખાસ કરીને એવા કોમેન્ટ્સ લખે છે જેથી મોડેલ બિઝનેસ રૂલ્સ અને state transitions ને સમજી શકે.

આ એક જાળ બનાવે છે.

મેં એક સ્ટાર્ટઅપને "Copilot-first" ડિઝાઇન ફિલોસોફી અપનાવતા જોયું છે. તેઓએ સંબંધોને સરળ બનાવ્યા અને ઇન્ડેક્સ (indexes) ઉમેર્યા જેથી AI તેને સરળતાથી સ્કેન કરી શકે.

તેનું પરિણામ ખરાબ હતું:

  • AI જટિલ એસોસિએશન (associations) હેન્ડલ કરી શકતું ન હોવાથી તેમની પાસે 30% વધુ ટેબલ હતા.
  • ક્વેરી પરફોર્મન્સ (Query performance) ઘટી ગયું.
  • એનાલિટિકલ ક્વેરીઝ (Analytical queries) 40% ધીમી થઈ ગઈ.

તેઓએ AI વાંચનક્ષમતા (readability) માટે ઓપ્ટિમાઇઝ કર્યું અને માનવ કાર્યક્ષમતાનો બલિદાન આપ્યું.

AI ને તમારી આર્કિટેક્ચર નક્કી કરવા ન દો. સંતુલન જાળવવા માટે આ પગલાં અનુસરો:

  • નિર્ણયોને બે વાર ડોક્યુમેન્ટ કરો. એક વર્ઝન AI માટે અને બીજું વર્ઝન મનુષ્યો માટે "કેમ" (why) સમજાવતું લખો.
  • દર અઠવાડિયે એક AI migration ને મેન્યુઅલી રિવ્યુ કરો. દરેક foreign key અને index ને ટ્રેસ કરો.
  • તમારી AI સીલિંગ (ceiling) ને ટ્રેક કરો. AI નિષ્ફળ જાય તે પહેલાં તમે એક સેશનમાં કેટલા ટેબલ વિશે તર્ક કરી શકો છો તેની નોંધ લો.
  • દર ત્રણ મહિને schema audit કરો. પૂછો કે શું કોઈ માનવ આર્કિટેક્ટ AI વગર આ રીતે ડિઝાઇન કરત?

AI માટે ડિઝાઇન કરવાનું દબાણ વધશે. ફ્રેમવર્ક "AI-optimized" પેટર્ન આપશે.

શ્રેષ્ઠ ડેવલપર્સ એ નહીં હોય જેઓ AI નો વિરોધ કરે છે. તેઓ એ હશે જેઓ તેમની આર્કિટેક્ચરલ વિચારધારા એટલી તેજ રાખશે કે જ્યારે AI તેમને ખોટા રસ્તે લઈ જાય ત્યારે તેઓ તેને ઓળખી શકે.

શું તમારી ટીમે AI context ની આસપાસ આર્કિટેક્ચર ડિઝાઇન કરવાનું શરૂ કર્યું છે? જ્યારે તે પ્રોડક્શનમાં આવ્યું ત્યારે તેની કિંમત શું હતી?

Source: https://dev.to/xu_xu_b2179aa8fc958d531d1/github-copilot-is-rewriting-how-you-think-about-database-design-and-not-in-a-good-way-1691

Optional learning community: https://t.me/GyaanSetuAi