Kısa süre önce, yapmak zor görünmeyen bir projeye başladım, konsept, şimdi ve sonrasında (belki de günde 10x) girdi kabul etmek ve bunlarla ilgili bazı işlemler yapmak ve tüm sonuçları toplamaya çalışmak için oldukça basit bir uygulama oldu. sonunda. Bu uygulama daha sonra tam olarak roket bilimi değil, müşterilerin sonuçları görüntülemek için kullanabileceği bir ön uç web portalı alacaktı.
Bunun için başlangıçta Python'un yerleşik eşzamanlılık kitaplıklarını ( ThreadPoolExecutor
) akıllıca kullandım ve ön uç için kullanımı kolay bir kitaplık kullandım (Flask'ı yeni başlayanlar için kolay ve bakımı kolay ve test etmek için kolay olduğu için seçtim).
Projenin yarısında bulunduktan sonra, Başbakan, iş parçacığı yerine üçüncü taraf mesaj kuyruğu yeteneklerini kullanmak zorunda kaldığımızı ve yük dengelemesi yapmak zorunda kaldığımızı, sonunda sonuçta Celery, Redis, RabbitMQ, Nginx, uWSGI ile çalışmaya başladığımızı belirtti. ve hiç kimsenin deneyimlemediği bir sürü üçüncü şahıs hizmetleri.
Sonunda bu, bir grup spagetti koduna, denenemeyen görevlere (üçüncü parti kütüphanelerin karmaşıklığı nedeniyle, kodu yamalamadı bile işe yaramadı) ve bir sürü baş ağrısına yol açtı; çünkü kimse bu hizmetlerin katma değerinin ne olduğunu bilmiyordu. .
"Evet, bu hizmetleri kullanmalısın" demeden önce, hiç kimsenin bunları nasıl kullanacağını bilmediğini ya da hatta yarış koşullarını saran kodları eklemenin dışında ne yaptığını bilmediğini unutmayın .
Bu konuda ne yapmalıyım? Bu noktada, sahip olduğumuz şeye geri dönmek çok pahalıya mal olacak ve Başbakan bu hizmetleri kullanmaya kararsız kaldı, ancak son ürün başlangıçta olduğundan daha kötü. Bunu onunla tartışmanın bir faydası var mı? Daha fazla zaman ister miyim? Yoksa sert cevap, işim için fazla aptal mıyım?