കോഡ് ഡെലിവർ ചെയ്യാൻ ഞാൻ എങ്ങനെ AI ഉപയോഗിക്കുന്നു

ബുദ്ധിപരമായ പ്രോംപ്റ്റുകൾ എഴുതാൻ ശ്രമിക്കുന്നത് നിർത്തുക. പകരം കോൺടെക്സ്റ്റ് (context) എൻജിനീയറിംഗ് ആരംഭിക്കുക.

മിക്ക ആളുകളും AI തെറ്റായ രീതിയിലാണ് ഉപയോഗിക്കുന്നത്. അവർ ഒരു വാചകത്തിൽ ഒരു ഫീച്ചറിനായി ചോദിക്കുന്നു. AI തെറ്റായ ലൈബ്രറികൾ ഉപയോഗിച്ചുള്ള കോഡ് നൽകുന്നു, നിങ്ങളുടെ പേരിംഗ് രീതികൾ (naming conventions) തെറ്റിക്കുന്നു, പഴയ ബഗുകൾ വീണ്ടും കൊണ്ടുവരുന്നു. ആ കുഴപ്പങ്ങൾ പരിഹരിക്കാൻ നിങ്ങൾ നിങ്ങളുടെ ഉച്ചകഴിഞ്ഞ് മുഴുവൻ സമയം ചെലവഴിക്കുന്നു.

കോൺടെക്സ്റ്റ് ഇല്ലാത്ത ഒരു AI എന്നത് നിങ്ങളുടെ കോഡ്ബേസ് ഒരിക്കലും വായിച്ചിട്ടില്ലാത്ത ഒരു ജൂനിയർ ഡെവലപ്പറെപ്പോലെയാണ്. ഇന്നലത്തെ കാര്യങ്ങളെല്ലാം അത് മറന്നുപോകുന്നു. ഒരു പുതിയ ജീവനക്കാരന് നിങ്ങൾ ഒരു വരി മാത്രം നൽകി പെർഫെക്റ്റ് കോഡ് പ്രതീക്ഷിക്കില്ലല്ലോ. പകരം നിങ്ങൾ അവർക്ക് ഒരു ഓൺബോർഡിംഗ് ഡോക്യുമെന്റ് (onboarding document) നൽകും.

എന്റെ റെപ്പോസിറ്ററിയിൽ (repo) ഞാൻ ഒരു പ്രോജക്റ്റ് മെമ്മറി ഫയൽ ഉപയോഗിക്കുന്നു. AI ഓരോ തവണയും വായിക്കുന്ന ഒരു ഓൺബോർഡിംഗ് ഡോക്യുമെന്റ് പോലെയാണ് ഈ ഫയൽ പ്രവർത്തിക്കുന്നത്. പുറത്തുനിന്നുള്ള ഒരാൾക്ക് അറിയാൻ കഴിയാത്ത പ്രോജക്റ്റ് പ്രത്യേക നിയമങ്ങൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു:

• മാറ്റാൻ പാടില്ലാത്തവ (Non-negotiables): URL-കൾ എങ്ങനെയായിരിക്കണം, സ്ലഗ്ഗുകൾ (slugs) എങ്ങനെ പ്രൊഡക്ഷനുമായി പൊരുത്തപ്പെടണം എന്നിവ. • ലോജിക് നിയമങ്ങൾ: നമ്പറുകൾ നേരിട്ട് നൽകുന്നതിന് (hardcoding) പകരം കോൺഫിഗറേഷനുകളിൽ നിന്ന് മൂല്യങ്ങൾ കണ്ടെത്തുക. • എഡ്ജ് കേസുകൾ (Edge cases): സിസ്റ്റം തകരാറുകൾ ഒഴിവാക്കാൻ ആവശ്യമായ പ്രത്യേക CDN സെറ്റിംഗുകൾ അല്ലെങ്കിൽ ഫയൽ പാത്തുകൾ.

ഞാൻ വരുത്തുന്ന ഓരോ തെറ്റും ഈ ഫയലിലെ ഒരു വരിയായി മാറുന്നു. ഇത് ഈ ഫയലിനെ കാലക്രമേണ മൂല്യമുള്ള ഒരു ആസ്തിയായി മാറ്റുന്നു. ഞാൻ കാര്യങ്ങൾ ആവർത്തിച്ച് ചോദിക്കുന്നത് നിർത്തുന്നതുകൊണ്ട് AI നൽകുന്ന ഔട്ട്പുട്ടിന്റെ ഗുണനിലവാരം കാലക്രമേണ മെച്ചപ്പെടുന്നു.

