पाठ 7 / 25
पहले Tests, फिर Code
Implementation से पहले tests लिखें या माँगें ताकि सही होना जाँचा जा सके।
Assistant को लक्ष्य दें
Assistant उपयोग करने का सबसे भरोसेमंद तरीक़ा है पहले सफलता परिभाषित करना। मुट्ठी भर tests लिखें (या assistant से सुझाने को कहें और उन्हें ख़ुद review करें), फिर implementation माँगें। Tests पास हों तो आपके पास प्रमाण है; विफल हों तो विफलता वापस paste करें और दोहराएँ। इससे agents भी कहीं ज़्यादा प्रभावी होते हैं, क्योंकि वे tests चलाकर अपनी ग़लतियाँ सुधार सकते हैं।
Tests और implementation, चलाकर
मैंने यह चलाया। Prompt के चारों test मामले पास होते हैं, जो इस बात का असली प्रमाण है कि function वही करता है जो माँगा गया।
import re
def slugify(text):
text = text.strip().lower()
text = re.sub(r"[^a-z0-9]+", "-", text)
return text.strip("-")
tests = [("Hello World", "hello-world"), (" Python 3.12! ", "python-3-12"),
("", ""), ("--a--b--", "a-b")]
for given, want in tests:
got = slugify(given)
print(repr(given), "->", repr(got), "OK" if got == want else "FAIL")
Output:
'Hello World' -> 'hello-world' OK ' Python 3.12! ' -> 'python-3-12' OK '' -> '' OK '--a--b--' -> 'a-b' OK
Assistant के लिखे tests पढ़ें
Assistant ऐसे tests लिख सकता है जो उसके अपने कोड, उसकी ग़लतियों समेत, की नक़ल हों। जाँचें कि function ग़लत होने पर हर test विफल होगा; testing खंड दिखाता है कैसे।
त्वरित जाँच: कोड माँगने से पहले tests लिखने का क्या लाभ है?
- सफलता जाँची जा सकती है और assistant के पास लक्ष्य होता है
- Tests सिर्फ़ कोड लंबा करते हैं
- वरना assistants कोड लिखने से मना करते हैं
- यह कोड पढ़ने की ज़रूरत हटाता है
Answer
सफलता जाँची जा सकती है और assistant के पास लक्ष्य होता है — Tests पहले ही "सही" परिभाषित करते हैं, इसलिए आप छाप की जगह प्रमाण से नतीजे जाँचते हैं।