रेल्स समुदाय विरोधाभासी सलाह से भरा है। क्या आप Minitest या RSpec का उपयोग करते हैं? क्या आपके प्लेन रूबी ऑब्जेक्ट्स app/models, app/classes, या lib/ में जाते हैं?
यदि अधिक अनुभवी डेवलपर्स लगातार इन चीजों पर बहस करते हैं, तो आपके पास यह तय करने की क्या आशा है कि किस सलाह का पालन किया जाए?
रहस्य क्या है?
यहाँ रहस्य है: बस एक पक्ष चुनें, और उसका पालन करें।
यह एक बहाने जैसा लगता है। लेकिन ये दर्शन में छोटे अंतरों पर तर्क हैं। तर्क जितना मजबूत होगा, चुनाव वास्तव में उतना ही कम महत्वपूर्ण होगा। विशेष रूप से छोटे ऐप्स में, जैसे जिनसे आप शुरू करेंगे।
अनुभवी डेवलपर्स को वह अनुभव किसी तरह मिला। उन्होंने सीखा, उन्होंने कोड लिखा, उन्होंने ऐप्स शिप किए। उन्होंने जो भी विकल्प चुना, उसने उनकी प्रगति को बाधित नहीं किया। इसलिए उस विकल्प का पालन करना आपकी प्रगति को बाधित नहीं करेगा।
मैं Minitest का बहुत बड़ा प्रशंसक हूं, और जब मैं इससे बच सकता हूं तो RSpec का उपयोग नहीं करता। मैंने इस बारे में बहुत कुछ लिखा है कि मैं RSpec पर Minitest को क्यों पसंद करता हूं। लेकिन यदि आप तय करते हैं कि RSpec वह फ्रेमवर्क है जिसका आपको उपयोग करना चाहिए, तो आप एक अनुपयोगी ऐप के साथ समाप्त नहीं होंगे। यदि आप बाद में Minitest पर स्विच करते हैं, तो आप फिर से शुरू नहीं कर रहे होंगे। आपके द्वारा सीखे गए अधिकांश टेस्टिंग कौशल सीधे लागू होंगे। तो बस एक चुनें। अगर आपको करना पड़े तो सिक्का उछालें। क्योंकि कोई भी विकल्प किसी भी विकल्प से बेहतर है।
यह आपके विचार से बदलना आसान है
आपके लिए सही विकल्प आपके व्यक्तित्व, आपके एनवायरनमेंट, आपकी टीम, और आपके पिछले अनुभवों पर निर्भर करता है। ये चीजें आपके करियर के दौरान बदलेंगी। इसलिए यदि आपने सभी पृष्ठभूमि और प्रत्येक पक्ष की बारीकियों को सीखने में दिन बिताए और अंततः सही विकल्प बनाया, तो वह विकल्प अंततः बदल सकता है।
आप कुछ खराब विकल्प चुनेंगे। जिन सर्वश्रेष्ठ डेवलपर्स को मैं जानता हूं, उन्होंने उन दर्शनों के आधार पर पूरे जेम्स लिखे हैं जिनके खिलाफ वे अब बहस करते हैं। कोड में, कुछ राय हमेशा के लिए नहीं रहती।
तो रेल्स के उस तर्क में सही पक्ष चुनने पर पीड़ा न करें जिसे आप अभी तक पूरी तरह से नहीं समझते। अगर यह काम नहीं करता है, तो आप हमेशा अपना मन बदल सकते हैं।