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

साइट पर संक्षिप्त टीके
- खेलों के लिए संशोधनों पर जानकारी (प्रशंसक पैच, बनावट सेट, स्रोत पोर्ट, आदि) वेबसाइट पर पोस्ट की जाएगी, ग्राफिक्स में सुधार, प्रबंधन के कुछ पहलुओं को सरल करना, और इसे दूसरे ऑपरेटिंग सिस्टम या प्लेटफ़ॉर्म पर स्थानांतरित करना भी होगा। इस तरह के मॉड का एक उदाहरण कयामत के लिए इकाइयों या उच्च-रिज़ॉल्यूशन बनावट का चयन करने के लिए Dune 2 में फ़्रेम जोड़ रहा है
- साइट में केवल जानकारी होगी, लेकिन संशोधनों और बंदरगाहों की फाइलें खुद नहीं। साइट के पुराने संस्करण पर, मैंने फाइलों की नई प्रतियां मुझे बनाए रखने और अपलोड करने की कोशिश की, और इसमें समय लगा
- साइट को डेस्कटॉप और टैबलेट या फोन दोनों से उपयोग करने के लिए सुविधाजनक होना चाहिए
- किसी भी उपयोगकर्ता को साइट पर एक गेम, संशोधन और इसी तरह जोड़ने में सक्षम होना चाहिए, साथ ही साइट पर पहले से जोड़ी गई किसी भी जानकारी को संपादित करना चाहिए।
- किसी भी उपयोगकर्ता को साइट के कोड और लेआउट को संपादित करने में सक्षम होना चाहिए
- साइट स्वामी को किसी भी परिवर्तन को पूर्व-मॉडरेट करने में सक्षम होना चाहिए
- अतिरिक्त मॉडरेटर्स को जोड़ना संभव होना चाहिए
- सोशल नेटवर्क पर साझा करने के लिए बटन होना चाहिए
निर्णय
और चलिए सारा डेटा गिथब पर रखते हैं, और क्या हम इस डेटा से एक स्थैतिक साइट उत्पन्न करेंगे? ठोस प्लसस!
- GitHub पहले से ही फाइलों को संशोधित करने या जोड़ने और पुल अनुरोध के रूप में परिवर्तन सबमिट करने के लिए एक वेब इंटरफ़ेस प्रदान करता है।
- पुल अनुरोध - परिवर्तनों को देखने और देखने में भिन्नता के लिए एक उत्कृष्ट प्रणाली है
- नए मध्यस्थों की आवश्यकता है? गितुब पर प्रोजेक्ट में उपयोगकर्ताओं को जोड़ें, अधिकार प्रणाली के बारे में सोचने की आवश्यकता नहीं है
- एक स्थैतिक साइट को किसी भी होस्टिंग पर होस्ट किया जा सकता है, जिसमें GitHub Pages शामिल हैं
- किसी भी गतिविधि जैसे टिप्पणी, साझा करना या ब्लॉक "यादृच्छिक संशोधन" को जेएस और डिसकस जैसे तैयार समाधानों का उपयोग करके ग्राहक पर लागू किया जा सकता है।
- सरलता और लेआउट की गति के लिए बूटस्ट्रैप का उपयोग करें
इसके अलावा, मैं लंबे समय से जावा में एक स्थिर साइट लिखने का अभ्यास करना चाहता था। हल! एक रिपॉजिटरी में हम डेटा स्टोर करते हैं , दूसरे में - एक स्थिर साइट जनरेटर । ट्रेन ... हालांकि नहीं, बंद करो, पहले आपको एक और निर्णय लेने की आवश्यकता है।
"JSON / XML / अपना स्वयं का संस्करण लिखें" फ़ाइलों में गेम या संशोधनों का विवरण संग्रहीत करना एक महान विचार प्रतीत होता है, लेकिन हमारी आवश्यकताएं "... कोई भी उपयोगकर्ता ..." और कुछ JSON आपको डरा सकती हैं। खैर, सवाल कचरा है - चलो पाठ या मार्कडाउन फ़ाइलों के एक बंडल में डेटा संग्रहीत करें। एक फ़ाइल - एक इकाई, जीथब पर एमडी फाइलों का पूर्वावलोकन है - लेपोटा! और स्थिति को सरल बनाने के लिए, हम प्रलेखन में विस्तार से लिखेंगे कि इसके लिए क्या जिम्मेदार है। इस जानकारी का हिस्सा:

