मैं केवल "बचाव" अपवादों के लिए नहीं, सब कुछ के लिए rescue
का उपयोग करता हूं। मेरा मतलब है, मैं बस जिस तरह से मुझे सत्यापन और डबल चेकिंग डेटा बचाता है उससे प्यार करता हूँ।क्या मैं शून्य जांच के लिए "बचाव" का दुरुपयोग कर रहा हूं?
उदाहरण के लिए, मान लें कि मेरे पास एक मॉडल Item
है जो User
हो सकता है या नहीं। तब, जब मैं आइटम के मालिक का नाम प्राप्त करना चाहते हैं मैं लिखने:
item.user.name rescue ""
बजाय
की तरह कुछ
item.user.nil? ? "" : item.user.name
यह वही थिंक बनाता है, क्योंकि nil.name
ट्रिगर एक अपवाद है कि मैं ""
साथ बचाव , लेकिन मुझे पूरा यकीन नहीं है कि यह अच्छा अभ्यास है। यह वही बनाता है जो मैं चाहता हूं, और यह कम कोड के साथ बनाता है, लेकिन ... मुझे नहीं पता, rescue
शब्द और यहां मुझे असुरक्षित महसूस होता है।
क्या यह एक बुरा अभ्यास है या क्या यह rescue
कीवर्ड का दुरुपयोग करने योग्य है?
Avdi Grimm का तर्क है कि 'try' एक कोड गंध है http://devblog.avdi.org/2011/06/28/do-or-do-not-there-is-no-try/ और http://devblog.avdi.org/2011/07/05/demeter-its-not-just-a-good-idea-its-the-law/, तो यह सिर्फ इतना नहीं है कि आप यह कैसे कर रहे हैं यह बुरा है, लेकिन वह आप जो करने की कोशिश कर रहे हैं वह खराब है। –
@AndrewGrimm कोई संबंध है? – ybakos
@ybakos मुझे नहीं पता, लेकिन हम [भाइयों] नहीं हैं (http://en.wikipedia.org/wiki/brothers_Grimm)। –