हाल ही में एक ग्राहक ने मुझसे उनकी वर्डप्रेस साइट पर एक "वित्तीय मूल्यांकन" जावास्क्रिप्ट ऐप के बारे में संपर्क किया था जो अब काम नहीं करता है। इसमें कई समस्याएं थीं, और अंत में, इसका पुनर्निर्माण करना सबसे आसान रास्ता था।
इस ऐप में, उपयोगकर्ता बुनियादी वित्तीय और व्यक्तिगत जानकारी दर्ज कर सकते हैं, और ऐप उन्हें बताता है कि क्या वे वित्तीय योजना के मामले में सही रास्ते पर हैं। यह बहुत जटिल तर्क नहीं है, लेकिन इसमें काफी कुछ है।
मैं, मुख्य रूप से, एक फ्रंटएंड डेवलपर नहीं हूं। मैं बैकएंड पर सबसे अधिक सहज हूं। लेकिन मैंने Vue, Angular, React में प्रोजेक्ट लागू किए हैं... वे काम करते हैं, लेकिन मुझे उन पर पूरा भरोसा नहीं है। और जैसे-जैसे महीने और साल बीतते हैं, मुझे हमेशा यह चिंता सताने लगती है कि निर्भरताएँ कितनी पुरानी हो गई होंगी, जिसमें देव टूलचेन भी शामिल है।
ग्लेम बड़े पैमाने पर टाइप-सुरक्षित सिस्टम बनाने के लिए एक अनुकूल भाषा है!
~ ग्लेम की वेबसाइट
मैं ग्लेम के बारे में तब से उत्साहित हूं जब से उन्होंने पहली बार घोषणा की कि वी1 उत्पादन के लिए तैयार है। इसकी कार्यात्मक शैली, अपरिवर्तनीयता, संपूर्ण पैटर्न मिलान, प्रकार का अनुमान, और गो की सादगी स्थिरता का मतलब है कि ग्लीम ने मेरी सभी पसंदीदा जगहों को प्रभावित किया है।
टाइप सिस्टम काफी हद तक गारंटी देता है कि यदि आपका कोड संकलित होता है, तो यह काम करता है। मुझे अभी तक अपने ग्लीम कोड में एक बग का सामना नहीं करना पड़ा है जो कि "मेरे बुरे, मैं इसे लागू करना समाप्त करना भूल गया" का कुछ संस्करण नहीं था।
ग्लेम को BEAM (एरलैंग के प्रसिद्ध युद्ध-परीक्षणित वीएम) पर चलाने के लिए बनाया गया था, लेकिन इसमें एक जावास्क्रिप्ट संकलन लक्ष्य भी है। इसका मतलब है कि यह आसानी से नोड और ब्राउज़र पर भेजा जा सकता है।
लस्टर ग्लेम का प्रमुख फ्रंटएंड फ्रेमवर्क है। यह ग्लेम पारिस्थितिकी तंत्र के लिए एल्म का एक वफादार बंदरगाह है, और इसमें एल्म के "मॉडल -> व्यू -> अपडेट" राज्य प्रबंधन वास्तुकला की सुविधा है।
यह अन्य फ्रंटएंड फ्रेमवर्क की तुलना में एक काफी सरल वैचारिक मॉडल है। राज्य प्रबंधन को एक ऑप्ट-इन लाइब्रेरी के रूप में पेश करने के बजाय (मैं आपको रिडक्स देख रहा हूं), लस्ट्रे का राज्य प्रबंधन मॉडल इसका धड़कता हुआ दिल है।
आप बस प्रत्येक क्रिया का वर्णन करते हैं जो आपके ऐप के भीतर स्थिति को संशोधित करने के लिए हो सकता है, और उस क्रिया को एक प्रकार-सुरक्षित शुद्ध ऑपरेशन में मैप करें जो मॉडल का एक अद्यतन संस्करण लौटाता है। दृश्य कार्य (शुद्ध भी) उस एकात्मक मॉडल की स्थिति से सीधे प्रवाहित होते हैं।
लस्टर एक प्रबंधित प्रभाव प्रणाली भी प्रदान करता है ताकि विभिन्न I/O संचालन विफल होने पर भी, आपका ऐप कोड पूरी तरह से शुद्ध कार्यों का उपयोग करके कार्यान्वित किया जा सके।
शुद्ध कार्यों के बारे में अच्छी बात? उन्हें समान इनपुट पर हमेशा समान आउटपुट प्रदान करने की गारंटी दी जाती है। यह उन्हें पूर्वानुमानित, परीक्षण करने में आसान और बेहद स्थिर बनाता है। शुद्ध कार्य नहीं टूटते। वे गणितीय रूप से नहीं कर सकते।
Lustre ऐप्स में बिट अधिक बॉयलरप्लेट शामिल हो सकता है, ऐप को सेट करना और सभी प्रकार और इस तरह का निर्माण करना। लेकिन ...
इससे अधिक उपयुक्त रूपरेखा कभी नहीं रही जिसमें "बॉयलरप्लेट" शब्द को लागू किया गया हो। यह मुझे उसी आत्मविश्वास की अनुभूति देता है जो मुझे स्टील की शीट में कीलक चलाकर मिलता है। एक बार अपनी जगह स्थापित करने के बाद, वह चीज़ कहीं भी नहीं जाती।
मुझे यह व्यक्त करने में कठिनाई हो रही है कि जावास्क्रिप्ट के साथ मेरे पिछले अनुभवों की तुलना में यह कितना अलग लगता है। अगर मैंने इसे किसी अन्य ढांचे में किया होता तो मेरा ऐप कम एलओसी होता। लेकिन क्या मैं इस पर भरोसा करूंगा कि यह टूटेगा नहीं? क्या इसे समझना इतना आसान होगा?
मैंने अपना ऐप समय पर और बजट के तहत भेज दिया। ग्राहक वास्तव में इससे खुश है। और मैं यह जानकर चैन की नींद सो रहा हूं कि यह प्रोजेक्ट सही मायने में पूरा हो गया है।
सिर्फ इतना ही नहीं, बल्कि यह सभी जगहों के वर्डप्रेस में आराम से रहता है। मैंने संकलित परिसंपत्तियों को लोड करने के लिए एक शोर्टकोड बनाया, इसे पृष्ठ पर पॉप किया, और बस इतना ही।
जेएस बंडल 18.1 केबी, छोटा और जीजिप्ड है। यह लगभग htmx जितना छोटा है। जोर से रोने के लिए!
मुझे अभी भी अपेक्षाकृत अस्पष्ट भाषा और ढांचे का उपयोग करके किसी प्रोजेक्ट की शिपिंग के बारे में कुछ आपत्तियां हैं। लेकिन उन शंकाओं को यह जानकर शांत किया गया है कि ऐप खराब नहीं होगा, और ग्लीम को एक दोपहर में ही सीखा जा सकता है।
सबसे महत्वपूर्ण - मैं ईमानदारी से नहीं सोचता कि मैं अंतिम उत्पाद, टूलचेन की स्थिरता, या भविष्य में इसे अपग्रेड करने की अपनी क्षमता में उतना आश्वस्त होता, अगर मैंने इसे किसी और चीज़ का उपयोग करके बनाया होता .
अब मैं इस पोस्ट को लिखने के लिए अपनी पूरी प्रेरणा पर आ रहा हूं: उत्पादन में एक लस्टर ऐप होने की भावना
इस ऐप को शिप किए हुए कुछ सप्ताह हो गए हैं, और मैं अब भी समय-समय पर इसे दोबारा देखना पसंद करता हूं। इसलिए नहीं कि क्लाइंट ने बदलाव के लिए कहा है. बस कोड को देखने के लिए।
मुझे यह कहते हुए लगभग शर्मिंदगी महसूस हो रही है, लेकिन मेरे अधिकांश अन्य कोड कुछ स्तर पर एक दायित्व की तरह महसूस होते हैं। विशेष रूप से जावास्क्रिप्ट। भले ही यह टाइपस्क्रिप्ट हो, भले ही इसमें परीक्षण हों। यह मुझे चिंतित महसूस कराता है, जैसे यह छिपी हुई बारूदी सुरंगों और मूर्ख जालों से भरा हुआ हो।
शायद यह एक कौशल मुद्दा है। शायद मैं कई बार जल चुका हूँ।
मेरे ग्लेम/लस्टर कोड को देखने से मुझे शांत महसूस होता है।
इतना ही। यही ट्वीट है.
अंत में, मेरी हार्दिक इच्छा है कि अन्य डेवलपर्स ग्लेम और लस्टर को आज़माएं, ताकि वे भी अपने फ्रंटएंड कोड पर विचार करते समय ज़ेन जैसे आनंद का आनंद उठा सकें।
पढ़ने के लिए आपका शुक्रिया।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3