Ein Teil des Codes wurde geschrieben, um Excel-Tabellen (Office Interop) zu generieren.
- Der Code arbeitet sehr schlecht.
- Ein Subsystem dient zum Generieren der Dateien bei Nacht. Leistung ist nachts kein Problem.
- Es wird eine Funktion erstellt, um die richtige Datei aus den 100 verschiedenen verfügbaren Dateien auszuwählen, abhängig von einem ausgewählten Parametersatz.
- Da physische Dateien vorhanden sind, wird ein Archivierungssystem hinzugefügt, um diese Dateien zu sichern (es gibt keinen Grund zum Archivieren. Diese Dateien sollten im laufenden Betrieb generiert werden).
- Dieses System enthält keine Konfigurationsdatei, sondern eine fest codierte "Serverauswahl" -Funktion, die sich einfach auf den Server auswirkt, auf dem der Code ausgeführt wird.
- Eine geplante Aufgabe ist erforderlich, um diesen Dienst zu unterstützen und auszuführen.
- Ein Subsystem dient zum Generieren der Dateien bei Nacht. Leistung ist nachts kein Problem.
Dies läuft auf ein einziges Problem hinaus. Der ursprüngliche Code ist viel zu schlecht, um in einer Produktionsumgebung ausgeführt zu werden.
Wäre das Leistungsproblem behoben worden, müssten das Subsystem und das nachfolgende Archivierungssystem, die "File Picker Factory-Funktion", der fest codierte Fehlerpunkt und die Wartung der geplanten Aufgabe und des hinzugefügten Fehlerpunkts nicht vorhanden sein.
Dies ist ein "Kaskadenfehler", wenn Sie so wollen. Das ursprüngliche Problem führte zu mehr schlechtem Code, mehr schlechten Lösungen und unnötigem Overhead. Gibt es ein formales Anti-Muster oder einen allgemeinen Begriff, um es zu beschreiben?
anti-patterns
P.Brian.Mackey
quelle
quelle
Antworten:
Lavastrom?
quelle
Ich bin mir nicht sicher, ob dies ein Anti-Muster ist. Wie bei allen Anti-Mustern müssen wir Ihr Wort nehmen, dass jeder, der es für eine gute Idee hielt, sich geirrt hat, aber in diesem Fall klingt das plausibel und ich werde Ihr Wort dafür nehmen, also ist das nicht das Problem.
Das Problem ist, dass ein Anti-Muster, um nützlich zu sein, eine Art allgemeine Falle beschreiben muss und wie sie vermieden werden kann. In diesem Fall würde dies wahrscheinlich eine Problemumgehung für Code finden, der eine schlechte Leistung erbringt, wenn Sie ihn einfach hätten verbessern können.
Das Problem damit als Anti-Muster, IMHO, ist, dass es unwahrscheinlich ist, dass es von großem Wert ist, darüber Bescheid zu wissen. Wer dies getan hat, hat vermutlich bereits verstanden, dass es schön wäre zu wissen, wie man es besser macht, also müssen sie nicht gewusst haben, wie es geht. Von der allgemeinen Situation als Anti-Muster gehört zu haben, hätte also nicht wirklich geholfen.
Soweit ein allgemeiner Begriff es beschreibt, funktioniert "Cascading Failure", wie Sie vorgeschlagen haben, ziemlich gut. Der Begriff, den ich für unqualifizierte Menschen mag, die auf einer Mission sind, die überhaupt keinen Sinn ergab, ist Snark-Jagd , aber das scheint für diese Situation zu hart zu sein. (Aber ich werde den Link trotzdem etwas unentgeltlich einwerfen, da es die beste Darstellung eines zum Scheitern verurteilten Unternehmens ist, das ich kenne).
quelle
Ich bin mir nicht sicher, ob dies hilft, aber die Büroautomatisierung ist oft ein Sonderfall:
Die Office-Automatisierung erfolgt normalerweise auf diese Weise, wenn sie von einem Benutzer-Desktop aus automatisiert werden muss (insbesondere für .net-Websites, da die Office-Automatisierungsdokumente Sie korrekt warnen, dass die Office-Interop-Tools fehlerhaft sind, wenn sie kopflos ausgeführt werden Wir mussten kopflose Prozesse schreiben, um mit diesem Toolkit Office-Dokumente zu erstellen. Wir nannten die Opferdienste, weil Sie sie regelmäßig ermorden mussten, um die Erinnerung wiederherzustellen.
Abgesehen von der Archivierung ist das, was Sie beschreiben, in einigen Fällen leider eine bewährte Methode.
Link: http://support.microsoft.com/kb/257757
quelle