आप कैसे (व्यक्तियों और संगठन) को पुन: उपयोग करना आसान बनाने के लिए अपने स्रोत का प्रबंधन करते हैं? क्या आप विशेष रूप से पुन: उपयोग पुस्तकालय बनाए रखते हैं? और यदि हां, तो आप अपनी हिट दर को अधिकतम करने के लिए इसे कैसे अनुक्रमित करते हैं?
मुझे नहीं पता है और मैं एक वैसे विवादास्पद राय यहाँ है, लेकिन मैं अधिकतम कोड पुन: उपयोग के प्रतिकूल (मैं व्याख्या कर रहा हूँ अन्य सब बातों से ऊपर यह प्राथमिकता देने के बजाय के रूप में यह विचार के रूप में "अधिकतम" के विचार को खोजने विचार में संतुलन के लिए पेशेवरों और विपक्ष दोनों होने के नाते)। मैं बजाय टीमों में डीकौप्लिंग के पक्ष में स्लाइड करने और प्रत्येक डेवलपर के मॉड्यूल को अलग करने के लिए स्वस्थ प्रयासों की स्वस्थ मात्रा को अनुमति देने के लिए पसंद करता हूं। सबसे पहले शुरू होने से पहले हर कोई मुझे के साथ असहमति छोड़ दिया और सही, मुझे लगता है कि हम कुछ चीजें पर सहमत कर सकते हैं: है कि आप अन्य लोगों के कोड डिबगिंग घंटे खर्च वांछनीय नहीं है होगा
- पुनर्प्रयोग गाड़ी कोड।
- ऐसे कोड का पुन: उपयोग करना जो अलग-अलग ज़रूरतों की इतनी विस्तृत श्रृंखला को संतुलित करता है कि यह आपकी खुद की जरूरतों को मुश्किल से संतुष्ट करता है और आपको अंततः एक अजीब और अक्षम समाधान प्राप्त करने के लिए बहुत सारे हुप्स से कूदने की आवश्यकता होती है।
- कोड को पुन: उपयोग करने के लिए जो लगातार डिजाइन में परिवर्तन की आवश्यकता होती है और एक प्रकार के बहिष्कार के माध्यम से जाती है जिसके लिए आपको हर 6 महीने का उपयोग करके कोड को फिर से लिखना आवश्यक होगा, अगर आप केवल आधा घंटे में समाधान को लागू कर सकते हैं तो डॉन ' भविष्य में डिज़ाइन परिवर्तनों की आवश्यकता नहीं है क्योंकि यह केवल आपकी सटीक आवश्यकताओं की पूर्ति कर रहा है।
- विदेशी दिखने कोड से भरा एक codebase मुहावरेदार और परिचित तरीकों से भाषा और मानक पुस्तकालय के और अधिक का उपयोग करता है, भले ही वह थोड़ा अधिक कोड की आवश्यकता है एक से अधिक अवांछनीय है।
- डेवलपर्स एक-दूसरे के पैर की उंगलियों पर कदम उठाते हैं क्योंकि वे दोनों एक ही डिजाइन में असंगत परिवर्तन करना चाहते हैं, जबकि लड़ाई और बहस और बदलाव करना जिससे एक-दूसरे के कार्यान्वयन में बग अवांछनीय हो।
- निर्भरता बहुत सारी फेंकने डिजाइन कि खुद साबित नहीं किया अपरिपक्व (नहीं पूरी तरह से परीक्षण कवरेज, समय वास्तव में डिजाइन soundproof और यकीन है कि यह प्रभावी ढंग से आगे डिजाइन में परिवर्तन की आवश्यकता के बिना संतुष्ट उपयोगकर्ता के अंत की जरूरत बनाने के लिए नहीं था) अवांछनीय है ।
- कुछ सरल लिखने के लिए सबसे जटिल निर्माण स्क्रिप्ट के साथ पुस्तकालयों और कक्षाओं/कार्यों के बोतलबंद को शामिल/आयात/लिंक करना अवांछनीय है।
- सबसे अधिक, इस तरह से कोड का पुन: उपयोग करना जो कि इसे पुन: उपयोग करने से कम और लंबे समय तक दोनों में अधिक समय तक अवांछित है, अवांछित है।
उम्मीद है कि हम कम से कम इन बिंदुओं पर सहमत हो सकते हैं। अत्यधिक उत्साही सहयोगियों से कोड पुन: उपयोग करने के साथ मुझे मिली समस्या यह थी कि यह अक्सर ऊपर की एक या अधिक समस्याओं का कारण बनता है। यह सीधे कोड पुन: उपयोग के लिए उत्साह है कि मौलिक समस्या थी नहीं था, लेकिन परिपक्व हैं कि प्राथमिकताओं परीक्षण कवरेज कोड पुन: उपयोग करने के बजाय, ध्वनिरोधन डिजाइन की ओर विषम थे, यकीन है कि चीजों को बनाने के लिए पर्याप्त से पहले हम उन्हें पागल की तरह पुन: उपयोग, और इतना आगे।
स्वाभाविक रूप से यदि हमारे द्वारा पुन: उपयोग किए गए सभी कोडों ने खूबसूरती से काम किया है, तो पूरी तरह से परीक्षण कवरेज था, इसका उपयोग करके इसका उपयोग करने के लिए सबकुछ की जरूरतों को पूरा करने के लिए सिद्ध किया गया था, जो इसे पुन: उपयोग करने से कहीं ज्यादा उत्पादक नहीं थे, और किसी के माध्यम से जाने की आवश्यकता नहीं थी अंत में वर्षों के लिए डिजाइन परिवर्तन, मैं कोड पुन: उपयोग के बारे में उत्साहित होगा। लेकिन मेरे अनुभवों को अक्सर इस आदर्श से बहुत कम चीजें मिलती हैं, जहां कोड पुन: उपयोग समाधान के बजाए रखरखाव की समस्या का तर्कसंगत बन रहा था।
आप कैसे (व्यक्तियों और संगठन) को पुन: उपयोग करना आसान बनाने के लिए अपने स्रोत का प्रबंधन करते हैं? क्या आप विशेष रूप से पुन: उपयोग पुस्तकालय बनाए रखते हैं? और यदि हां, तो आप अपनी हिट दर को अधिकतम करने के लिए इसे कैसे अनुक्रमित करते हैं?
तो, फिर मैं टीम के बीच आंतरिक रूप से लिखे गए स्वामित्व कोड के बीच कोड पुन: उपयोग करने की कोशिश नहीं करता हूं। मैं यह सुनिश्चित करना चाहता हूं कि टीम अनावश्यक प्रयासों पर भारी मात्रा में समय नहीं बिताती है, लेकिन अगर मैं भौतिकविदों और प्रतिपादन दोनों लोग अपने स्वयं के अक्ष-संरेखित बाध्यकारी बॉक्स वर्ग को लागू करते हैं, तो मैंने चीजों को थोड़ा सा स्लाइड करने दिया। यह जरूरी नहीं है कि भौतिक विज्ञानी न्यूनतम/अधिकतम प्रतिनिधित्व का उपयोग कर सके जो उसके उद्देश्य के लिए अधिक कुशल हैं जबकि प्रतिपादन डेवलपर केंद्र/आधा आकार के प्रतिनिधित्व का उपयोग कर सकता है। मैं यह सुनिश्चित करने का प्रयास करता हूं कि जब भी संभव हो हम मानक लाइब्रेरी का पुन: उपयोग करते हैं, क्योंकि यह एक तरह का कोड पुन: उपयोग होता है जो व्यावहारिक रूप से ठोस, अल्ट्रा अच्छी तरह से परीक्षण करने की गारंटी देता है, और आगे के डिज़ाइन परिवर्तनों की आवश्यकता नहीं होती है (अन्य टीमें एक बोतलबंद खर्च कर रही हैं इसके बारे में सुनिश्चित करने के लिए उनके समय का)।
इसके बजाय मैं परीक्षण पर ध्यान केंद्रित करता हूं। एक मॉड्यूल यहां थोड़ा सा कोड डुप्लिकेट कर रहा है और अगर आप मुझसे पूछें कि यह उन तरीकों से खूबसूरती से काम कर रहा है जो उपयोगकर्ताओं को वास्तव में खुश करते हैं, तो पूरी तरह से परीक्षण कवरेज है, और अंतहीन परिवर्तनों की गारंटी नहीं देता है। हम इस तरह के नकल को हर समय स्वीकार करते हैं जब हम तीसरे पक्ष के पुस्तकालयों का उपयोग करते हैं जो संभवतः हमारे कोड कोड को डुप्लिकेट करते हैं जो हमारे आंतरिक कोडबेस में भी है। यह कोई मुद्दा नहीं है जब अनावश्यकता अनावश्यक रखरखाव के प्रयासों का कारण नहीं बनती है।
तो मैं सुझाव देता हूं कि केवल कोड पुन: उपयोग को अधिकतम करने के विचार को आराम दें। लेकिन यदि आप वास्तव में ठोस, अच्छी तरह से परीक्षण किए गए, गैर-तुच्छ कोड का पुन: उपयोग करना जितना संभव हो सके, तो मुझे "गणित" लाइब्रेरी की तरह, एकवचन-उद्देश्य पुस्तकालयों को व्यवस्थित करने के लिए और अधिक उपयोगी पाया गया है, एक "छवि" प्रसंस्करण लाइब्रेरी, इत्यादि - उन्हें "कोर" या "सामान्य" जैसी चीज़ों में एक साथ फ्यूज करने की कोशिश करने के बजाय। बाद के प्रकार डेवलपर्स को सभी प्रकार के पारिस्थितिकीय उपयोगिता कार्यों में फेंकने के लिए प्रेरित करते हैं जो टीम का उपयोग करके उन्हें मुश्किल से लाभ पहुंचाते हैं, और अधिकांशतः यह उन तरीकों से गन्दा हो जाता है जहां रुचि के कुछ भी ढूंढना मुश्किल हो जाता है।
रिफैक्टर सामग्री के लिए अच्छे नाम। यह कहां से आया था या यह क्या करने के लिए उपयोग किया जाता था, या वर्तमान में इसका उपयोग कहां किया जाता है, लेकिन वास्तव में यह क्या है। –