Vor kurzem habe ich ein Projekt gestartet, das nicht allzu schwierig zu sein schien. Das Konzept war eine ziemlich einfache Anwendung, die hin und wieder Eingaben akzeptieren musste (vielleicht 10x am Tag) und versuchte, einige Operationen an ihnen durchzuführen und alle Ergebnisse zu sammeln Am Ende. Diese Anwendung würde dann ein Front-End-Webportal erhalten, über das die Kunden die Ergebnisse anzeigen könnten, nicht gerade Rocket Science.
Zu diesem ThreadPoolExecutor
Zweck habe ich zunächst die in Python integrierten Parallelbibliotheken ( ) intelligent genutzt und eine benutzerfreundliche Bibliothek für das Front-End verwendet (ich habe Flask ausgewählt, da es für Anfänger einfach und relativ einfach zu warten und zu testen ist).
Als wir in der Mitte des Projekts waren, gab der Premierminister an, dass wir die Message Queue-Funktionen von Drittanbietern anstelle von Threads verwenden und den Lastenausgleich implementieren mussten. Schließlich passierte es, dass wir schließlich mit Sellerie, Redis, RabbitMQ, Nginx und uWSGI zusammenarbeiteten und eine Reihe anderer großer Drittanbieter, mit denen niemand echte Erfahrung hatte.
Am Ende führte dies zu einer Menge Spaghetti-Code, nicht überprüfbaren Aufgaben (aufgrund der Komplexität der Bibliotheken von Drittanbietern funktionierte das Patchen des Codes nicht einmal) und einer Menge Kopfzerbrechen, da niemand überhaupt wusste, welchen Mehrwert diese Dienste hatten .
Bevor Sie "Ja, Sie sollten diese Dienste nutzen" sagen, denken Sie daran, dass niemand weiß, wie man diese verwendet, oder sogar weiß, was sie tun, abgesehen davon, dass sie rennbedingten Code einführen.
Was soll ich dagegen tun? Zu diesem Zeitpunkt wäre es einfach zu kostspielig, auf das zurückzugreifen, was wir hatten, und der PM ist nicht mehr in der Lage, diese Dienste zu nutzen, obwohl das Endprodukt jetzt schlechter gestellt ist als zu Beginn. Kann man das überhaupt mit ihm besprechen? Bitte ich um mehr zeit Oder die harsche Antwort: Bin ich für meinen Job einfach zu dumm?