2010-05-09 21 views
8

मुझे थोड़ी देर के लिए पुन: प्रयोज्य कोड स्निपेट की लाइब्रेरी शुरू करने का अर्थ रहा है और कभी भी इसके आसपास नहीं लग रहा है। फिलहाल मुझे कुछ क्षणिक कक्षाएं/फाइलें मिलती हैं जिन्हें मैं पुरानी परियोजनाओं से बाहर खींचता हूं।एक व्यक्तिगत पुन: प्रयोज्य कोड भंडार शुरू करना

मुझे लगता है कि मेरी मुख्य समस्याएं हैं:

  • कहाँ शुरू करने के लिए। मेरी संरचना को किस संरचना में लेना चाहिए? क्या यह संकलित लाइब्रेरी (जहां उचित हो) या केवल कक्षा/फाइलें किसी भी प्रोजेक्ट में छोड़ सकती हैं? या एक लाइब्रेरी प्रोजेक्ट जिसे शामिल किया जा सकता है? उस के लाइसेंसिंग प्रभाव क्या हैं?

  • मेरे अनुभव में, एक निर्मित/छोटा लाइब्रेरी जल्दी से दिनांक से बाहर हो जाएगी और स्रोत खो जाएगा। तो मैं स्रोत की ओर झुका रहा हूं कि मैं एसवीएन से निर्यात कर सकता हूं और प्रोजेक्ट में शामिल कर सकता हूं।

  • बौद्धिक संपदा। मैं नियोजित हूं, इसलिए बहुत सारे कोड I लिखना मेरा आईपी नहीं है। मैं कैसे सुनिश्चित कर सकता हूं कि मैं अपने स्वयं के आईपी को पर काम में परियोजनाओं और घर पर इसका उपयोग नहीं करता? मैं सोच रहा हूं कि सबसे अच्छा तरीका खुले स्रोत लाइसेंस के साथ मेरी लाइब्रेरी को लाइसेंस देना होगा और सुनिश्चित करें कि मैं केवल अपने स्वयं के उपकरण का उपयोग करके अपने समय में इसमें शामिल हूं और इसलिए सुनिश्चित कर रहा हूं कि यदि मैं इसे उपयोग करता हूं कार्य प्रोजेक्ट वही नियम लागू होते हैं जैसे कि मैं तृतीय पक्ष लाइब्रेरी का उपयोग कर था।

  • मैं कई अलग-अलग भाषाओं में लिखता हूं और अक्सर इस पुस्तकालय के दो या दो से अधिक भागों की आवश्यकता होगी।

  • मैं कुछ टेम्पलेट परियोजनाओं और मेरे चुने हुए पुन: प्रयोज्य घटकों और प्रत्येक भाषा के लिए एक कोर परियोजना को लागू करने पर ध्यान देना चाहिए?

क्या किसी और को इस तरह की लाइब्रेरी मिली है और आप इसे कैसे व्यवस्थित और अद्यतन करते हैं?

+0

यह भाषा अज्ञेयवादी नहीं है। आप पुस्तकालय कैसे डिजाइन और निर्माण करते हैं, इस पर निर्भर करता है कि आप किस भाषा का उपयोग कर रहे हैं। –

+1

यह भाषा अज्ञेयवादी है। मैं jquery या लुसीन में "पुस्तकालय" के बारे में बात नहीं कर रहा हूं, मैं कई अलग-अलग परिदृश्यों में कई भाषाओं के लिए कोड स्निपेट शामिल करने के लिए अपने स्वयं के एसवीएन भंडार को व्यवस्थित करने के बारे में बात कर रहा हूं। मैं एक डीएलएल नहीं चाहता हूं कि मैं सिर्फ परियोजनाओं में छोड़ दूं। क्षमा करें अगर यह स्पष्ट नहीं है। –

उत्तर

3

नियम संख्या एक। यदि आप इसे अपने लिए उपयोग करना चाहते हैं, तो इसे काम पर न करें और काम पर काम न करें। यहां तक ​​कि उन स्थितियों के तहत कुछ नियोक्ता सोचेंगे कि वे इसके स्वामित्व में हैं, भले ही आपने उस समय के दौरान काम किया (कैलेंडर समय) आपने उनके लिए काम किया था। कुछ इससे भी ज्यादा हास्यास्पद हो सकते हैं। तो यह भी उल्लेख न करें कि यह मौजूद है।

यह कहकर कि, इसे स्रोत फोर्ज पर बीएसडी लाइसेंस के तहत डालने से आप इसे अपने साथ नियोक्ता नियोक्ता के साथ उपयोग करने की अनुमति दे सकते हैं बशर्ते आप जमीन के नियमों को स्पष्ट रूप से स्पष्ट करें - उन्हें बताएं कि आप ऐसी लाइब्रेरी को पकड़ रहे हैं और संभवतः आपने इसे लिखा है।

IANAL - मैं वकील नहीं हूं। आप एक से परामर्श करना चाह सकते हैं।

