2010-07-12 14 views
9

यह एक खुला-खुला प्रश्न है, लेकिन मैं एसओ समुदाय से कुछ राय मांगना चाहता हूं; क्या आपको लगता है कि स्क्वाक/फारो में लक्षण एक अच्छी बात है, या आप उनसे दूर रहना चाहिए और इसके बजाय संरचना और प्रतिनिधिमंडल का उपयोग करना चाहिए? मैं पूछता हूं क्योंकि मुझे पता है कि उनका उपयोग कैसे करें (फारो पुस्तक के लिए धन्यवाद), मुझे सच में यकीन नहीं है कि उनका उपयोग करना कितना स्वीकार्य है या जहां उनका उपयोग करना ठीक है और यह कहां नहीं है।क्या लक्षण अच्छे या बुरे हैं?

उत्तर

6

मुझे लक्षण पसंद नहीं हैं क्योंकि वे कोड में मजबूत निर्भरताएं पेश करते हैं। ये निर्भरता स्पष्ट हो सकती है (एक वर्ग जो एक विशेषता आयात करता है, एक विशेषता जो विधियों की अपेक्षा करता है), लेकिन यह भी बहुत सूक्ष्म (एक विशेषता जो सुपर विधियों/उदाहरण चर को छाया देती है)। इसके अलावा लक्षणों के लिए पर्याप्त उपकरण समर्थन नहीं है।

मेरे अनुभव में प्रतिनिधिमंडल एक गतिशील रूप से टाइप की गई वस्तु-उन्मुख भाषा जैसे स्मॉलटॉक में एक बेहतर और अधिक पुन: प्रयोज्य डिज़ाइन देता है।

1

चीजें उनके पेशेवर और विपक्ष हैं। लुकास ने कई विपक्ष का उल्लेख किया है:

  • कोड में मजबूत निर्भरता का परिचय दें।
  • कोई पर्याप्त उपकरण समर्थन नहीं है।

जबकि दूसरा कुछ दिन दूर जा सकता है, पहला नहीं होगा।

लक्षणों का उद्देश्य कोड डुप्लिकेशन को रोकने के लिए है, जब दो वर्ग जो ऑब्जेक्ट के अलावा सुपरक्लास साझा नहीं करते हैं, एक उदाहरण विधि साझा करें। अब, कभी-कभी प्रतिनिधिमंडल इसे ठीक कर सकता है, लेकिन कई बार यह नहीं कर सकता है। तो, लक्षणों का समर्थक है:

  • कम कोड डुप्लिकेशन।

मेरा निर्णय यहां है कि नुकसान अधिक है। मुझे लगता है कि, आज और हमेशा के लिए, कोड डुप्लिकेशन होने वाला है। और जब प्रतिनिधिमंडल नहीं करेगा, तो मैं यह भी कल्पना कर सकता हूं कि कोड डुप्लिकेशन सभी हानिकारक नहीं है, क्योंकि यह अक्सर कॉपी कोड स्निपेट के अलग-अलग विकास से पहले होता है।

I think, the best thing to do, as of today, is to keep automated track of code duplication, and always monitor when one end changes while the other doesn't. I'm currently writing a tool that'll keep track of such links, even across repositories. I'll report on it in my blog when it's ready.

संबंधित मुद्दे