"यदि आवश्यक हो तो X करें" विधि का नामकरण


23

एक विधि को नाम देने का एक अच्छा तरीका क्या है जो यह जांचता है कि क्या एक्स की जरूरत है, और क्या एक्स आवश्यक हो तो?

उदाहरण के लिए, किसी उपयोगकर्ता सूची को अद्यतन करने वाली विधि का नाम कैसे दिया जाए यदि नए उपयोगकर्ता ने लॉग इन किया है? UpdateListIfNeededबहुत लंबा लगता है, जबकि सरल का UpdateListतात्पर्य है कि हर बार एक महंगा और अनावश्यक ऑपरेशन किया जाता है। EnsureListUpdatedएक रूपांतर भी है।

C # में एक bool TryXXX(args, out result)पैटर्न है (उदाहरण के लिए int.TryParse(str, out num)) यदि X संभव है और यह जांचने के लिए, लेकिन यह सब अलग-अलग है।


1
सिफारिश का एक बिंदु, इस तरह के तरीके, जबकि अच्छी तरह से इरादा किया गया है, सावधानी के साथ बनाया जाना चाहिए। जिस तरह से वे "बस के मामले में" या "एक्स में एक कॉल जोड़ने" की आड़ में असंबंधित कोड में peppered हो जाते हैं, लेकिन एक बग तय किया है, लेकिन मुझे यकीन नहीं है क्यों "। आप केवल कॉल करने के लिए अनुशासन है, तो RefreshUserList()के दौरान LoginUser()और LogoutUser(), और नहीं के दौरान, कहते हैं GetUser()(जहां सूची में ऊपर-टू-डेट हो पहले से ही होना चाहिए), तो हर तरह से सलाह नीचे लागू होता है।
केविन मैककॉर्मिक

जवाबों:


25

मैं उपयोग करते हैं Ensure। यह सुनिश्चित करने का अर्थ वहन करता है कि किसी चीज़ का ध्यान रखा जाता है, हालाँकि ऐसा करने की आवश्यकता है। यदि यह पहले से ही ठीक है, तो इसे जांचें और हम काम कर रहे हैं। नहीं तो कर लो। किसी भी तरह, बस यह सुनिश्चित करें कि यह हो जाता है


13

मेरी प्राथमिकता है UpdateList। अगर कुछ करने की जरूरत नहीं है, तो यह हो। व्यय को हमेशा कम से कम किया जाना चाहिए, इसलिए यदि UpdateListआवश्यक हो तो अधिक से अधिक कुछ करना इसके कार्यान्वयन में गलत है।

मूल रूप से यह क्रिया है जो आपको बताती है कि विधि क्या करना चाहिए। CalculateXहमेशा एक्स GetYको पुनर्गणना करना चाहिए। हमेशा वाई को वापस करना चाहिए, लेकिन केवल यदि आवश्यक हो तो इसे पुनः प्राप्त करने का काम करें। इसी तरह, UpdateZयह संभव सबसे कुशल तरीके से किया है यह मानते हुए जेड के एक अद्यतन का अनुरोध करता है।


2

शायद मुझे कॉल करे"

Haskell स्निपेट मैंने देखा है से सह-चुना, कोशिश

UpdateListMaybe();

2
मुझे लगता है कि अगर मैंने हास्केल को बेहतर समझा, तो यह अधिक समझ में आ सकता है। कोरोलरी: यदि इसे हास्केल के अलावा किसी अन्य भाषा में उपयोग किया जाता है, तो यह केवल उन लोगों द्वारा समझा जाएगा जो हास्केल को जानते हैं।
रॉबर्ट हार्वे

2
छह साल बाद, मैं एक अलग प्रोग्रामर हूं, हास्केल चीजों के बारे में अधिक जानकारी के साथ। मैं अब इस जवाब का समर्थन नहीं करता, हाहा। मुझे लगता है कि उस समय मेरा विचार "शायद" शब्द का उपयोग करना था यह संकेत देने के लिए कि फ़ंक्शन किसी प्रकार की वैकल्पिकता को संभालता है। मैं अब भी कभी-कभी ऐसा करता हूं (उदाहरण के लिए विकल्प [A] => B को शायद TTB कहा जाता है)
Mark Canlas
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.