1 पॉइंट द्वारा GN⁺ 2023-10-17 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • Go 1.22 के net/http पैकेज में मौजूद डिफॉल्ट HTTP serving multiplexer की pattern matching क्षमता में सुधार पर लेख
  • मौजूदा multiplexer (http.ServeMux) बेसिक path matching देता था, इसलिए advanced features के लिए 3rd party libraries की ज़रूरत पड़ती थी
  • Go 1.22 का नया multiplexer advanced matching देता है, जिससे 3rd party packages के साथ अंतर कम हो जाता है
  • नया multiplexer (mux) pattern के हिस्से के रूप में HTTP methods को स्पष्ट रूप से निर्दिष्ट कर सकता है और path components में wildcard matching को support करता है
  • लेख में नए mux के उपयोग के उदाहरण दिए गए हैं, जिनमें अलग-अलग patterns के बीच संभावित conflicts को संभालना भी शामिल है
  • नई ServeMux documentation patterns और संभावित conflicts के लिए priority rules समझाती है
  • लेख Go में REST server series के उदाहरणों को फिर से देखता है और तुलना करता है कि नया stdlib mux, gorilla/mux के मुकाबले कैसा दिखता है
  • Go 1.22 का नया mux अधिक परिष्कृत routing संभव बनाता है, जिससे handlers के भीतर routing decisions लेने की आवश्यकता कम होती है
  • लेखक का मानना है कि Go 1.22 के ये सुधार "कौन-सा router package इस्तेमाल करना चाहिए?" इस आम सवाल के जवाब को बदल देंगे. बहुत से लोगों को नया stdlib mux अपनी ज़रूरतों के लिए पर्याप्त लगेगा
  • फिर भी, कुछ Go programmers अब भी 3rd party packages या Gin जैसे lightweight frameworks को पसंद कर सकते हैं. ये router के साथ web backend बनाने के लिए अतिरिक्त tools देते हैं
  • कुल मिलाकर, लेखक Go 1.22 के सुधारों को सभी Go users के लिए एक सकारात्मक बदलाव मानते हैं, जो standard library को अधिक सक्षम बनाते हैं और पूरी community के लिए लाभकारी हैं

1 टिप्पणियां

 
GN⁺ 2023-10-17
Hacker News राय
  • Go 1.22 की नई HTTP सर्वर राउटिंग पर लेख।
  • जब दो routes match होते हैं तो होने वाले panic को समझना उपयोगकर्ताओं के लिए कठिन है; ज़्यादातर web frameworks पहले register किए गए matching route का उपयोग करते हैं।
  • gorrila/mux प्रोजेक्ट का archive किया जाना और फिर बहाल होना भ्रम पैदा करता है, लेकिन कुछ लोग इसे open source प्रोजेक्ट्स की स्थिरता का प्रमाण मानते हैं।
  • प्रस्तावित syntax की आलोचना, कुछ लोग handler परिभाषित करने के लिए magic strings बनाने के बजाय वास्तविक arguments इस्तेमाल करने का सुझाव देते हैं।
  • कुछ उपयोगकर्ताओं को stringified method prefixes का उपयोग पसंद नहीं है; वे verb-specific methods की type safety को प्राथमिकता देते हैं।
  • यह जिज्ञासा कि जब route match हो लेकिन method match न हो तो क्या होता है; जवाब है 405, साथ में सही तरह से भरा हुआ Allow header।
  • जिन उपयोगकर्ताओं की आवश्यकताएँ उन्नत हैं, उनके लिए सुझाव है कि वे built-in sub muxes का उपयोग न करें, दूसरे विकल्प देखें या अपना router लिखें।
  • कुछ लोग चाहते हैं कि overlapping paths परिभाषित किए गए क्रम में match हों, panic होने के बजाय।
  • कुछ उपयोगकर्ताओं को यह प्रस्ताव पसंद नहीं है, खासकर URI में HTTP request method शामिल करना।
  • डिफ़ॉल्ट ServeMux की आलोचना, जो address के prefix होने पर सब कुछ संभाल लेता है; exact match संभालने का आसान तरीका नहीं है।
  • फिर भी, कुछ उपयोगकर्ता नई राउटिंग को सकारात्मक बदलाव मानते हैं, जो बाहरी dependencies कम करती है और productivity बढ़ाती है।