अपने दम पर विकसित करने के तरीके / उपकरण [बंद]


10

मान लीजिए कि आपको एक मध्यम + आकार का सॉफ्टवेयर विकसित करना है, पूरी तरह से अपने दम पर। जैसे अगर यह एक व्यक्तिगत परियोजना थी जिसे आप पूरा करना चाहते हैं।

आप क्या कार्यप्रणाली / उपकरण परिभाषित करने, सीखने, सीखने और सिस्टम के बारे में अपने विवरण में वैश्विक विचार रखने की जरूरत है?

मूल रूप से अपने आप को ट्रैक में रखने के लिए और रास्ते में खोना नहीं है।


3
पेंसिल, पेपर और मेरा दिमाग। व्हाइटबोर्ड होने से मदद मिलती है। सच में, मेरे डिजाइन काम का एक बड़ा सौदा सही IDE में होता है। क्या आपके पास एक विशिष्ट प्रश्न है, इस समस्या के आधार पर जो आप वर्तमान में सामना कर रहे हैं? यदि हम विशेष रूप से जानते हैं कि आप किस समस्या को हल करने की कोशिश कर रहे हैं, तो यह सवाल का जवाब देने में हमारी मदद करेगा।
रॉबर्ट हार्वे

@ रोबर्टहवे हाय यह बहुत सच है। अच्छी तरह की। मैं एक विचार विकसित कर रहा हूं जो मेरे पास था, व्यक्तिगत परियोजना। यह सिर्फ सॉफ्टवेयर बड़ा होने के लिए होता है तब मैंने कल्पना की थी और ऐसी चीजें हैं जो मुझे अभी भी सीखनी होंगी कि यह कैसे काम करता है और बस फिर यह समझें कि इसे कैसे विकसित किया जाए।
कैसियो सिप

1
@RobertHarvey मुख्य समस्याएं संभवतः विवरणों पर विचार-मंथन का अभाव है, इस पर नज़र रखने की कि क्या किया जाना चाहिए और समग्र रूप से प्रणाली पर एक दृष्टिकोण।
कैसियो सिप

2
मैं 99.9% निश्चित हूं कि हमारे पास यह एक और प्रश्न या दो में शामिल है, लेकिन मैं उन्हें फिलहाल नहीं ढूंढ सकता।
एडम लेअर

4
मैं हमेशा रास्ते में खो जाने की कोशिश करता हूं। यह सीखने का एक तेज़ मार्ग है।
जोएल एथरटन

जवाबों:


5

आमतौर पर मैं सिर्फ मर्क्यूरियल का उपयोग करता हूं, अगर मुझे एक सुविधा चाहिए जो मैं सिर्फ इसे जोड़ता हूं और अगर मुझे यह नहीं चाहिए तो मैं इसे हटा देता हूं। इसके अलावा, मैं अपनी प्रतिबद्ध टिप्पणियों को अच्छी तरह से लिखने की कोशिश करता हूं ताकि मैं खो न जाऊं।


युप - मर्क्यूरियल उन उपकरणों में से एक है जो महसूस करते हैं कि वे Apple द्वारा बनाए गए थे :) सरल अभी तक शक्तिशाली, सुंदर अभी तक उपयोगी ...
Rook

4

यह आसानी से आपके ध्यान की पहुंच से बाहर हो सकता हैकाल नहीं , चौड़ाई

एक बार में कई तत्वों पर विचार करना कठिन है ।

और फिर ... यह एक प्रतिगमन रोलरकोस्टर बन जाता है ।
आप जो कुछ भी करते हैं वह पिछली चीजों को तोड़ता है, और वापस रोल करना मदद नहीं करता है।

इससे बचने के लिए आपको प्रतिगमन के लिए आक्रामक रूप से परीक्षण करना चाहिए ।
खुद ब खुद। (आप ऐसा नहीं कर सकते और अन्यथा ठहरें)

परीक्षण आपकी ऊर्जा में एक कठिन तनाव जोड़ देगा।

यदि परियोजना UI के बारे में है ... तो आप शायद टोस्ट हैं:

  • UI परीक्षण कठिन है
  • स्वचालित UI परीक्षण ... अभी भी कठिन है

यूआई केंद्रित परियोजनाओं के लिए अंतिम समय पर विचार न करना खाली समय के साथ
एक रिश्तेदार को भर्ती करना और यूआई परीक्षक के रूप में अपने माउस को क्लिक करने का शौक । मैं यहाँ "किशोरी" सोच रहा हूँ ।

अन्य मामले:

  • यह हमेशा के लिए ले जाएगा
  • आप लेखक के ब्लॉक का सामना करेंगे ।
    (यह वास्तव में एक शर्त के रूप में मौजूद नहीं है, यह एक लोकप्रिय मिसबेल है जो लोग अनुशासन की कमी से जुड़ते हैं )

