Récemment, j'ai démarré un projet qui ne semblait pas trop difficile à faire. Le concept était une application assez simple, qui devait accepter des entrées de temps en temps (peut-être 10 fois par jour), et essayer de réaliser certaines opérations et de collecter tous les résultats. à la fin. Cette application obtiendrait alors un portail Web frontal que les clients pourraient utiliser pour afficher les résultats, pas exactement comme un génie.
Pour cela, j'ai d'abord utilisé intelligemment les bibliothèques de concurrence intégrées de Python ( ThreadPoolExecutor
) et utilisé une bibliothèque facile à utiliser pour le front-end (j'ai choisi Flask car il est facile à utiliser pour les débutants et relativement facile à maintenir et à tester).
Une fois le projet à mi-parcours, le PM a déclaré que nous devions utiliser des capacités de file d'attente de messages tierces au lieu de threads et mettre en œuvre l'équilibrage de la charge. Nous avons finalement commencé à travailler avec Celery, Redis, RabbitMQ, Nginx, uWSGI. et un ensemble d'autres grands services tiers que personne n'a jamais vécus.
Cela a finalement abouti à une série de codes spaghetti, à des tâches incontrôlables (en raison de la complexité des bibliothèques tierces, la correction du code ne fonctionnait même pas) et à une série de maux de tête car personne ne savait même quelle était la valeur ajoutée de ces services. .
Avant de dire "Oui, vous devriez utiliser ces services", gardez à l'esprit que personne ne sait comment les utiliser ni même ce qu'ils font en plus d'introduire du code infesté de race-condition.
Que dois-je faire à ce sujet? À ce stade, il serait tout simplement trop coûteux de revenir à ce que nous avions et le Premier ministre est impuissant à utiliser ces services, même si le produit final est maintenant moins bien loti qu’au début. Est-il utile de discuter de cela avec lui? Est-ce que je demande plus de temps? Ou la réponse dure, suis-je trop stupide pour mon travail?