എന്റെ വർക്ക്ഫ്ലോ ഈ ഘട്ടങ്ങൾ പിന്തുടരുന്നു:

  • കോൺടെക്സ്റ്റ് തയ്യാറാക്കുക: നിങ്ങളുടെ കോഡിൽ നിന്ന് മെമ്മറി ഫയൽ തയ്യാറാക്കാൻ AI-യോട് ആവശ്യപ്പെടുക, തുടർന്ന് നിങ്ങൾ അത് എഡിറ്റ് ചെയ്യുക.
  • ടാസ്ക് വീണ്ടും വ്യക്തമാക്കുക: കോഡ് എഴുതുന്നതിന് മുമ്പ് ലക്ഷ്യം സംഗ്രഹിക്കാൻ AI-യോട് ആവശ്യപ്പെടുക. ഇത് തെറ്റുകൾ നേരത്തെ കണ്ടെത്താൻ സഹായിക്കുന്നു.
  • പ്രോംപ്റ്റ് മെച്ചപ്പെടുത്തുക: നിങ്ങളുടെ അഭ്യർത്ഥനയിൽ എന്താണ് അവ്യക്തതയെന്ന് AI-യോട് ചോദിക്കുക.

ഈ കാര്യങ്ങൾക്കായി AI ഉപയോഗിക്കുക:

  • ബോയിലർപ്ലേറ്റ് (boilerplate), സ്കാഫോൾഡിംഗ് (scaffolding) എന്നിവ എഴുതാൻ.
  • പാറ്റേണുകൾ പിന്തുടരുന്ന റീഫാക്ടറിംഗുകൾക്ക് (refactors).
  • അപരിചിതമായ കോഡ് വിശദീകരിക്കാൻ.
  • ഒരു റെപ്പോസിറ്ററിയിലുടനീളം മെക്കാനിക്കൽ പരിശോധനകൾ നടത്താൻ.
  • ടെസ്റ്റുകളും ഫിക്സ്ചറുകളും (fixtures) എഴുതാൻ.

ഈ കാര്യങ്ങൾക്കായി AI ഉപയോഗിക്കുന്നത് ഒഴിവാക്കുക:

  • പുതിയ ആർക്കിടെക്ചർ തീരുമാനങ്ങൾ എടുക്കാൻ.
  • താൽപ്പര്യങ്ങൾക്കോ ഉൽപ്പന്നത്തിന്റെ ഗുണനിലവാരത്തിനോ (taste or product calls) അനുസരിച്ചുള്ള തീരുമാനങ്ങൾ എടുക്കാൻ.
  • തെറ്റായ തീരുമാനങ്ങൾ വലിയ നഷ്ടമുണ്ടാക്കുന്ന കാര്യങ്ങൾ.
  • സുരക്ഷാപരമായ ഡിസൈനുകൾ.
  • ഡെലിവറി ചെയ്യുന്നതിന് മുമ്പുള്ള അവസാന റിവ്യൂ.

ഈ രീതി ലളിതമാണ്:

  • ജോലികൾ ചെറുതാക്കുക. "ഈ ഫീച്ചർ നിർമ്മിക്കുക" എന്ന് പറയുന്നതിന് പകരം "ഈ പ്രത്യേക മാറ്റം വരുത്തുക" എന്ന് പറയുക.
  • കോൺടെക്സ്റ്റ് മുൻകൂട്ടി നൽകുക.
  • ഓരോ ഔട്ട്പുട്ടും പരിശോധിക്കുക. ബിൽഡ് റൺ ചെയ്യുകയും വ്യത്യാസങ്ങൾ (diff) വായിക്കുകയും ചെയ്യുക.
  • ഒരു ജൂനിയർ ഡെവലപ്പറുടെ PR പോലെ ഇത് റിവ്യൂ ചെയ്യുക. ഒരു മനുഷ്യൻ വായിക്കാതെ ഒരിക്കലും കോഡ് കമ്മിറ്റ് ചെയ്യരുത്.
  • പഠിച്ച പാഠങ്ങൾ നിങ്ങളുടെ കോൺടെക്സ്റ്റ് ഫയലിലേക്ക് ചേർക്കുക.

ഗുണം പ്രോംപ്റ്റിലല്ല, നിങ്ങൾ നിലനിർത്തുന്ന കോൺടെക്സ്റ്റിലാണ്.

Source: https://dev.to/faizahmedfarooqui/how-i-actually-use-ai-to-ship-code-context-engineering-over-clever-prompts-il8

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