यदि आप किसी प्रकार के संस्करण नियंत्रण से प्यार करते हैं, तो इसका उपयोग करें। अब एक सीखना शुरू करना आपको विचलित कर देगा

जैसा कि पहले ही बताया गया है, आपको विचारों को रेखांकन करने से मदद मिल सकती है।

मैं का उपयोग किया है Freemind , CMaps , XMind , YED , Graphviz , और ... कुछ और।

XMind कम व्यर्थ है:

  • बहुत तेजी से में डेटा डालने के लिए
  • स्वचालित लेआउट
  • सख्ती से आप विषय पर बने रहने की कोशिश कर रहे हैं
  • लेने के लिए बहुत अच्छा सबक के दौरान नोट्स (मैं तो काश मैं यह था कॉलेज में )
  • अभी भी उपयोग करने के लिए अपने दिमाग को बनाने के लिए कड़ी मेहनत के बारे में कुछ तुम वहाँ स्पष्ट नहीं किया है।

एक पेंसिल और एक नोटबुक अभी भी मेरे शीर्ष दस पर बहुत अच्छा स्कोर करते हैं:

  • मैं अपने कई नोट्स स्कैन करता हूं
  • मैं बहुत कम खोजपूर्ण चित्र बनाता हूं ।

    • (यदि आपको लगता है कि छवियों के साथ आपको एक मंथन करने वाला उपकरण कभी नहीं मिल सकता है)

अंतिम उपाय के रूप में, आप हमेशा अपने स्वयं के उपभोग के लिए पावरपॉइंट तैयार कर सकते हैं :)


+1। हालाँकि, क्या आपके पास "अपना दिमाग बनाने के बारे में कोई सुझाव है जो आपने वहां स्पष्ट नहीं किया है" बात?
कैसियो

@ कैसियो मैं xmind और पेंसिल + स्केचबुक के बीच आगे और पीछे स्विच करता हूं, libreoffice में नुकीली सूची बनाता हूं, उदाहरण लिखता हूं और कुछ अनुमानित कार्यान्वयन का परीक्षण करता हूं। यह एक सुंदर समय लेने वाली प्रक्रिया है, लेकिन आप सोचा था की कुछ improductive लाइन दूर स्क्रैप करने के लिए कुछ है कि करने के लिए प्राप्त करने के लिए लगता है सही। (पुनश्च: क्रॉम्प्लिंग पेपर टॉस करने से पहले यह कैथेरिक है)
ZJR

1
@ZJR वास्तव में। कभी-कभी मुझे केवल सामान लिखने से डर लगता था जिसकी मुझे जरूरत नहीं थी और उस पर समय बर्बाद कर रहा था, लेकिन अब मैं देखता हूं कि यह कैसे काम करता है। शुरू में हम कुछ बेकार सामान लिखते हैं लेकिन हम समय के साथ बेहतर होते जाते हैं। :) धन्यवाद!
कैसियो

3

लिटरेट प्रोग्रामिंग।

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

यदि आप अपनी परियोजना के बारे में एक कागज (या पुस्तक या रिपोर्ट या दस्तावेज़) लिख रहे हैं, तो आप कार्य पर बने रहेंगे।

आप जो कर रहे हैं उसकी रूपरेखा के साथ शुरू करें: केस ओवरव्यू, रिलीज़ 1, रिलीज़ 2, रिलीज़ एन का उपयोग करें। उपयोग के मामलों का सारांश लिखिए। उन्हें प्राथमिकता दें। उन्हें स्प्रिंट और रिलीज में शामिल करें।

प्रत्येक रिलीज़ में उपयोग का दृश्य, तार्किक दृश्य, प्रसंस्करण दृश्य, घटक दृश्य, परिनियोजन दृश्य होता है। स्प्रिंट के लिए, उपयोग के मामलों को विस्तृत करें। आप क्या करने जा रहे हैं, यह दिखाने के लिए HTML दस्तावेज़ प्रकाशित करें। स्प्रिंट के लिए उपयोग के मामलों का विवरण देने के बाद, तार्किक मॉडल लिखें। इसे सपोर्ट करने के लिए कोड लिखें। प्रसंस्करण दस्तावेज लिखें। समर्थन करने के लिए कोड लिखें। मॉड्यूल बनाएं। घटक दृश्य प्रलेखन लिखें। परीक्षण और सहायक दस्तावेज लिखें। एक HTML दस्तावेज़ के रूप में स्प्रिंट परिणाम प्रकाशित करें।

प्रत्येक स्प्रिंट के लिए दोहराएं। अपने दस्तावेज़ की समय-समय पर समीक्षा और संपादन करें।

