कसरी गर्ने गर्ने 🛠️
कुनै परीक्षण बिना कोडलाई पुरानो कोडको रूपमा विचार गर्नुहोस्, माइकल फीथर्सको परिभाषा अनुसार Working Effectively with Legacy Code मा, चाहे यसलाई अन्तिम रूपमा कति दुर्लभ सम्पादन गरिएको हो भनेर।
कोडको वर्तमान व्यवहार रेकर्ड गर्ने चरित्रीकरण परीक्षण लेख्नुहोस्, जुन तपाईंले अस्पष्ट वा भ्रामक मानिने भागहरू समावेश गर्दछ, जब सो क्षेत्रको एक पनि पंक्ति समायोजन गरिन्छ।
एक सीमा खोज्नुहोस्, जहाँ तपाईंले मूल कोड पथ सम्पादन बिना बदलाव राख्न सक्नुहुन्छ, र एआईको प्याचलाई अपरीक्षित कोरमा बजाय उक्त सीमामार्फत पार गर्नुहोस्।
अनुपस्थित परीक्षणहरू तयार पार्न एआईलाई अनुरोध गर्नुहोस्, जुन तपाईं अघि बदलाव गर्न जाँदैछन्, र यसमा प्रत्येक दावी परीक्षण गर्नुहोस् जब सम्म तपाईंले यसल
पैच लेख्नु अघि धीमो कार्य थियो, र यसलाई ठीक रूपमा परीक्षण गर्नु अझै एकदम हातमा निर्माण गर्न सक्छ।
अब एक AI सहायक एक पंद्रह वर्ष पुरानो कोड पथ को लागि फिक्स ड्राफ्ट गर्न सक्छ जब सम्म तपाईं CVE पढ्नुहुन्छ, र परिवर्तनको गति परीक्षणको गति बाहेक बढ्दछ जब सम्म परीक्षण सुट अटोमेटेड रूपमा प्रत्येक परिवर्तनमा चलिरहेको छ।
एक करेक्टराइजेशन परीक्षण जाँच गर्दैन कि पुरानो व्यवहार सही थियो कि छैन।
यो जाँच गर्दछ कि नयाँ कोड पुरानो कोडले के गर्छ भनेर, जब तपाईं चाहनुहुन्छ वा छैन, त्यसैले एक पैच यो साबित गर्न सक्छ कि यसले यो स्पष्ट गरेको छैन जुन यसले स्पष्ट गर्नुपर्छ।
यो Feathers द्वारा वर्णन गरिएको सीम हो: कोडमा एक बिन्दु जहाँ तपाईं वर्तमान वाला क्लास वा फंक्शन बिना व्यवहार बदल्न सक्नुहुन्छ, जुन ठीक त्यही जगह हो जहाँ AI-जनित फिक्स आउँछ जब आसपासको कोडमा कोई कवरेज छैन।
Feathers आफ्नो पुस्तकको पूर्णतया यस तरहका सीम मार्फत विरासत कोड बाट परीक्षणमा ल्याएको छ, न कि पहिले मोड्यूल पुनर्लेखन गर्ने र त्यसपछि परीक्षणहरू अनुसरण गर्ने आशा गर्ने।
एक सीम मार्फत एक सुरक्षा पैच केवल एक व्यवहार हानिकारक विवरणको बारेमा स्पर्श गर्दछ।
केवल टास्क समाप्त हुनु अगाडि आवश्यकता समावेश गर्ने पास गरेको रिग्रेशन सुट गणना गर्दछ, एक कोड जुन संकलन र विश्वसनीय देखिन्छ।
तपाईंले प्रत्येक परिवर्तनमा बल दिएका कोड मानकहरू को कुनै पनि फाइलको लागि
विचारणीय बिषयहरू ⚠️
क्यारेक्टरीजेसन परीक्षण पुरानो व्यवहार भलो डिजाइन थियो कि नहीं जाँच गर्दैन।
यसले केवल दावा गर्दछ कि प्याचले यसलाई चुपचाप बदलेन, जुन एक आपातकालीन सुधारको समयमा एक अलग र अधिक तीव्र प्रश्न हो।
वास्तविक अनपढ विरासत कोडमा पहिलो परीक्षण लेख्न वास्तविक घण्टाहरू लाग्छन् जुन एक सक्रिय घटनाको समयमा तपाईंको पाउन सक्दैन।
होने गतिविधि भएको छ जब अगाडि अगाडि अगाडि आउने छ।
कुनै पनि एआई तत्काल आधारित परीक्षण ढाँचा तयार पार्न सक्छ, तर केहि अझै पनि असर्टियनहरूको वास्तविक व्यवहार वर्णन गर्नु पर्छ जुन तपाईंले बरकरार राख्न चाहनुहुन्छ, एआईले फंक्सन नामबाट अनुमान लगाएको व्यवहार नहीं।
एक सुरक्षा प्याच छिद्र बन्द गर्न अधिकार दिन्छ, केवल यसलाई।
यदि एआईले छोटो समाधानले अझै पनि फीचरको कार्य बदल्न आवश्यकता छ भने, त्यो निर्णय मानिसको हो, जुन कुनै भी मोड
https://hackernoon.com/ai-coding-tip-021-merging-code-you-dont-understand-creates-comprehension-debt
https://hackernoon.com/ai-coding-tip-022-give-ai-a-harness-to-work-with
https://hackernoon.com/ai-coding-tip-023-how-to-shrink-your-ais-pull-request
https://hackernoon.com/ai-coding-tip-024-force-a-criteria-check-before-the-task-ends
https://hackernoon.com/ai-coding-tip-027-force-code-standards
https://hackernoon.com/ai-coding-tip-032-build-a-dark-factory-pipeline
https://hackernoon.com/ai-coding-tip-033-write-the-failing-test-first-and-ban-deletions
निष्कर्ष 🏁
प्रत्येक स्थिर उत्पादन एक अपरीक्षित मोड्युलको दूरीमा रहेको छ जुन अनुप्रयोगको असफलताबारे शीर्षक बन्न सक्छ।
AI त्यो जोखिम निर्माण गरेको थिएन।
यो केवल एक विश्वासपात्र रूपमा लेखिएको प्याचको बरिष्ठताले टिमलाई अब भन्दा तेजीले पुग्न दिन्छ।
टिम आनन्दित रूपमा अज्ञानमा छ जुन यो केवल एक माइनफिल्डमा कदम राखिएको छ जहाँ कुनै पनि नक्सा नगरेको छ।
पहिले विशेषता परीक्षण लेख्नुहोस्, फिट खोज्नुहोस्, र मानवले वास्तवमा परीक्षण गरेको दिवारहरूमा AI काम गर्न दिनुहोस्।
सबैले आश्रित बर्तन बिगर्ने एक तत्काल समाधान तत्काल छैन।
यो केवल एक धीरजपूर्वक आपत्काल हो जुन बर्तमानको बर्तमानको समय छ।
(0)댓글