मैं इस सब प्रचार को पाइथन के लिए ट्विस्ट के बारे में सुनता रहता हूं, लेकिन मुझे बस यह सादा भ्रमित लगता है। आपको क्या लगता है कि उपयोग करने के लिए और अधिक आसान है? सरल सॉकेट या मोड़ लागू?क्या कोई अच्छा मोड़ है?
उत्तर
मैं मैं Python in a Nutshell में क्या लिखा है के द्वारा खड़े (2 संस्करण पी 540।):
मुड़ शामिल शक्तिशाली, उच्च स्तर के इस तरह के वेब सर्वर, उपयोगकर्ता प्रमाणीकरण प्रणाली, मेल सर्वर और ग्राहकों के रूप में घटकों , इंस्टेंट मैसेजिंग, एसएसएच क्लाइंट और सर्वर, एक DNS सर्वर और क्लाइंट, और साथ ही साथ निम्न-स्तरीय आधारभूत संरचना जिस पर ये सभी उच्च स्तरीय घटक निर्मित हैं। प्रत्येक घटक अत्यधिक स्केलेबल और आसानी से अनुकूलन योग्य है, और सभी को को आसानी से इंटरऑपरेट करने के लिए एकीकृत किया गया है। यह पाइथन के की शक्ति और की सरलता के लिए श्रद्धांजलि है, जो कि को दो मेगाबाइट्स डाउनलोड के लायक के भीतर पूरा किया जा सकता है।
पूछ कि क्या यह अविश्वसनीय रूप से अमीर और शक्तिशाली रूपरेखा "सरल उपयोग करने के लिए" "सरल सॉकेट" से है जो पूछेगा कि एक कार है एक पेंच की तुलना में "उपयोग में अधिक आसान" की तरह एक सा है: क्या एक अजीब सवाल!
कारें शिकंजा (अन्य बातों के अलावा) के साथ बनाया हैं, और काफी के रूप में "का उपयोग करने के लिए सरल" नहीं किया जा सकता - सिर्फ इसलिए कि एक पेंच इतने कम करता है, एक कार इतना करता है।
लेकिन यदि आप ए से बी (और संभवतः यात्रियों, सामान, पालतू जानवर, ...) लेना चाहते हैं तो एक स्क्रू बहुत मदद नहीं करेगा (जब तक कि आप मूल रूप से स्क्रैच से कार बनाने जा रहे हैं; -)।
बेशक कारें ए से बी तक पहुंचने का एकमात्र तरीका नहीं है, जैसे कि पाइथन में नेटवर्क-केंद्रित सिस्टम बनाने का एकमात्र तरीका मोड़ नहीं है। एक घोड़ा और छोटी गाड़ी (जैसे asyncore) विचित्र और मजेदार है, हालांकि कम व्यावहारिक; एक हाई-स्पीड ट्रेन (जैसे tornado) का उपयोग करना आसान हो सकता है और कम से कम तेज़, हालांकि बहुत कम लचीला; और विभिन्न विशेष प्रयोजनों के लिए आप paramiko से dnspython तक, साइकिलों से क्रूज जहाजों (जैसे, पायथन और नेटवर्किंग के लिए, अन्य सभी प्रकार के पैकेजों) के सभी प्रकार के अन्य वाहनों को प्राथमिकता दे सकते हैं - उनमें से सभी के हिस्से के रूप में शिकंजा शामिल होंगे उनके घटकों (जैसे, सभी को सॉकेट को उनके द्वारा बनाए जाने के तरीके के रूप में शामिल किया जाएगा), "सरल सॉकेट" के रूप में उपयोग करने के लिए कोई भी आसान नहीं होगा, प्रत्येक (प्रयोज्यता की अपनी सीमा में) आपके लिए बहुत कुछ करेगा संभवतः "सरल सॉकेट" संभवतः हो सकता है।
Twisted
बड़ी संख्या में मामलों में एक उत्कृष्ट विकल्प है, अक्सर जब आप कार्यक्षमता के कई पहलुओं को एकीकृत करने की आवश्यकता होती है और/या कुछ प्रोटोकॉल को कार्यान्वित करते हैं जिसके लिए कोई पूरी तरह से पैक किया गया समाधान नहीं है। "सरल सॉकेट" नहीं हैं - वे केवल निम्न स्तर के घटक हैं जिनमें से उच्च कार्यक्षमता, उच्च स्तरीय वाले लोग बनाए जाते हैं, और शायद ही कभी एक अच्छा कारण है (सीखने के अलावा, निश्चित रूप से) "अपना खुद का रोल करें "सॉकेट के शीर्ष पर" स्क्रैच से "उच्च स्तरीय घटकों का निर्माण किया गया है (शक्तिशाली, अच्छी तरह से निर्मित मौजूदा लोगों को चुनने के बजाए) - जैसे कि आप ट्रांजिस्टर, प्रतिरोधक, कैपेसिटर इत्यादि से अपने कंप्यूटर को बनाने में शायद ही कभी उचित ठहरेंगे। उपयुक्त एकीकृत सर्किट चुनने के बजाय ;-)।
ठीक है, मैं बस सीखना चाहता हूं। यही कारण है कि मैंने पूछा: बी मैं कार बनाना सीखना चाहता हूं! : पी – Jake
उम्मीद है कि "संक्षेप में मुड़" है। मुझे "पायथन इन अशेथ" और "पायथन कुकबुक" पुस्तक पसंद है। मैं अभी भी ट्विस्टमैट्रिक्स के साथ कुशलता से कोड नहीं लिख सकता हूं, यहां तक कि मौजूदा ट्विस्टेड बुक और ट्विस्टेड दस्तावेज़ को पढ़ना भी समाप्त कर सकता हूं ... – sunqiang
@ जेक, कार बनाने के लिए सीखना एक अद्भुत प्रयास है। दुर्भाग्य से इसके लिए कोई वास्तव में अच्छी पाठ्यपुस्तक नहीं है (कम से कम पाइथन पर आधारित नहीं), लेकिन आप धीरे-धीरे सॉकेट, टीसीपी/आईपी, उनके ऊपर उच्च स्तरीय प्रोटोकॉल का अध्ययन करके, पाइथन मानक में कुछ प्रोटोकॉल कार्यान्वयन के माध्यम से धीरे-धीरे प्रगति कर सकते हैं लाइब्रेरी (सादा वेनिला, कोई मल्टीटास्किंग), फिर थ्रेडिंग बनाम एसिंक सिस्टम, एसिंककोर, टिक्स्ड (प्रत्येक मामले में, "मैं इसे एक्स एक्स के लिए कैसे उपयोग करूं" के साथ मिश्रण करता हूं "यह आंतरिक रूप से कैसे कार्यान्वित किया जाता है और उन्होंने यह डिज़ाइन निर्णय क्यों लिया")। वास्तव में लंबी यात्रा, लेकिन, आगे बढ़िया सीखना! -) –
मैं कहूंगा कि यह अच्छा है। बस this page of projects using twisted देखें।
ट्विस्ट एक समरूपता ढांचा है। यह आपको थ्रेड/प्रक्रियाओं के प्रयोग किए बिना एक ही ऐप्लिकेशन में एकाधिक कार्यों को जोड़ने की अनुमति देता है। यह एक घटना संचालित एसिंक्रोनस सिस्टम का उपयोग करता है और नेटवर्किंग अनुप्रयोगों के साथ विशेष रूप से अच्छा है। असीमित कोड आम तौर पर सामान्य सामान से थोड़ा 'अलग' होता है क्योंकि प्रवाह स्पष्ट नहीं होता है और बाहरी घटनाओं के आधार पर चीजें होती हैं। यह भ्रमित हो सकता है लेकिन यह काम करता है। मुड़कर तर्कसंगत रूप से सबसे परिपक्व पायथन एसिंक कॉन्सुरेंसी लाइब्रेरी है, इसलिए यदि आप यही करने की योजना बना रहे हैं, तो मुड़ने पर एक अच्छी बात है।
"सरल सॉकेट" जैसे ही आप उन्हें रखते हैं संचार प्राथमिकताएं हैं और वास्तव में मुड़ने के लिए तुलनीय नहीं हैं। तुम क्या करने की कोशिश कर रहे हो?
ट्विस्ट को पहली बार 2002 में रिलीज़ किया गया था और तब से काफी हद तक फूला हुआ है; (यह एक स्पर्शपूर्ण विषय है और कई लोग तर्क देंगे कि यह एक ढांचे में अच्छा और जरूरी है) - हालांकि परियोजना के करीब आने वाले किसी के लिए यह थोड़ा मुश्किल हो सकता है। विकल्प हैं हालांकि यदि आप एसिंक्रोनस फ्रेमवर्क की तरफ बढ़ रहे हैं। मैंने यह ब्लॉग दिलचस्प पाया: http://nichol.as/asynchronous-servers-in-python। बेंचमार्क एक तरफ, कोड नमूने अकेले तुलना करने के लिए काफी दिलचस्प हैं।
मुड़ना भारी है, मैं सहमत हूं लेकिन फुलाया नहीं। जब आप कुछ ढूंढ रहे हों तो यह बहुत ही मुक्ति महसूस कर रहा है और आप इसे मोड़ के अंदर पाते हैं - पहले ही कार्यान्वित, परीक्षण और जाने के लिए तैयार हैं। –
- 1. क्या AnkhSVN कोई अच्छा है?
- 2. क्या कोई अच्छा SimpleSAMLphp एसएलओ उदाहरण है?
- 3. क्या कोई अच्छा web.config संपादक है?
- 4. क्या कोई अच्छा पायथन जीयूआई खोल है?
- 5. क्या कोई अच्छा UITabBarController उदाहरण है?
- 6. मोड़ पर एक स्ट्रिंग को विभाजित करें जो मोड़
- 7. MPMoviePlayerController फुलस्क्रीन मोड़ आईपैड
- 8. भूलभुलैया हल करने इष्टतम कोई बाएं मोड़ एल्गोरिदम
- 9. CSS3 3 डी मोड़ परिप्रेक्ष्य
- 10. क्या अच्छा है, यदि कोई है, .NET विंडोज ऑटोमेशन लाइब्रेरी?
- 11. iMacros अच्छा लेकिन अविश्वसनीय है। क्या कोई विकल्प है?
- 12. पायथन मोड़: कैसे शेड्यूल करें?
- 13. क्या कोई अच्छा ओपनसोर्स जियोपर्सर्स उपलब्ध हैं?
- 14. क्या कोई अच्छा जावास्क्रिप्ट ग्राफिक्स पुस्तकालय हैं?
- 15. क्या PHP के SOAP एक्सटेंशन का कोई अच्छा विकल्प है?
- 16. क्या कोई अच्छा HAML है -> ईआरबी/एचटीएमएल कनवर्टर?
- 17. क्या कोई अच्छा जावा थ्रेड माइग्रेशन पैकेज है?
- 18. क्या कोई अच्छा मुफ्त/सस्ता डेल्फी ग्रिड नियंत्रण है?
- 19. क्या जीटीके विजेट कॉपी करने का कोई अच्छा तरीका है?
- 20. क्या कोई अच्छा दृश्य नियमित अभिव्यक्ति संपादक है?
- 21. क्या कोई अच्छा ओपन सोर्स एक्सएमएल विचार है?
- 22. क्या कोई अच्छा WPF आरेखक/टूलकिट/प्रदाता है?
- 23. क्या कोई अच्छा HTML मेटा टैग ओवरव्यू कहीं है?
- 24. क्या Python के लिए कोई अच्छा निर्भरता विश्लेषण उपकरण है?
- 25. क्या कोई अच्छा मुफ्त (prefrerably पीडीएफ) बैश ट्यूटोरियल ऑनलाइन है?
- 26. क्या कोई अच्छा इन-मेमोरी डेटाबेस है जो डीबी 2
- 27. क्या एआरएम नियॉन इंट्रिनिक्स के लिए कोई अच्छा संदर्भ है?
- 28. क्या जावा में कोई अच्छा एक्स 12 पार्सर है?
- 29. क्या कोई अच्छा इन-ब्राउज़र कोड संपादक है?
- 30. क्या कोई अच्छा आईई-आधारित सेलेनियम आईडीई है?
सरल सॉकेट? मुड़ने के कार्यान्वयन। –