मी कोड शिप करण्यासाठी AI चा वापर कसा करतो

हुशार प्रॉम्प्ट्स लिहिण्याचा प्रयत्न करणे थांबवा. कॉन्टेक्स्ट इंजिनिअरिंग (context engineering) सुरू करा.

बहुतेक लोक AI चा चुकीच्या पद्धतीने वापर करतात. ते एका वाक्यात एखादे फीचर मागतात. AI असे कोड परत देते ज्यामध्ये चुकीच्या लायब्ररीज वापरल्या जातात, तुमच्या नेमिंग कन्व्हेन्शन्सचे (naming conventions) उल्लंघन होते आणि जुने बग्स पुन्हा येतात. तो गोंधळ दुरुस्त करण्यात तुमचा संपूर्ण दुपार जातो.

कॉन्टेक्स्टशिवाय असलेले AI म्हणजे असा एक ज्युनियर डेव्हलपर आहे ज्याने तुमचा कोडबेस कधीच वाचलेला नाही. तो कालच्या सर्व गोष्टी विसरून जातो. तुम्ही एखाद्या नवीन कर्मचाऱ्याला फक्त एक ओळीचे तिकीट देऊन परफेक्ट कोडची अपेक्षा करणार नाही. तुम्ही त्याला ऑनबोर्डिंग डॉक्युमेंट (onboarding document) द्याल.

मी माझ्या रेपोमध्ये (repo) एक 'प्रोजेक्ट मेमरी फाईल' वापरतो. ही फाईल एका ऑनबोर्डिंग डॉक्युमेंटसारखी काम करते जी AI प्रत्येक वेळी वाचते. यामध्ये प्रोजेक्ट-विशिष्ट नियम असतात जे बाहेरच्या व्यक्तीला माहित नसतील:

• अटी ज्यांवर तडजोड करता येणार नाही (Non-negotiables): URLs कसे असावेत आणि स्लग्स (slugs) प्रोडक्शनशी कसे जुळले पाहिजेत. • लॉजिक रूल्स (Logic rules): नंबर हार्डकोड करण्याऐवजी कॉन्फिग्समधून (configs) व्हॅल्यूज मिळवणे. • एज केसेस (Edge cases): विशिष्ट CDN सेटिंग्स किंवा फाईल पाथ्स जे शांतपणे होणारे ब्रेक्स (silent breaks) रोखतात.

मी केलेली प्रत्येक चूक या फाईलमध्ये एक ओळ बनते. यामुळे ही फाईल एक वाढती मालमत्ता (compounding asset) बनते. AI च्या आउटपुटची गुणवत्ता काळानुसार सुधारते कारण मला स्वतःची पुनरावृत्ती थांबवावी लागते.

माझी कार्यपद्धती (workflow) या पायऱ्यांचे अनुसरण करते:

  • कॉन्टेक्स्ट बूटस्ट्रॅप करा (Bootstrap the context): तुमच्या कोडवरून मेमरी फाईलचा मसुदा तयार करण्यास AI ला सांगा, त्यानंतर तुम्ही त्यात सुधारणा करा.
  • कार्य पुन्हा स्पष्ट करा (Restate the task): कोड लिहिण्यापूर्वी AI ला ध्येयाचा सारांश विचारण्यास सांगा. यामुळे चुका लवकर लक्षात येतात.
  • प्रॉम्प्टमध्ये सुधारणा करा (Improve the prompt): तुमच्या विनंतीमध्ये नेमके काय अस्पष्ट आहे हे AI ला विचारा.

या कामांसाठी AI वापरा:

  • बोइलरप्लेट (boilerplate) आणि स्कॅफोल्डिंग (scaffolding) लिहिण्यासाठी.
  • पॅटर्न-फॉलोइंग रिफॅक्टर्स (pattern-following refactors) साठी.
  • अपरिचित कोड समजून घेण्यासाठी.
  • रेपोमध्ये मेकॅनिकल स्वीप्स (mechanical sweeps) करण्यासाठी.
  • टेस्ट आणि फिक्स्चर्स (tests and fixtures) लिहिण्यासाठी.

या कामांसाठी AI वापरणे टाळा:

  • नवीन आर्किटेक्चरचे निर्णय घेण्यासाठी.
  • चव किंवा प्रॉडक्ट संबंधी निर्णय घेण्यासाठी.
  • अशा गोष्टी जिथे चूक करणे महाग पडू शकते.
  • सुरक्षा-महत्त्वाच्या (security-critical) डिझाइनसाठी.
  • शिपिंगपूर्वीचे अंतिम रिव्ह्यू.

शिस्त साधी आहे:

  • कामांची व्याप्ती लहान ठेवा. "हे फीचर बनवा" असे म्हणू नका. "हा विशिष्ट बदल करा" असे म्हणा.
  • आधीच कॉन्टेक्स्ट द्या.
  • प्रत्येक आउटपुटची पडताळणी करा. बिल्ड रन करा आणि 'डिफ' (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