2009-06-02 15 views
8

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

उत्तर

12

प्रकटीकरण: मैं स्प्रिंग अजगर के लिए परियोजना का नेतृत्व कर रहा हूँ, ताकि आप विचार कर सकते हैं मेरी राय पक्षपातपूर्ण।

मुझे लगता है कि स्प्रिंग पायथन द्वारा प्रदान किए गए कई विकल्प उपयोगी हैं: aspect oriented programming, dependency injection, remoting, security, and easy database access

पहलू उन्मुख प्रोग्रामिंग, जैसा कि वे कहते हैं, जावा से अजगर के साथ कफ को कार्यान्वित करना आसान है। लेकिन स्प्रिंग पायथन अपने स्रोत कोड को संपादित किए बिना मौजूदा पायथन मॉड्यूल में जोड़ने के लिए काफी आसान बनाता है। अन्य समाधानों को मेटा-प्रोग्रामिंग या मूल स्रोत कोड को संशोधित करने की आवश्यकता होती है। मेरे पास पहले से ही एक व्यक्ति हमारे मंचों पर जा रहा है कि एक पायगैम एप्लिकेशन में इंटरसेप्टर जोड़ने का तरीका पूछता है, इसलिए वह कुछ कोड को "टैप" कर सकता है।

कई लोग जल्दी से assume "dependency injection" or "IoC" instantly means "XML configuration files"। मामला नहीं। जबकि हम एक एक्सएमएल कॉन्फ़िगरेशन का समर्थन करते हैं, तो सीधे पाइथन सजावट का उपयोग करने के लिए सीधे छलांग लगाएं।

मुझे पहले से ही एक ऐसी कंपनी के बारे में पता है जो स्प्रिंग पायथन का उपयोग अपने सिस्टम के एक प्रमुख टुकड़े के रूप में कर रहा है। वे सुधार करने, नई सुविधाओं को जोड़ने, और आम तौर पर इसे अपने समाधान के एक टुकड़े के रूप में उपयोग करने में रुचि रखते हैं। उन्होंने ज्योथन के अंदर इसे चलाने के साथ भी प्रयोग किया है, अगर आपकी रूचि पिक्चर हो।

दिन के अंत में, मेरा सुझाव सभी सुविधाओं की जांच करना है, और देखें कि उनमें से कोई भी आपकी आवश्यकताओं के अनुरूप है या नहीं। चाहे वह अनावश्यक जटिलता या सिक्योरिटी मूल्य जोड़ रहा हो, केवल आपके द्वारा निर्धारित किया जा सकता है। आपको सब कुछ उपयोग करने की ज़रूरत नहीं है; केवल आपको क्या चाहिए उपलब्ध होने पर कुछ और जानकारी प्राप्त करने के लिए, मैं आपको Introduction to Spring Python देखने के लिए आमंत्रित करता हूं, जिसे मैंने स्प्रिंगऑन अमेरिका 2008 कॉन्फ़्रेंस में प्रस्तुत किया था।

+0

स्प्रिंग पायथन लिंक का परिचय टूटा हुआ है। अनुरोध है कि आप एक नवीनतम लाइव लिंक – gansub

+0

https://www.slideshare.net/gturnquist/intro-to-spring-python – gregturn

+0

जोड़ें, वैसे भी, एक पुस्तक => https://www.packtpub.com/application भी है लिए विकास/वसंत-अजगर-11 – gregturn

22

निर्भरता इंजेक्शन ढांचे गतिशील रूप से टाइप की गई भाषा में लगभग उतने उपयोगी नहीं हैं। उदाहरण के लिए देखें प्रस्तुति Dependency Injection: Vitally important or totally irrelevant? जावा में निर्भरता इंजेक्शन ढांचे द्वारा प्रदान की गई लचीलापन महत्वपूर्ण है, जबकि पायथन में आमतौर पर अनियंत्रित जटिलता में परिणाम होता है।

इसका मतलब यह नहीं है कि सिद्धांत गलत हैं। इस उदाहरण कैसे सरल मुहावरे का उपयोग करके वर्गों के बीच ढीला संयोजन को प्राप्त करने के देखें:

# A concrete class implementing the greeting provider interface 
class EnglishGreetingProvider(object): 
    def get_greeting(self, who): 
     return "Hello %s!" % who 

# A class that takes a greeting provider factory as a parameter 
class ConsoleGreeter(object): 
    def __init__(self, who, provider=EnglishGreetingProvider): 
     self.who = who 
     self.provider = provider() 
    def greet(self): 
     print(self.provider.get_greeting(self.who)) 

# Default wiring 
greeter = ConsoleGreeter(who="World") 
greeter.greet() 

# Alternative implementation 
class FrenchGreetingProvider(object): 
    def get_greeting(self, who): 
     return "Bonjour %s!" % who 
greeter = ConsoleGreeter(who="World", provider=FrenchGreetingProvider) 
greeter.greet() 
+0

6 साल बाद ... :) आप नेस्टेड निर्भरताओं को कैसे संभालेंगे (बी (सी (डी)))? कन्स्ट्रक्टर में अभी तक एक और पैरामीटर जोड़ने के बिना आप अज्ञात संख्या की निर्भरताओं को कैसे संभालेंगे? – dakt

0

अच्छी चीजें। मैंने स्प्रिंग जावा, स्प्रिंग डॉट नेट का उपयोग किया है और अब स्प्रिंग पायथन से शुरू किया है। प्रोग्रामर के लिए पाइथन हमेशा उपयोग करना बहुत आसान रहा है; मुझे लगता है, खासकर जब से लिखना आसान है। मैंने स्प्रिंग डॉट नेट को थोड़ा उलझन में पाया, लेकिन स्प्रिंग जावा और पायथन दोनों समान दिखते हैं। मुझे यकीन है कि उनके मतभेद हैं, लेकिन कम से कम मैं वसंत के पायथन कार्यान्वयन के साथ इतनी उलझन में नहीं हूं।

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