मैं अपने समय और मेरी मशीनों पर अपनी सामग्री पर काम करना पसंद करता हूं और इसका कभी भी उल्लेख नहीं करता हूं। फिर जब कंपनियां मुझसे उन लोगों में से एक पर हस्ताक्षर करने के लिए कहती हैं, "हम आपकी सारी चीज़ें हैं" मैं सुनिश्चित करता हूं कि यह घर पर सामान पर लागू न हो - इसके लिए कुछ मामलों में इसे संशोधित करने की आवश्यकता है।यहां तक ​​कि उस मामले में, अगर मैं काम पर कोड का उपयोग करना चाहता था तो मुझे चिंता होगी कि मैं स्वामित्व खो सकता हूं क्योंकि उनमें से कुछ लाइनों को धुंधला कर दिया गया है।

पहिया को पुनर्निर्मित करने के बारे में चिंता न करें। वे आपको सॉफ्टवेयर लिखने के लिए भुगतान करते हैं। और जब जीवन वास्तव में लात मारता है आप शौक प्रोग्रामिंग वैसे भी ;-)

1

के रूप में नील ने कहा कि के लिए कम समय होगा, उत्तर का कार्यान्वयन विवरण का एक बहुत अपनी भाषा पर निर्भर हैं।

  • यह स्पष्ट कारणों

  • के लिए, यहां तक ​​कि संकलित भाषाओं के लिए स्रोत कोड के रूप में पुस्तकालय बेहतर है आप IP बनाये रखना चाहते हैं:

    हालांकि, अगर आप 2 बहुत वैध अंक बनाने और इसे काम के बाहर इस्तेमाल करें, फिर इसे 100% काम के बाहर करें, कुछ बहुत अनुमोदित लाइसेंस के साथ लाइसेंस। zlib license की तरह कुछ उचित हो सकता है।

एक और बिंदु यद्यपि - यदि आप सुनिश्चित करें कि आपके नियोक्ता है कि कोड का उपयोग कर कोई त्रुटि नहीं है बनाने के लिए आप से बेहतर कर रहे हैं !!!। यदि आप अनुमति प्राप्त करने के लिए मुश्किल/अक्षम हैं तो आप इसे छद्म नाम से छद्म नाम के तहत प्रकाशित कर सकते हैं।

2

मैं एक हल्के दृष्टिकोण के साथ जाना चाहते हैं:

  • उपयोग Git या मर्क्युरियल, ड्रॉपबॉक्स के साथ संभवतः यदि आप इसे की मेजबानी नहीं करना चाहते हैं: आप कोई फर्क नहीं पड़ता कि आप क्या कर रहे हैं संस्करण नियंत्रण चाहते हैं, और वितरित यदि आप साझा करने की योजना नहीं बनाते हैं तो संस्करण नियंत्रण विशेष रूप से सही है; कोई केंद्रीय भंडार की आवश्यकता नहीं
  • जो भी आप उपयोग करते हैं उसे सहेजें। कोड बनाने में समय व्यतीत न करें क्योंकि आपको लगता है कि आप इसे बाद में पुन: उपयोग करेंगे; जब तक आप कोई काम जोड़ने से पहले इसे दो बार लिखने वाले नहीं हैं तब तक प्रतीक्षा करें। फिर वहां डुप्लीकेट काम फेंक दें, और यदि आप तीसरे बार ऐसा करते हैं तो आप तैयार रहेंगे।
  • प्रति भाषा एक निर्देशिका बनाएं; आप अजगर में जावा का पुन: उपयोग नहीं कर सकते, के बाद सभी

यहाँ एक निर्देशिका संरचना आप की कोशिश कर सकते है:

+ src 
| + python 
| |  + emailing 
| |  | // the source goes in here 
| |  + quick-profiling 
| + java 
| + c++ 
+ notes 
    // This may not be your thing, but it's a convenient place for them 
1

अपने विचार के साथ समस्या यह है, और सामान्य रूप में कोड के टुकड़े की अवधारणा के साथ, वह यह है कि यदि आपके स्निपेट में एक बग है तो यह बुरी तरह गिर जाता है। स्निपेट दृष्टिकोण के लिए, आपको स्निपेट का उपयोग करने वाले सभी एप्लिकेशन के स्रोत कोड में बग को ठीक करना होगा। यदि दूसरी तरफ आप बाइनरी लाइब्रेरी बनाते हैं, तो आपको लाइब्रेरी कोड में एक बार बग को ठीक करने की ज़रूरत है, इसे वहां जांचें, रिलिकिंक करें, अपने ऐप के रिग्रेशन टेस्ट चलाएं, और आप कर चुके हैं। यही कारण है कि पेशेवर प्रोग्रामर कोड स्निपेट से घृणा करते हैं।

+0

बहुत उचित टिप्पणी, शायद मेरे सिर में पैटर्न बेहतर छोड़ दिया गया है। –

संबंधित मुद्दे