GitHub Copilot మీ డేటాబేస్ డిజైన్‌ను పాడు చేస్తోంది

మీరు 47 టేబుల్స్ ఉన్న ఒక Rails schema వైపు చూస్తున్నారు. ఆ రిలేషన్‌షిప్‌లు స్పాగెట్టి (spaghetti) లాగా చిక్కుపడి ఉన్నాయి. శుక్రవారం లోపు మీకు ఒక కొత్త ఫీచర్ కావాలి. మీరు ఆ schemaను Copilotలో పేస్ట్ చేసి ఒక మైగ్రేషన్ (migration) అడుగుతారు.

AI మీకు సరిగ్గా కనిపిస్తున్న కోడ్‌ను ఇస్తుంది. మీరు దానిని షిప్ చేస్తారు. మూడు వారాల తర్వాత, ఒక సర్క్యులర్ డిపెండెన్సీ (circular dependency) మీ చెకౌట్ ఫ్లోను క్రాష్ చేస్తుంది.

ఇది Copilot వైఫల్యం కాదు. ఇది Context Composting.

మీరు మీ డేటాబేస్‌ను ఒకే ప్రాంప్ట్‌లో AI అర్థం చేసుకోగలిగేలా డిజైన్ చేస్తున్నారు. మీ అప్లికేషన్ అవసరాల కోసం డిజైన్ చేయడం లేదు.

Qiitaలో ఒక జపనీస్ డెవలపర్ టీమ్‌లు AIని ఉపయోగించే విధానంలో ఉన్న తేడాను గమనించారు. చాలా మంది వెస్ట్రన్ డెవలపర్లు AIకి తక్కువ కాంటెక్స్ట్ (context) ఇవ్వడం ద్వారా టోకెన్లను ఆదా చేయడానికి ప్రయత్నిస్తారు. వారు చిన్న ప్రాంప్ట్‌లు మరియు చిన్న చిన్న భాగాలుగా ఉపయోగిస్తారు.

కొన్ని జపనీస్ టీమ్‌లు కాంటెక్స్ట్‌ను ఒక ఆర్కిటెక్చరల్ అసెట్‌గా (architectural asset) పరిగణిస్తాయి. వారు AI కోసం స్కాఫోల్డింగ్ (scaffolding) లాగా schema డాక్యుమెంటేషన్‌ను ఉపయోగిస్తారు. మోడల్ బిజినెస్ రూల్స్ మరియు స్టేట్ ట్రాన్సిషన్స్‌ను (state transitions) అర్థం చేసుకోవడం కోసం వారు ప్రత్యేకంగా కామెంట్స్ రాస్తారు.

ఇది ఒక ఉచ్చును సృష్టిస్తుంది.

ఒక స్టార్టప్ "Copilot-first" డిజైన్ ఫిలాసఫీని అనుసరించడం నేను చూశాను. AI సులభంగా స్కాన్ చేయగలిగేలా వారు రిలేషన్‌షిప్‌లను సరళీకృతం చేసి, ఇండెక్స్‌లను (indexes) జోడించారు.

ఫలితం దారుణంగా ఉంది:

  • AI సంక్లిష్టమైన అసోసియేషన్స్‌ను (associations) హ్యాండిల్ చేయలేకపోయినందున, వారి వద్ద 30% ఎక్కువ టేబుల్స్ వచ్చాయి.
  • క్వెరీ పెర్ఫార్మెన్స్ (Query performance) తగ్గింది.
  • అనలిటికల్ క్వెరీస్ (Analytical queries) 40% నెమ్మదించాయి.

వారు AI రీడబిలిటీ (readability) కోసం ఆప్టిమైజ్ చేసి, మానవ పనితీరును (human performance) త్యాగం చేశారు.

AI మీ ఆర్కిటెక్చర్‌ను నిర్ణయించనివ్వకండి. సమతుల్యతను పాటించడానికి ఈ దశలను అనుసరించండి:

  • నిర్ణయాలను రెండుసార్లు డాక్యుమెంట్ చేయండి. ఒక వెర్షన్‌ను AI కోసం, మరొక వెర్షన్‌ను మనుషుల కోసం "ఎందుకు" అనే వివరణతో రాయండి.
  • ప్రతి వారం ఒక AI మైగ్రేషన్‌ను మాన్యువల్‌గా రివ్యూ చేయండి. ప్రతి ఫారిన్ కీ (foreign key) మరియు ఇండెక్స్‌ను తనిఖీ చేయండి.
  • మీ AI ceilingని ట్రాక్ చేయండి. AI విఫలం కావడానికి ముందు ఒకే సెషన్‌లో మీరు ఎన్ని టేబుల్స్ గురించి ఆలోచించగలరో గమనించండి.
  • ప్రతి త్రైమాసికానికి ఒకసారి schema ఆడిట్ చేయండి. AI లేకుండా ఒక హ్యూమన్ ఆర్కిటెక్ట్ దీనిని ఇదే విధంగా డిజైన్ చేస్తారా అని ప్రశ్నించుకోండి.

AI కోసం డిజైన్ చేయాలనే ఒత్తిడి పెరుగుతుంది. ఫ్రేమ్‌వర్క్‌లు "AI-optimized" ప్యాటర్న్‌లను విడుదల చేస్తాయి.

AIని వ్యతిరేకించే వారు ఉత్తమ డెవలపర్లు కాలేరు. AI తమను తప్పుదారి పట్టిస్తుందని గుర్తించగలిగేంత పదునైన ఆర్కిటెక్చరల్ ఆలోచనా విధానాన్ని కలిగి ఉండేవారే ఉత్తమ డెవలపర్లు.

మీ టీమ్ AI కాంటెక్స్ట్ చుట్టూ ఆర్కిటెక్చర్‌ను డిజైన్ చేయడం ప్రారంభించిందా? అది ప్రొడక్షన్‌లోకి వచ్చినప్పుడు కలిగిన నష్టం ఏమిటి?

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