1 puan yazan GN⁺ 2023-10-17 | 1 yorum | WhatsApp'ta paylaş
  • Go 1.22'de net/http paketi içindeki varsayılan HTTP sunum çoklayıcısının desen eşleme yeteneklerindeki iyileştirmeleri ele alan bir yazı
  • Önceki çoklayıcı (http.ServeMux) temel yol eşleme sunuyordu; gelişmiş özellikler için 3rd party kütüphanelerin kullanılması gerekiyordu
  • Go 1.22'nin yeni çoklayıcısı gelişmiş eşleme sunarak 3rd party paketlerle arasındaki farkı azaltıyor
  • Yeni çoklayıcı (mux), HTTP metodlarının desenin bir parçası olarak açıkça belirtilmesine izin veriyor ve yol bileşenlerinde joker karakter eşlemeyi destekliyor
  • Yazı, yeni mux kullanımına dair örnekler sunuyor ve farklı desenler arasındaki olası çakışmaların nasıl ele alındığını da kapsıyor
  • Yeni ServeMux dokümantasyonu, desenler ve olası çakışmalar için öncelik kurallarını açıklıyor
  • Yazı ayrıca Go'daki REST sunucu serisinden bir örneği yeniden ele alıyor ve yeni stdlib mux'un gorilla/mux karşısında nasıl göründüğünü karşılaştırıyor
  • Go 1.22'nin yeni mux'u daha gelişmiş yönlendirmeyi mümkün kılarak, yönlendirme kararlarının handler içinde verilmesi ihtiyacını azaltıyor
  • Yazar, Go 1.22'deki geliştirmelerin "Hangi router paketini kullanmalıyım?" sorusuna verilen yaygın cevabı değiştireceğine inanıyor. Birçok kişi yeni stdlib mux'un ihtiyaçları için yeterli olduğunu düşünecek
  • Ancak bazı Go programcıları hâlâ 3rd party paketleri ya da Gin gibi hafif framework'leri tercih edebilir. Bunlar router ve web backend'i oluşturmak için ek araçlar sağlıyor
  • Genel olarak yazar, Go 1.22'deki iyileştirmeleri tüm Go kullanıcıları için olumlu bir değişim olarak görüyor; bu da standart kütüphaneyi daha yetkin ve tüm topluluk için daha faydalı hale getiriyor

1 yorum

 
GN⁺ 2023-10-17
Hacker News görüşü
  • Go 1.22’nin yeni HTTP sunucu yönlendirmesi hakkındaki makale.
  • İki rota eşleştiğinde oluşan panic durumunu anlamakta zorlanan kullanıcılar var; çoğu web framework’ü eşleşen ilk kayıtlı rotayı kullanır.
  • gorrila/mux projesinin arşivlenmesi ve ardından yeniden etkinleştirilmesi kafa karışıklığı yarattı, ancak bazıları bunu açık kaynak projelerin dayanıklılığının kanıtı olarak görüyor.
  • Önerilen sözdizimine yönelik eleştiriler var; bazıları handler tanımlamak için sihirli string’ler üretmek yerine gerçek argümanlar kullanılmasını öneriyor.
  • String’e dönüştürülmüş method öneklerinin kullanımını sevmeyen kullanıcılar, fiile özgü method’ların tip güvenliğini tercih ediyor.
  • Rota eşleşip method eşleşmediğinde ne olduğu merak ediliyor; yanıt, uygun şekilde doldurulmuş Allow header’ı ile birlikte 405.
  • Gelişmiş gereksinimleri olan kullanıcıların varsayılan alt mux’ları kullanmak yerine başka seçenekleri değerlendirmesi veya kendi router’ını yazması gerektiği öneriliyor.
  • Bazıları, panic yerine çakışan yolların tanımlandıkları sıraya göre eşleşmesini tercih ediyor.
  • Özellikle URI içinde HTTP istek methodunun yer almasını beğenmeyen, öneriyi sevmeyen kullanıcılar var.
  • Adres bir önek olduğunda her şeyi işleyen varsayılan ServeMux eleştiriliyor; tam eşleşmeyi ele almanın kolay bir yolu yok.
  • Buna karşın bazı kullanıcılar yeni yönlendirmeyi olumlu bir değişiklik olarak görüyor; dış bağımlılıkları azaltıyor ve üretkenliği artırıyor.