Bugün bir meslektaşımla Python web çerçeveleri ve onlar hakkındaki izlenimlerimiz hakkında konuşuyordum. Ona küresel bir isteği olan Flask'ın kötü koktuğunu ve bir anti-desen olduğunu düşündüğümü söyledim.
Docs istek içeriği hakkında ki:
Bunun aksine, istek işleme sırasında birkaç kural daha vardır:
- bir istek etkinken, bağlam yerel nesneleri (flask.request ve diğerleri) geçerli isteği gösterir.
- herhangi bir kod herhangi bir zamanda bu nesneleri tutabilir.
Bu tasarım kararının arkasındaki fikri anladığımı düşünüyorum - uygulamayı kolaylaştırmak için. İş Parçacığı Yerellerinde olduğu gibi sadece bir uzlaşma :
Evet, iş parçacığı yerlilerinin kullanılması o kadar parlak bir fikir değildir. İş parçacığı kavramına dayanmayan ve büyük uygulamaların bakımını zorlaştıran sunucular için sorunlara neden olurlar. Ancak Flask sadece büyük uygulamalar veya asenkron sunucular için tasarlanmamıştır. Flask, geleneksel bir web uygulaması yazmayı hızlı ve kolay hale getirmek istiyor.
Mevcut istek bilgileriyle global bir nesne yamalamak bir anti-desen midir?
Buna inanıyorum, çünkü statik kod analizörünün küresel bir durum görünümünde olmasına rağmen, öyle değil. Ve ben bir programcı olarak belgeleri dikkatlice okumadan nasıl çalıştığını anlamayacağım . Bunun testler üzerinde sonuçları var .
İsteği görüşlere argüman olarak iletmek iyi bir uygulama değil mi? Bence daha okunabilir, açık ve hata ayıklaması daha kolay. Ve küresel devletten kaçınır.