RSS Der tägliche WTF
Folgen
Eine einzige Hypothek
John erinnerte sich an eine Geschichte aus seiner Vergangenheit, als er in einer Bank arbeitete, wo sie eine Client-Anwendung entwickelten, um Verkaufsagenten dabei zu helfen, Hypothekenkosten zu berechnen und Grafiken für Kunden anzuzeigen. Die Anwendung war erfolgreich, aber später baten die Agenten um eine mobile Web-Version, die sie auf ihren Telefonen verwenden konnten. Der erste Gedanke war, sie mit dem Backend-Hauptrechner zu verbinden, aber aufgrund des Mangels an Hauptrechner-Entwicklern entschieden sie sich dafür, die Hypothekenkalkulations-Objekte in einem Web-Dienst zu kapseln. Der Web-Dienst wurde getestet und funktionierte gut, aber manchmal produzierte er absurde Ergebnisse, die schwer zu reproduzieren und zu diagnostizieren waren. Das Problem wurde schließlich gefunden und war durch ein Singleton-Objekt verursacht, das nicht auf eine einzelne Anfrage beschränkt war, was es ermöglichte, dass gleichzeitige Anfragen sich gegenseitig beeinflussten. Das Singleton-Objekt war ein Überbleibsel aus der ursprünglichen Client-Anwendung, wo es nicht notwendig war, Einzigartigkeit zu erzwingen. Der Rechner speicherte Zustände und sollte wahrscheinlich nie ein Singleton gewesen sein. Die Lösung war einfach, nämlich aufzuhören, das Singleton-Muster zu verwenden und sicherzustellen, dass jede Anfrage eine eigene Instanz des Rechners erhielt. Diese Erfahrung dient als Beispiel für die Fehlanwendung von Mustern und unterstreicht die Bedeutung einer sorgfältigen Überlegung bei der Anwendung von Entwurfsmustern in der Softwareentwicklung. Die Geschichte zeigt, wie ein scheinbar einfaches Problem eine komplexe Ursache haben kann und wie eine sorgfältige Überprüfung des Codes und des Designs zu einer einfachen Lösung führen kann.