बुक वन: एक ओपन सोर्स प्रोजेक्ट बनाना
मैं लेख में वर्णित विषय को जारी रखूंगा "ओपन सोर्स सॉफ़्टवेयर में योगदान करने के 14 तरीके, एक शानदार प्रोग्रामर या रॉक स्टार नहीं"
habrahabr.ru/post/147220 , लेकिन थोड़ा अलग तरीके से!
मुझे लगता है कि कई नौसिखिए प्रोग्रामर किसी असामान्य और दिलचस्प परियोजना में निवेश करने में रुचि रखते हैं, अपने कौशल का परीक्षण करेंगे और अन्य डेवलपर्स के साथ एक टीम में काम करना सीखेंगे! इन उद्देश्यों के लिए, एक प्रकार का सैंडबॉक्स और हब पर लेखों के एक ब्लॉक को लॉन्च करने का निर्णय लिया गया था, विषयों में विभाजित किया गया है जो तकनीकी तकनीकों से टीमवर्क के मनोविज्ञान के लिए, ओपनशोर में प्रवेश के सभी चरणों का वर्णन करता है।
स्टेज एक: आइडिया
चूंकि हमारी परियोजना खुली है और लाभ प्राप्त करने के उद्देश्य से नहीं है, इसलिए हमें पहले यह सोचने की आवश्यकता है कि डेवलपर्स को अब क्या चाहिए। इस तथ्य के आधार पर कि मैं डेस्कटॉप () से अधिक एक वेब (डेवलपर) हूं, हम यहां से चुनेंगे।
उपस्थिति के लिए धन्यवाद और, अधिकांश भाग के लिए, सबसे लोकप्रिय ब्राउज़रों का कार्यान्वयन, CANVAS और WEBGL जैसी चीजें, रचनात्मकता के लिए एक बड़ा क्षेत्र दिखाई देता है।
चलो थोड़ा सपना! यह अच्छा होगा यदि ऐसा कोई एप्लिकेशन है जिसके लिए धन्यवाद एक ब्राउज़र में कार्यान्वयन के लिए वेक्टर एनिमेशन आसानी से बनाना संभव होगा। बेशक, यह फ्लैश के लिए एक पूर्ण प्रतिस्थापन नहीं है, लेकिन यह बैनर बनाने के लिए बहुत उपयोगी होगा, कुछ पेज विवरणों को एनिमेट करना, गेम बनाना, और जावास्क्रिप्ट के साथ नियंत्रित कई अन्य मल्टीमीडिया तत्व। यह अच्छा होगा यदि आप एक कंकाल संरचना के साथ एक चरित्र आकर्षित करते हैं, तो आप उसे कुछ मापदंडों को पारित कर सकते हैं और उपयोगकर्ता के पृष्ठ पर उसे और उसके व्यवहार को नियंत्रित कर सकते हैं। और यदि आप सभी को नोड.जेएस पर सर्वर के साथ जोड़ते हैं, तो बहु-खिलाड़ी गेम को व्यवस्थित करना और साइट प्रशासन और उसके ग्राहकों के बीच असामान्य संचार की व्यवस्था करना काफी संभव है! उदाहरण के लिए, एक सुंदर आदमी के माध्यम से। वैसे कैसे? प्रभावशाली? फिर हम दूसरे चरण में जाते हैं।
स्टेज टू: सिस्टम कंकाल
एक विचार है, अब यह तय करना आवश्यक है कि यह सब हमारे लिए कैसे काम करेगा! चूंकि इस चरण में एक विचार मंथन सत्र की आवश्यकता होती है, इसलिए आपकी टिप्पणियों से एक राय एकत्र करना एक बुनियादी विकास योजना तैयार करेगा, जिसका एक सामान्य विवरण अगले लेख में दिया जाएगा।
शुरू करने के लिए, मैं अपने संस्करण की पेशकश करूंगा! सिस्टम के लिए क्या जरूरी है ...
...
ब्लॉक और परतें।सभी तत्वों को ब्लॉकों और परतों में विभाजित किया जाना चाहिए। प्रत्येक ब्लॉक की परतों की अपनी सूची हो सकती है, और किसी भी परत में अपनी परतों के साथ एक ब्लॉक हो सकता है। परतों के ब्लॉक को स्थानांतरित करने के लिए सभी आंतरिक भागों को स्थानांतरित करना संभव होगा।
...
क्या मुझे jquery या किसी अन्य ढांचे का उपयोग करना चाहिए? (अनुवाद: एक ब्लॉक एक एकल ऑब्जेक्ट है जिसके भीतर एनीमेशन के साथ परतें हो सकती हैं। उदाहरण के लिए, हम एक ऐसी छवि बनाते हैं जिसमें बारिश होती है, हम एक ब्लॉक को उड़ान की बूंदों के साथ खींचते हैं और इसे कई बार अलग-अलग जगहों पर दोहराते हैं, वह है बारिश!), और परतें वे अफ्रीका की परतों में हैं!
...
हड्डियाँ।परतों और ब्लॉकों को हड्डियों से जोड़ा जाना चाहिए। एक स्क्रिप्ट के माध्यम से उन्हें प्रबंधित करने के लिए
...
मूल रूप से, सभी ऑब्जेक्ट वेक्टर हैं , लेकिन आप छवियों, ऑडियो और वीडियो को कनेक्ट कर सकते हैं, उदाहरण के लिए, ताकि आप किसी तरह का एनीमेशन बना सकें, मान लें कि कोई व्यक्ति चलाता है और दीवार पर एक सफेद धब्बा लगाता है, और पहले से ही इस धब्बा में वीडियो चलता है।
...
एप्लिकेशन लोड करते समय और निष्पादन के दौरान (अग्रिम में),
दोनों में डेटा लोड किया जाता है , ताकि समग्र दृश्य पूर्ण हो। उदाहरण के लिए, पहला आधार, यानी सिस्टम का मूल, एनीमेशन के पहले क्षणों के साथ लोड किया गया है, और फिर काम बढ़ने पर आवश्यक डेटा लोड किया गया है। और फिर अचानक छवियां खुद 200 मीटर हो जाएंगी, फिर कौन उनका इंतजार करेगा!? :(
...
डेटा संग्रहीत और स्थानांतरित करने का सबसे अच्छा तरीका क्या है? मुझे लगता है कि यह JSON डायरेक्ट डेटा स्ट्रीम के माध्यम से बेहतर है।
लेकिन मुझे नहीं पता कि 100 प्रतिशत पर क्या रोकना है, क्योंकि एनीमेशन प्रारूप के लिए डेटा किस प्रारूप में संग्रहीत किया जाएगा, क्योंकि दो कार्यक्रम होंगे, मैं अभी भी पूरी तरह से नहीं समझता हूं।
पहला कार्यक्रम एक संपादक है जिसके माध्यम से यह सब किया जाता है, दूसरा एक स्क्रिप्ट है जो संपादक में किए गए सभी चीजों को प्रदर्शित करता है, लेकिन इसके लिए आपको लिखने और पढ़ने के लिए एकल प्रारूप की आवश्यकता है! JSONa के अलावा, अभी तक कुछ भी दिमाग में नहीं आया है।
...
सर्वर के साथ काम करने की क्षमता बनाने के लिए आवश्यक है , दोनों स्वचालित मोड में (अर्थात, अनुरोध उत्तर है, जैसे ICQ), और प्रत्यक्ष में (अर्थात, सर्वर को अनुरोध सबमिट करके, हम ब्राउज़र में स्क्रिप्ट को नियंत्रित करते हैं, जैसे आगंतुक हमारे पास आया था, हम हम उसे देखते हैं, कि वह अब साइट पर है, और बनाया गया कार्यक्रम छोटे आदमी को एक आदेश देता है ताकि, उदाहरण के लिए, वह पृष्ठ के शीर्ष पर भाग जाए और उपयोगकर्ता को बधाई दे, या वह उपयोगकर्ता को कुछ प्रदान करे!
...
संपादक मुख्य भागों में से एक है जिसके साथ आप इस एप्लिकेशन में कुछ बना सकते हैं। संपादक में आप आकर्षित कर सकते हैं, कार्टून बना सकते हैं, स्क्रिप्ट लिख सकते हैं और इसी तरह।
...
मुख्य लक्ष्य:- स्क्रिप्ट के आवश्यक हिस्सों को आवश्यक रूप से लोड करने के साथ न्यूनतर कोड आकार ताकि कर्नेल का वजन अधिक न हो, क्योंकि सभी फ़ंक्शन का उपयोग नहीं किया जाएगा। यदि अतिरिक्त कार्यक्षमता की आवश्यकता है, तो इसे लोड किया जाता है, यदि अतिरिक्त। कार्यक्षमता की आवश्यकता नहीं है, फिर सब कुछ अपनी जगह पर रहता है।
- यदि संभव हो तो, एक स्क्रिप्ट लोड करना, मल्टीमीडिया डेटा के साथ एनीमेशन - एक फ़ाइल में! अर्थात्, व्यक्तिगत, सौ फ़ोटो और दो संगीत का एक गुच्छा नहीं, बल्कि एक फ़ाइल जिसमें यह सब स्थित है।
- प्रतिपादन के लिए, स्क्रिप्ट की क्षमताओं को बढ़ाने के लिए उपयोगकर्ता के वीडियो कार्ड का उपयोग करने के लायक है। ब्राउज़र को तनाव न देने और कार्ड के माध्यम से कुल जमा होने का कारण बनता है, प्लस, कार्ड के माध्यम से, क्योंकि वहां कई गुना अधिक शक्ति होती है, आप पूर्ण 3 डी गेम का निर्माण कर सकते हैं, क्योंकि इसके लिए पर्याप्त शक्ति है।
नतीजतन, आप एक संयुक्त कार्यक्रम वेब के लिए एक शक्तिशाली कार्यक्रम बना सकते हैं, जैसे कि वेब 4.0 :)))
लाइसेंस सबसे अधिक खुला होगा, अर्थात, आप इस तरह के कार्यक्रम के साथ कुछ भी और किसी को भी कर सकते हैं (जो भी यह सब फिट बैठता है, निकट भविष्य में चुना जाएगा)
स्टेज तीन: विकास
विकास के लिए, जीथब सबसे सुविधाजनक होगा। कार्यक्षमता के संदर्भ में, यह सबसे उपयुक्त है! शुरुआती लोगों के लिए, यह क्या है और यह कैसे काम करता है, इसका विवरण अगले लेख में होगा।
और अब पूरे उत्साह के लिए सवाल "मुझे इस एप्लिकेशन को क्या कहना चाहिए?"
सभी विकल्पों पर विचार किया जाएगा और सबसे लोकप्रिय चुना जाएगा! वर्तमान में यह परियोजना
github.com/xamelion/newproject पर स्थित है और पूरी तरह से खाली है!