बहुत सारे और बहुत सारे साक्षर प्रोग्रामिंग उपकरण हैं। वे एक स्रोत का निर्माण करने में आपकी मदद कर सकते हैं जो एक ही पाठ से प्रलेखन और कोड दोनों बनाता है ।

मैं स्फिंक्स और पायलेट का उपयोग करता हूं, लेकिन ऐसा इसलिए है क्योंकि मैं एक पायथन प्रोग्रामर हूं।


एक विश्वविद्यालय के पेपर को बाहर निकालने के लिए अच्छा है और फिर इसके बारे में भूल जाओ, बुरा अगर उत्पाद को जारी करने या उसके बाद में बदलने की योजना है । हर कोई हर किसी को वैसे भी अजगर पर, यहां तक ​​कि doxygen का उपयोग करना चाहिए । लेकिन ऐसा सिर्फ इसलिए क्योंकि मैं एक प्रशंसक हूं :)
ZJR

2

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

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

अपने पहले कोड कमिट पर मैंने सोर्स कोड रिपॉजिटरी (मैंने बिटबकेट का इस्तेमाल किया ) में विचार मंथन फाइल को सेव किया और इसे अपने नवीनतम विचारों के साथ अप-टू-डेट रखा।


बहुत अच्छा। मैं पहले से ही इन सभी का परीक्षण कर रहा हूं। धन्यवाद!
कैसियो सेप

2

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

मैं एक निजी परियोजना पर काम कर रहा हूं जैसे आपने वर्णित किया है। मैं उन सभी श्रेणियों को संतुष्ट करने के लिए Git, Redmine, JUnit और Jenkins का उपयोग कर रहा हूं। मेरा काम प्रवाह है:

  • काम करने के लिए एक टिकट चुनें
  • कोड आधार शाखा
  • कार्य के लिए कोड और परीक्षण विकसित करें (अच्छे बचत बिंदु पर शाखा में परिवर्तन करें)
  • ट्रंक में वापस शाखा मिलाएं
  • सत्यापित करें कि बिल्ड सफल था, परीक्षण पास हुए और कोई अन्य समस्या नहीं थी
  • दोहराना

सब कुछ प्रबंधित और व्यवस्थित रखना बहुत महत्वपूर्ण है जब कई डेवलपर्स हैं। कई डेवलपर्स के साथ, आपको संगठन की आवश्यकता होती है इसलिए सभी के लिए जानकारी फैली हुई है। जब यह सिर्फ आप होते हैं, तो आपके पास पहले से ही सारी जानकारी होती है, लेकिन सिस्टम के हर हिस्से को याद रखना कठिन होता है। एक प्रबंधित प्रणाली आपके लिए इसे आसान बनाती है और आप हाथ में काम पर ध्यान केंद्रित कर सकते हैं।


2

उपकरण:

  • नियंत्रण संस्करण प्रणाली (भले ही आप अपने गैरेज या घर के व्यक्तिगत पीसी में एकमात्र डेवलपर हों): जीआईटी, मर्क्यूरियल, टूरोइस

  • सोर्स कोड हाइलाइट वाला संपादक, भले ही आपके पास एक आईडीई (सिंटिला, विम, नोटपैड) हो

  • असली दुनिया ब्लैकबोर्ड, व्हाइटबोर्ड, कुछ सामान सिर्फ आपके डिजाइनर टूल्स एप्लीकेशन में फिट नहीं होते हैं।

  • डिज़ाइन टूल: पावर प्वाइंट, कोरल ड्रॉ, ओपन ऑफ़िस ड्रा जैसे रैशनल रोज़, अम्ब्रेला, (UML, ER), विज़ियो, या "पुअर डेवलपर के डिज़ाइनर टूल्स"

  • पाठ / स्रोत कोड पाठ तुलना उपकरण, जैसे WinMerge


बहुत मददगार! मैं इन सभी को अभ्यास में लगा रहा हूं। धन्यवाद।
कैसियो

1

यह इस बात पर निर्भर करता है कि आप अलग-अलग कार्यों को कैसे भेद और संभाल सकते हैं, क्योंकि आपको विकास प्रक्रिया के हर एक कदम पर एक नज़र डालनी होगी।

मुझे लगता है कि उपकरण केवल उपयोगी होते हैं यदि आप पहले से ही जानते हैं कि उनका उपयोग कैसे करना है और सबसे बुरी गलतियों में से एक यह सीख रहा है कि एक उपकरण यह सीखने के बजाय कि इसके साथ क्या करना है।

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

खैर, शुरुआत इतनी आकर्षक नहीं लगती, लेकिन समय के साथ यह प्रक्रिया मज़ेदार हो जाएगी।


हाँ! याद रखें कि कोड है -if परियोजना अच्छी तरह से डिज़ाइन की गई है- पूरे का एक छोटा हिस्सा।
लुकास मौस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.