मैं इस समय अपने दूसरे लिफ्ट ऐप पर काम कर रहा हूं - यह लिफ्ट के मीठे स्थान पर बहुत दृढ़ता से है - बहुत वास्तविक समय, समेकन।
पहली बार हम डीबी परत के साथ कुश्ती के कुछ दिनों के बाद बाहर निकल गए (यह अब बेहतर है, मुझे विश्वास है), और इसके बजाय Play/Scala पर चला गया। इसने हमारी टीम के मौजूदा ज्ञान को अधिकतम किया और समय सीमा तय करना संभव बना दिया। लेकिन हमारे प्रोजेक्ट को मामूली रूप से बड़ा होने के बाद हॉट कोड रीलोडिंग बहुत अधिक हो गई (पर्मजेन से बाहर चल रही है - यह स्कैला संकलन के साथ कहीं भी चल रही समस्या है), और विभिन्न स्थानों पर विधि कॉल पैरामीटर और स्थान सुरक्षा जैसी चीजों की मैन्युअल जॉगलिंग वेबसाइट में काफी बोझिल हो गया। जब हम इसे पूरा करते थे तो हम खुश थे - उसी तरह जैसे मैंने रेल 1 खोजने के लिए प्रयास किया था, इसलिए परियोजना का आकार बढ़ने के साथ ही गति बढ़ जाती है, और अंत में यह एक वेग/त्रुटि में काम करने के रूप में कठिन और त्रुटि-प्रवण था। वसंत/एक्सएमएल ++ जो भी हो)।
इस बार हम यह काम करने के लिए प्रतिबद्ध हैं कि लिफ्ट क्या करता है, और चीजों को करने के सही तरीके। इसका मतलब मेलिंग सूची के माध्यम से बहुत सारी अनौपचारिक ब्राउज़िंग है (चर्चाएं जो कि कई संस्करण पुराने हैं, अक्सर प्रासंगिक हैं), और सबसे महत्वपूर्ण बात यह है कि टीम के लिए एक नया आचार। बहुत दृढ़ता से आदर्श वाक्य को आंतरिक बनाना आवश्यक है:
"यह कठिन और दोहराव महसूस कर रहा है। मुझे लगता है कि उन्होंने ऐसा करने का एक आसान तरीका बनाया है।"
अब तक लिफ्ट ने हमें कभी निराश नहीं किया है। मैं साइटमैप और सूची कॉन्सटेनेशन सिंटैक्स जैसी चीजों के बारे में बात नहीं कर रहा हूं - आपके पास कार्यात्मक स्कैला पर एक बहुत अच्छा संभाल होना चाहिए, या आप स्रोत कोड को पढ़ने या यहां तक कि अपने ऐप को कॉन्फ़िगर करने में सक्षम नहीं होंगे।
ने कहा कि यह पागल आईओ monads या कुछ भी नहीं है, बस कुछ सामान्य मुहावरे जो आप स्कैला के कुछ हफ्तों में उठाएंगे।
हमारे लिए सबसे बड़ी समस्या धीमी संकलन चक्र रही है। जेटी में लगभग 20 सेकंड लगते हैं: हमारी परियोजना चलाएं, जो खेलने के लिए एक अलग भावना है (जब यह काम कर रही है) गर्म आपकी सारी सामग्री को संकलित करता है। दूसरी तरफ, हम वास्तव में उस दिन का समय लगाते थे जब दूसरे देवताओं ने इसके बारे में शिकायत की थी, और यह काम करता था कि हालांकि तकनीकी रूप से इसे गर्म संकलित करें, पृष्ठ को अभी भी देव मोड में लोड होने में 12 सेकंड लग गए हैं। इसलिए कोई बड़ी हानि नहीं है, यह कमांड लाइन पर आने के लिए थोड़ा धीमा लगता है।
लिफ्ट आपको एक बड़ा सौदा करने देता है, और हमारे ऐप में कई जगहें हैं (क्योंकि यह उपलब्ध है), हमने कहा है "हाँ, हम वास्तव में उस पृष्ठ के सभी दर्शकों को तुरंत अपडेट करना पसंद करेंगे , उनके बजाय बाद में खोज कर रहे हैं कि वे पुराने हैं (उसी समय के बारे में सोचें कि आपने एसओ पर किसी के साथ एक ही उत्तर के साथ पोस्ट किया है)। कॉमेट हर जगह है, यह पता चला है - यह एक विशेषज्ञ उपयोग केस नहीं है, इस तरह चीजें काम करना चाहिए। और लिफ्ट इसे वास्तव में आसान बनाता है।
हम मजबूत, प्रोग्रामेटिक रूप से कॉन्फ़िगर करने योग्य, सुरक्षा मॉडल से भी प्यार करते हैं - एक बार जब हमने अपने दिमाग को स्विच किया "हमें हर स्थान को श्वेतसूची में रखना है, और आवश्यक प्रवेश शर्तों को निर्दिष्ट करना है ", हमने कभी एक और सत्र की समस्या नहीं देखी - आप जानते हैं, वे लोग जहां आप हैं समझाया गया कि उपयोगकर्ता एक निश्चित पथ को पार कर गया होगा, और इस प्रकार पैरामीटर का पूरा समूह पता होगा? जैसे, एक वैध उपयोगकर्ता नाम, और ब्याज का क्षेत्र या जो भी हो? (मैं जानबूझकर अस्पष्ट हूँ)। यह एक राज्यव्यापी ढांचे के बारे में अजीब बातों में से एक हो सकता है, कि जब उपयोगकर्ता एक पृष्ठ पर हिट करता है, तो उदाहरण के लिए (उदाहरण के लिए) सिर्फ यह मांग करनी होगी कि सभी राज्य प्रत्येक अनुरोध पर साथ ही साथ जाएं।
मेरे लिफ्ट में इस नए सिरे से शॉट से टेकअवे:
यह इसके लायक है। न केवल उस ऐप को बनाने के लिए जिसे आप बनाने की कोशिश कर रहे हैं, लेकिन उस ऐप को बनाने के लिए जिसे आप नहीं जानते थे, आपको इसकी आवश्यकता थी।
बहुत सारे सिर खरोंच हैं, लेकिन बहुत सारे कोड नहीं हैं। और जब यह काम करता है यह वास्तव में काम करता है। यह तेज़ और साफ है, और ब्राउज़र और सर्वर के बीच काम कर रहे सभी चमत्कारों के लिए, मैंने कभी इसे भ्रमित नहीं किया है।
दिलचस्प सवाल। व्यक्तिगत रूप से मैं उन डेवलपर्स से सुनना चाहता हूं जिन्होंने अतीत में रेल/डीजेगो के साथ काम किया है और अब लिफ्ट के साथ काम कर रहे हैं। (मेरा मतलब है, जो लोग वास्तव में तुलना करने के लिए योग्य हैं) – jvdneste
@jvdneste: लिफ्ट खुद के लेखक डेविड पोलाक एक रेल डेवलपर थे और विशेष रूप से रेल के प्रति प्रतिक्रिया के रूप में लिफ्ट बनाया। –