यह अनुभव सीखने से है, सीखना जारी है, और रेल में अपेक्षाकृत सरल अनुप्रयोग लिखना है।
1) लर्निंग कर्व
रेल भ्रामक सरल है। ट्यूटोरियल, वीडियो और किताबें सभी प्रदर्शित करती हैं कि आप कितनी जल्दी काम कर सकते हैं (यदि बदसूरत) अनुप्रयोग, लेकिन ये वास्तव में सतह को खरोंचते हैं। वे कोड पीढ़ी और "मचान" पर बहुत अधिक भरोसा करते हैं जो सीखने के समय स्वीकार करते हैं कि यह एक अच्छा उपकरण है लेकिन जल्दी से इसकी उपयोगिता को रेखांकित करता है।
कोई गलती मत करो, रेल मास्टर के लिए कठिन है। एक बार जब आप बहुत मूल बातें पा लेते हैं (इस पर बाद में) तो आप एक दीवार में हेडलॉन्ग चलाएंगे यदि आपको अत्यंत सरल "डेमो ऐप" कार्यक्षमता से अधिक करने की आवश्यकता है जिसे आप टाउट देखते हैं। आप सीखते समय रूबी के एक बुनियादी ज्ञान के साथ प्राप्त कर सकते हैं, लेकिन आपको जल्दी से रूबी को लेने की आवश्यकता है या DRY
यदि आपको रेल अवरोधों के बाहर जाने की आवश्यकता है तो आपको उच्च और शुष्क (और अच्छी तरह से नहीं ) छोड़ दिया जाएगा ।
रेल है, जैसा कि मैं इसे प्यार से कॉल करना पसंद करता हूं, नंबर प्रोग्रामिंग द्वारा पेंट । यदि आप सम्मेलनों में 100% चिपके रहते हैं (अर्थात लाइनों के भीतर रहें और उन रंगों का उपयोग करें जिन्हें आप उपयोग करना चाहते हैं) तो आप जल्दी और आसानी से सभ्य अनुप्रयोग बना सकते हैं। यदि आपको कब और कैसे भटकना है, तो रेल आपके सबसे अच्छे दोस्त से लेकर आपके सबसे बड़े दुश्मन तक जा सकती है।
2) जब आप सभी एक हथौड़ा है ...
रेल सरलीकृत CRUD अनुप्रयोगों को बहुत अच्छी तरह से करता है। समस्या तब आती है जब आपके ऐप को डेटाबेस से सिर्फ पढ़ने / लिखने से अधिक करना पड़ता है। अब, मेरे द्वारा उपयोग किए गए अंतिम रेल संस्करण के रिकॉर्ड के लिए 2.3.4 था, तब से चीजें बदल सकती थीं, लेकिन मैं प्रमुख मुद्दों में भाग गया जब व्यावसायिक आवश्यकताएं बदल गईं, इसलिए एप्लिकेशन को इसमें एक छोटे वर्कफ़्लो सिस्टम का निर्माण करना पड़ा, और इसके साथ एकीकृत होना पड़ा। एक विरासत PHP आवेदन। "एक फ़ॉर्म, एक मॉडल" के रेल सम्मेलन तुच्छ एप्लिकेशन और डेटा प्रविष्टि अनुप्रयोगों के लिए ठीक काम करता है, लेकिन इतना नहीं जब आपको प्रसंस्करण तर्क करने की आवश्यकता होती है, या वर्कफ़्लो की आवश्यकता होती है, या ऐसा कुछ भी जो विशिष्ट नहीं है "उपयोगकर्ता डेटा में प्रवेश करता है कुछ पाठ फ़ील्ड, हिट "प्रकार की चीज़ सबमिट करें। यह किया जा सकता है, लेकिन यह "आसान" नहीं है, या इसके बजाय यह नहीं है
इसके अलावा, रेल अन्य अनुप्रयोगों के साथ अच्छी तरह से खेलना पसंद नहीं करता है जो डेटा उपयोग के पसंदीदा तरीकों का उपयोग नहीं कर रहे हैं; यदि आपको एक ऐसे एप्लिकेशन के साथ इंटरफेस करना है, जिसमें "वेब 2.0" स्टाइल एपीआई नहीं है, तो आपको इसके बजाय रेल के आसपास काम करना होगा; फिर से मैं यहाँ अनुभव से बोलता हूँ क्योंकि मेरे साथ यही हुआ है।
3) यह नया है
अंत में, कई क्षेत्रों में रेल अभी भी "ब्लॉक पर नया बच्चा" है। यह व्यक्तिगत उपयोग के लिए कोई फर्क नहीं पड़ता है या "मुझे लगता है कि यह अच्छा है और इसे सीखना चाहते हैं" प्रकार के परिदृश्य, लेकिन किसी ऐसे व्यक्ति के रूप में बोलना जो मेरे दिन की नौकरी पर रेल का उपयोग करना पसंद करेंगे, यदि आप उस स्थान पर नहीं हैं जहां रेल है व्यापक रूप से, रेल डेवलपर के रूप में पूर्णकालिक काम खोजना बहुत मुश्किल हो सकता है। यह अभी भी मोटे तौर पर "कूल्हे, नए स्टार्टअप" का डोमेन है और अधिकांश महानगरीय क्षेत्रों में प्रमुख खिलाड़ी नहीं है। इस संबंध में आपका माइलेज अलग-अलग हो सकता है, लेकिन मुझे पता है कि मेरा क्षेत्र (टैम्पा) रेल अनिवार्य रूप से कोई नहीं है।
4) आग और गति
रेल कभी बदलती है। यह एक अच्छी और बुरी दोनों चीज़ है; यह अच्छा है क्योंकि समुदाय नई अवधारणाओं को विकसित और गले लगाता है। यह बुरा है क्योंकि समुदाय विकसित और नई अवधारणाओं को गले लगाता है। यह रेल नौसिखिया के लिए बहुत भारी हो सकता है क्योंकि आम तौर पर जब आप किसी मुद्दे पर दौड़ते हैं, और चारों ओर देखते हैं, तो आप या तो ऐसे लोगों को इस तरह के रत्न की सिफारिश करते हुए देखेंगे, या यह कहेंगे कि रास्ता खराब है और आपको चाहिए ' टी इसका उपयोग करें, यहाँ एक बेहतर तरीका है ... और आप रेल के साथ सीखने के लिए रेल के साथ-साथ अतिरिक्त उपकरणों की एक कपड़े धोने की सूची को समाप्त करते हैं। चीजों की तरह Git
, BDD/RSpec
, Cucumber
,Haml/Sass
, और अन्य चीजों के लिए एक कॉर्नुकोपिया चारों ओर तैरता है और रेल-भूमि में "चीजों को करने के सही तरीके" के रूप में धकेल दिया जाता है, और अनुभव से बोलकर आप रैलियों के अलावा एक दर्जन या अधिक तकनीकों को सीखने की कोशिश में दलदल हो सकते हैं । क्योंकि मानक रेल टूलकिट का उपयोग करना "गलत" लगता है।
यह अब रेलगाड़ियों द्वारा 3.1 से अधिक जटिल हो गया है और सभी चीजों को डिफ़ॉल्ट रूप से सास और कॉफीस्क्रिप्ट बना रहा है, इसलिए कुल रेल नौसिखियों को न केवल रूबी और रेल सीखना है, बल्कि सैस (यकीनन सरल अगर आप सीएसएस को जानते हैं) और कॉफीस्क्रिप्ट (पागल नहीं, लेकिन निश्चित रूप से मुश्किल है) कच्चे जावास्क्रिप्ट से अलग) आरंभ करने के लिए एक न्यूनतम न्यूनतम पर, प्लस इसे गिट माना जा सकता है। यहां तक कि RSpec और दोस्तों में फैक्टरिंग के बिना, और दर्जनों या अधिक रत्नों के साथ जो आप आमतौर पर समाप्त करेंगे, यह 4 अलग-अलग चीजें हैं जिन्हें आपको सीखना होगा इससे पहले कि आप गंभीरता से रेल एप्लिकेशन लिखना शुरू कर सकें। इसकी तुलना C #, या Java, या यहां तक कि PHP जैसी भाषा से करें जहां आपका HTML / CSS / JavaScript / SQL ज्ञान नहीं बदलने जा रहा है और आपको बस भाषा और शायद फ्रेमवर्क की बारीकियों को सीखना होगा।