ट्विस्टेड के बारे में क्या अच्छा है? [बन्द है]


83

मैं तेजी से सुन रहा हूँ कि तुलना में पायथन ट्विस्टेड फ्रेमवर्क रॉक्स और अन्य फ्रेमवर्क पीला है।

क्या कोई इस पर कुछ प्रकाश डाल सकता है और संभवतः अन्य नेटवर्क प्रोग्रामिंग रूपरेखाओं के साथ मुड़ की तुलना कर सकता है।


2
वहाँ कुछ भी हो प्रतीत नहीं होता है वहाँ भी है कि दूर से मुड़ के मुकाबले, तो Tis सवाल थोड़ा जवाब देने के लिए कठिन है। आप किन विकल्पों पर विचार कर रहे हैं?
स्वेन मार्नाच

1
@ साबित भी नहीं किया जा रहा है एक अजगर डेवलपर, मैं बस के रूप में के रूप में क्या यह घोषित किया जाता है के रूप में महान बनाता है उत्सुक हूँ।
एंटोन गोगोलेव

2
@Sven Marnach: यह एक समस्या डोमेन उदा पर निर्भर करता है, gevent"ज्योतिषी" आवेदन के लिए मुड़ लिए एक विकल्प है blip.tv/file/4883016
JFS

जवाबों:


131

ट्विस्टेड के कई अलग-अलग पहलू हैं जो आपको अच्छे लग सकते हैं।

ट्विस्टेड में बहुत सारे और बहुत सारे प्रोटोकॉल कार्यान्वयन शामिल हैं, जिसका अर्थ है कि एक एपीआई नहीं होने से अधिक संभावना है कि आप कुछ दूरस्थ प्रणाली (या तो ज्यादातर मामलों में क्लाइंट या सर्वर) से बात करने के लिए उपयोग कर सकते हैं - यह HTTP , FTP , SMTP, POP3, IMAP4 हो , डीएनएस , आईआरसी, एमएसएन, ऑस्कर, XMPP / अस्पष्ट , टेलनेट, SSH , एसएसएल, NNTP , या में से एक वास्तव में फिंगर, या अध्यक्ष, या की तरह निचले स्तर प्रोटोकॉल निर्माण-प्रोटोकॉल से एक की तरह अस्पष्ट प्रोटोकॉल डीजेबी के netstrings , सरल लाइन-ओरिएंटेड प्रोटोकॉल या पर्सपेक्टिव ब्रोकर (PB) जैसे ट्विस्टेड के कस्टम प्रोटोकॉल में से एक याएसिंक्रोनस मैसेजिंग प्रोटोकॉल (एएमपी)

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

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

थ्रेडिंग से परहेज परीक्षण और डिबगिंग (और इसलिए सामान्य रूप से विश्वसनीयता) के लिए भी फायदेमंद है। चूँकि किसी विशिष्ट ट्विस्ट-आधारित प्रोग्राम में कोई पूर्व-खाली संदर्भ स्विच नहीं होता है, इसलिए आपको आमतौर पर लॉकिंग के बारे में चिंता करने की आवश्यकता नहीं होती है। रेस की स्थितियां जो विभिन्न नेटवर्क घटनाओं के क्रम पर निर्भर करती हैं, उन नेटवर्क घटनाओं का अनुकरण करके आसानी से परीक्षण किया जा सकता है (जबकि एक संदर्भ स्विच का अनुकरण अधिकांश (किसी भी?) थ्रेडिंग लाइब्रेरी द्वारा प्रदान की गई सुविधा नहीं है)।

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

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

सब जो कहते हैं, मुझे ट्विस्टेड के बारे में सबसे अच्छा लगता है वह यह है कि यह एक बहुत उबाऊ पुस्तकालय है जो मुझे बहुत उबाऊ समस्याओं की अनदेखी करता है और सिर्फ दिलचस्प और मजेदार चीजों पर ध्यान केंद्रित करता है। :)


1
और आपके द्वारा संसाधन अमूर्त के बारे में दिए गए लिंक से खराब दस्तावेज़ दिखाई देता है। लेकिन महान उत्तर के लिए धन्यवाद, upvoting।
विनिपेमेकर

एक अच्छी बात यह है कि, "अनकम्प्लेटेड सॉकेट त्रुटियों" के बारे में बताते हुए। अच्छी व्याख्या। धन्यवाद।
हरानध

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

9

वैसे यह शायद स्वाद के अनुसार है।

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

एक और प्लस होगा ट्विस्टेड प्रोजेक्ट्स , जिसके साथ आप जल्दी से देख सकते हैं कि अधिकांश सर्वर / सेवाओं को कैसे लागू किया जाए, जो आप करना चाहते हैं।

ट्विस्टेड के पास कुछ महान दस्तावेज भी हैं , जब मैंने इसके साथ कुछ हफ़्ते पहले शुरू किया था, तो मैं जल्दी से एक कामकाजी प्रोटोटाइप प्राप्त करने में सक्षम था।

अजगर दृश्य के लिए काफी नया मुझे सही अगर मैं गलत में हूँ।


8
ट्विस्टेड के साथ शुरू करने का एक बड़ा फायदा यह है कि स्केलेबिलिटी की पूरी समस्याएँ होती हैं, जो ट्विस्टेड के डिज़ाइन करने के तरीके के कारण कभी नहीं आती हैं। यह आपको नए और रचनात्मक तरीकों की खोज करने की सुविधा देता है, ताकि पहले एक नेटवर्क एप्लिकेशन का निर्माण करते समय ऐसा करने के लिए सभी सांसारिक तरीकों को फिर से खोजा जा सके, बजाय :)
ncoghlan

हां, ट्विस्टेड के साथ काम करने के लिए एक नोबी के रूप में, यही वह है जो मैंने जल्दी खोजा था। और मैं प्यार करता हूँ कि वास्तुकला मुझे बहुत सारे नेट्टी [ jboss.org/netty ] की याद दिलाती है, जो कि मैंने काफी व्यापक रूप से इस्तेमाल किया था इसलिए सोचने का तरीका बहुत तेजी से उठा था।
जोहान डू टिट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.