2010-01-28 11 views
7

मुझे पता है कि इस सवाल से पहले पूछा गया है, लेकिन यह डेढ़ साल पहले था, हालांकि मैंने सोचा कि यह फिर से पूछताछ का समय हो सकता है। मैंने यह भी पहचाना कि इसे व्यक्तिपरक के रूप में देखा जा सकता है, लेकिन मुझे लगता है कि एओपी के लिए/के उद्देश्य के कारण हैं।उत्पादक सॉफ्टवेयर विकास में एओपी कैसे पेश करें?

मैं कौन सॉफ्टवेयर के विकास में AOP उपयोग कर रहा है में रुचि होगी और भी क्यों या क्यों इसे प्रयोग नहीं

मैं एओपी को एक बहुत मजबूत प्रतिमान के रूप में देखता हूं जो बहुत से विकास कार्यों को आसान बना सकता है। लेकिन जब वास्तविक दुनिया परियोजनाओं में एओपी का उपयोग करने की बात आती है तो मैंने अनुभव किया है कि कई निर्णय निर्माताओं इसके लिए मुश्किल से खुले हैं। आपने अपनी परियोजनाओं में एओपी पेश करने का प्रबंधन कैसे किया?

इससे पहले अगस्त 2008 से प्रश्न पूछा: Do you use AOP (Aspect Oriented Programming) in production software?

उत्तर

1

हमारे प्रबंधक अपनी वास्तुकला टीम को सुनते हैं।

हम उनसे कहता हूं कि AOP पार चिंता का विषय को लागू करने के एकमात्र समाधान है विशेषताएं:

    पहली जगह
  • में एक उचित कीमत पर
  • विकास दल द्वारा लिखित कार्यात्मक कोड के साथ खिलवाड़ के बिना
  • कभी भी भूलने के बिना (हजारों तरीकों से मैन्युअल रूप से प्रयास करने की तुलना में), अब और भविष्य में
  • डेवलपर्स क्या कर रहे हैं या नियंत्रित करने के बिना (कुछ महान हैं, अन्य वास्तविक गड़बड़ हैं)
  • एक अच्छा रख-रखाव

यह सच है के साथ, हमारे परियोजना 20 डेवलपर्स है और कई वर्षों तक चला, इसलिए वहाँ कोड का एक विशाल जन है। यह एकमात्र समाधान है।

मेरा मानना ​​है कि कुंजी केवल क्रॉस-कटिंग चिंताओं के लिए इसका उपयोग करना है। यदि आप इसे नियमित कोड का उपयोग करके कोड कर सकते हैं, तो ऐसा करें। लेकिन अगर यह बहुत बड़ा तरीका है, तो एओपी आकर्षक और न्यायसंगत है। एओपी को सीमित करने में विफल होने से सौ एओपी छोटे कोड होंगे, जो समझना बहुत कठिन होगा।

और हां, हमारा सॉफ्टवेयर उत्पादन-सॉफ्टवेयर है। सैकड़ों क्लीनिक इस पर निर्भर करते हैं!

1

हम AOP असल 100% का उपयोग नहीं करते लेकिन हाँ हम प्रयोग करते हैं जब भी हम उचित लग रहा है (ज्यादातर स्प्रिंग AOP; कि इतनी अच्छी तरह से वसंत ढांचे के साथ एकीकृत है)

आपने अपनी परियोजनाओं में एओपी कैसे पेश किया?

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

0

पीकिट के रूप में वसंत एओपी ने कहा कि यदि आप पहले से ही अपने प्रोजेक्ट में स्प्रिंग फ्रेमवर्क का उपयोग कर रहे हैं तो परिचय देना आसान है।

मैंने पहली बार हमारे उपकरण प्रोजेक्ट के लिए AspectJ जोड़ा जो केवल आंतरिक रूप से उपयोग किया जाता है और कभी भी ग्राहकों को जारी नहीं किया जाता है। इसने विकास टीम और प्रबंधन दोनों को उपकरण पर विश्वास हासिल करने में मदद की और उनके बारे में एक स्पष्ट विचार है कि यह उनके लिए क्या कर सकता है।