और मैं यह कहना चाहता हूं कि इस मोड में मौजूदा जानकारी को संपादित करना वास्तव में काफी सुविधाजनक है। लेकिन वहाँ एक चेतावनी है ...
यह डेटा को संपादित करने के लिए सुविधाजनक निकला, लेकिन एक नया संशोधन शुरू करने के लिए बहुत नहीं था, क्योंकि एक समय में 4 से 14 फ़ाइलों को बनाना आवश्यक था। और ऐसा करने के लिए github इंटरफ़ेस का उपयोग करना बहुत ही असुविधाजनक है। पहला विचार यह था कि मल्टी-स्टेप निर्देश बनाने के लिए यह वर्णन किया जाए कि कैसे और से नई जानकारी जोड़ें।

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

इतना बढ़ गया?
सुविधाजनक रूपों को जोड़ने के बाद, प्रक्रिया शुरू हुई: मेरे वीडियो ब्लॉग में साइट के बारे में जानकारी पोस्ट करने के पहले हफ्ते और Old-Games.RU साइट पर, नए मोड और पोर्ट इतनी गति से जोड़े गए कि मेरे पास मॉडरेशन करने का समय नहीं था!

जानकारी जोड़ने के अलावा, मुझे इंटरफ़ेस और कार्यक्षमता पर कई टिप्पणियों और सुझावों को भी फेंक दिया गया था, जिनमें से कुछ मैंने पहले ही लागू कर दिए हैं, और कुछ अभी भी पंखों में इंतजार कर रहे हैं।
अक्सर होने वाली शिकायतों में से एक साइट की उपस्थिति थी - और यह समझ में आता है, क्योंकि मैंने डिफ़ॉल्ट बूटस्ट्रैप 4 थीम का उपयोग इस विचार के साथ किया था "यह अस्थायी है, फिर मैं एक सुंदर त्वचा पर रखूँगा"। "अस्थायी से अधिक स्थायी कुछ भी नहीं है" के बारे में मजाक भी पुन: पेश नहीं करना चाहता है।
फिर, ज़ाहिर है, गतिविधि में गिरावट शुरू हुई, लेकिन साइट पर अभी भी कुछ सक्रिय उपयोगकर्ता हैं और साइट जानकारी से भरना जारी रखती है। फरवरी के मध्य में लॉन्च के समय, साइट में 86 खेलों के लिए 227 मॉड थे, और इस प्रकाशन के समय - 130 गेम के लिए 323 मॉड ।
और आपने इसे यहाँ क्यों लिखा है?
सबसे पहले, स्पष्ट नैतिकता के साथ एक और कहानी बताने के लिए: "इंटरफ़ेस प्रोग्रामर के लिए सुविधाजनक और सुखद है, यह साइट के उपयोगकर्ता के लिए बिल्कुल भी सुविधाजनक नहीं होगा"। थीसिस की प्रतिबंध के बावजूद - इसे समय-समय पर याद दिलाना चाहिए।
और दूसरी बात - प्रशंसकों को कोड में खुदाई करने या इंटरफेस को आकर्षित करने और घुमाने के लिए आमंत्रित करना। हो सकता है कि साइट का विषय आपको रुचिकर लगे और आप इसके विकास में थोड़ी मदद करना चाहेंगे ;-)
यदि आप रुचि रखते हैं, तो साइट का पूरा स्रोत कोड एक जीथब पर रहता है ।
साइट का पुनश्च वीडियो दौरा