Gibt es gute Beispiele für "Architektur um der Architektur willen"?

8

Ich höre nur den Podcast dieser Woche und denke, es wäre nett, einige von euch zu gruppieren Erfahrungen, bei denen Sie die "Architektur" -Seite des Designs gesehen haben, dominieren die Dinge ein wenig mehr als es sollte.

Java bekommt in dieser Hinsicht oft eine schlechte Presse und eine zunehmend schlechte Presse, wenn die wahrgenommene Komplexität von Java EE zunimmt. Meine Java-Erfahrung gegen die Zeit-Grafik-Nasen-Tauchgänge signifikant nach 2004, so fühle ich mich nicht qualifiziert zu kommentieren.

Meine letzte Erfahrung ist mit einem Architekten, der verzweifelt versucht, ein Objektmodell in einer Reihe von (relationalen) Datenbanktabellen korrekt darzustellen (zufällig ist es Oracle). Das Ergebnis ist ein Datenbankschema, das nicht effizient abfragbar ist, ohne zuvor eine Reihe von Tabellen (in materialisierten Ansichten) vorab verbunden zu haben.

    
Nick Pierpoint 28.05.2013, 06:59
quelle

11 Antworten

7

Vor ein paar Jahren erschien eine wirklich gute Parabel in Joels Diskussionsgruppe zu diesem Thema. Die Geschichte heißt Warum ich Frameworks hasse .

    
Bill the Lizard 23.01.2009, 16:34
quelle
12

Oh ja!

In meinem letzten Job, der an einem ziemlich großen Projekt arbeitete, hatten wir ein Architekturteam, das den gesamten Rahmen, den wir verwendeten, einrichtete. Sie entwarfen einen benutzerdefinierten ORM (ca. 2000, Hibernate war nicht so allgegenwärtig wie heute) und ein benutzerdefiniertes RCP-Framework basierend auf Swing.

Das ORM war nicht so schlimm. Sie waren nur zu sehr über zirkuläre Abhängigkeiten besorgt. In einigen Fällen hatten wir eine ziemlich schlechte Zeit, unser Domänenmodell auszudrücken, da das Unternehmen zirkuläre Abhängigkeiten benötigte (Geschäftsobjekte konnten beide Wege zwischen verschiedenen Verwaltungseinheiten durchlaufen).

Der Swing-Rahmen war die Hölle. Sie versuchten, ein Komponentenmodell zu implementieren, das etwas wie ein hierarchischer Controller aussah. Auf dem Papier sah es wirklich gut aus: Sie können Komponenten verwenden, die wiederverwendet werden können. Modell, Ansichten und Controller waren klar getrennt. In Wirklichkeit bot das Framework jedoch keine ausreichende Flexibilität. Daher mussten wir Referenzen auf JComboBox beibehalten, um die Daten durch die Abstraktionsschichten zu bekommen. Wir mussten 4-5 Klassen für jedes kleine Stück UI schreiben. In einigen Fällen dauerte es Tage, bis ein Kontrollkästchen in einem Formular hinzugefügt wurde. Das Debugging war schrecklich, da der Prozessablauf für jede einfache Operation 15-20 Klassen durchlief. Erstaunlicherweise waren die Auftritte in Ordnung.

Schlimmste Sache, jede Swing-Komponente wurde in eine Abstraktionsschicht gewickelt, "falls wir das UI-Toolkit ändern wollen"!

    
Guillaume 23.01.2009 14:51
quelle
7

Ich dachte immer Diese Hello World-Implementierung war auch gut.

    
DCookie 23.01.2009 16:51
quelle
6

An jedem Ort, an dem ich in den letzten fünf Jahren gearbeitet habe!

Meine offiziellen Berufsbezeichnungen haben in den letzten sechs Jahren "Architekt" enthalten, aber an einem mürrischen Tag bin ich eher ein Anti-Architekt, an weniger mürrischen Tagen bin ich ein "minimalistischer Architekt".

Wenn es keinen guten und offensichtlichen Grund für eine Komponente, ein Framework oder ein Feature gibt, dann kann ich es fallenlassen!

In den Fällen, in denen ich überstimmt worden bin, haben sich die zusätzlichen architektonischen Besonderheiten immer als der größte Problembereich herausgestellt.

    
James Anderson 23.01.2009 15:11
quelle
5

Die Firma, für die ich arbeite, erstellt eine Anwendung mit einer SQL Server-Backend-Datenbank. Eine der Haupttabellen muss sechs Mal mit sich selbst verbunden werden, bevor sinnvolle Daten daraus hervorgehen!

    
user7094 23.01.2009 14:49
quelle
5

Dies war vor kurzem auf reddit, mit einem guten "yo daug" Witz.

Einführung: RequestProcessorFactoryFactory

Reddit-Diskussion hier

    
Yoni Roit 23.01.2009 15:16
quelle
3

Ein Freund von mir arbeitet in einem großen DB, wo alles von der benutzerdefinierten Klasse "Any" abstammen muss

/ schaudern

    
annakata 23.01.2009 17:25
quelle
2

Wenn Sie Joels Artikel über Architecture Astronauts ( Live Mesh one ) nicht gelesen haben Ich empfehle es - es ist eine gute Lektüre über dieses Thema.

    
Rob Ringham 23.01.2009 14:55
quelle
0

Mein Favorit ist "Auto-Architektur". Im Grunde nur eine Reihe von Regeln, die, wenn Sie der Architektur folgen, korrekt Platz finden ..... anscheinend.

Dies führt dazu, dass jedes Objekt eine Schnittstelle hat, unabhängig davon, ob es Abstraktion und eine Factory (keine neue () für Sie!) für JEDEN einzelnen Dienst ... seufzt benötigt.

    
Quibblesome 23.01.2009 16:56
quelle
0

Nein.

Sollte die Architektur nicht den Anforderungen untergeordnet sein?

    
Cade Roux 23.01.2009 17:23
quelle
0

Mein Lieblingsärgernis sind "Architekten", die relationale Konzepte nicht verstehen und versuchen, Dinge auf eine objektartige Weise funktionieren zu lassen, wenn Datenbanken satzbasiert besser abschneiden und so gestaltet sein sollten. (Datenbanken sollten nicht von objektorientierten Programmierern entworfen, sondern von Datenbankspezialisten entworfen werden.) Und Architekten, die es für "eleganter" halten, mehrere Dinge in eine Hauptbasistabelle zu legen (Overgeneralisierung) und dann über 100 zu haben Fremdschlüssel zu dieser Tabelle und jede Abfrage, die auf sie verweist, und ein großer Albtraum der Leistung (sowie ein lächerlicher Prozess, um einen Datensatz zu löschen).

    
HLGEM 23.01.2009 18:26
quelle

Tags und Links