Frage

Ich arbeite an einer 10 Seite Website mit einem Datenbank-Backend. Es gibt mehr als 500 Objekte im Einsatz und versuchen, die MVP-Muster in ASP.Net zu implementieren. Ich bin die Code-Ausführung aus einer einzigen Seite Tracing, meine Finger für etwa 40 Minuten auf F-11 in Visual Studio gewesen sind, es scheint kein Ende zu sein, möglicherweise 1000+ Methode erfordert eine Web-Seite! Wenn es nur 50 Objekte, die eine Sache sein würden, aber die Ausführung von Code Schlangen durch all diese Objekte genau wie Millionen von Ameisen in ihrem riesigen Erdhaufen Hause hektisch woring, mit dem Objekt Tunnel durchsiebt. Daher ist ein neues anti-Muster ist geboren: Antfarm .

Antfarm ist auch als "OO-Madnes", "OO-Fever", OO-ADD oder einfach Design-Muster-Junkie bekannt.

Dies ist nicht das erste Mal, dass ich gesehen habe, noch meine Mitarbeiter in anderen Unternehmen. Es scheint, dass dieser Stil aktiv propogated wird, oder in jedem Fall ist ein Missverständnis der zahlreichen OO / DP GOSPELS geht um ...

Ich mag ein anti-Muster auf das anti-Muster einzuführen: GST oder "Get Stuff Done" AKA "Get Sh ** done" AKA GRD (GetRDone). Dieses Muster konzentriert sich auf genau das, was er sagt, immer Sachen gemacht, auf einfache Art und Weise. Ich kann versuchen, es zu skizzieren mehr in einem späteren Beitrag, oder geben Sie bitte Ihre Ideen zu diesem Antidot Muster teilen.

Wie auch immer, ich bin in der Mitte eines großen Beispiel Antfarm anti-Muster, wie ich schreibe (als Bonus gibt es keine Dokumentation oder Kommentare ist). Bitte teilen Sie Gedanken darüber, wie diese anti-Muster so prevelant geworden ist, wie wir es vermeiden können, und wie kann man mit diesem Muster in einem Live-System rückgängig zu machen oder sich ein mit! Arbeiten müssen

War es hilfreich?

Lösung

Ich denke, dass Parnas ziemlich genagelt es in Auf der Kriterien in Decomposing Systemen in Module verwendet werden. Jedes Modul sollte eine Design-Entscheidung, eine auszublenden, die sich in Zukunft ändern kann. In der Regel ist ein Modul, mit nichts zu verbergen in der Regel nur Overhead. Er war nicht über Klassen spricht genau, aber ich denke, die Argumentation gilt nach wie vor.

Andere Tipps

Wenn ist in der Tat aufgrund Over-Design (und es klingt wie es), dann sind hier einige Synonyme für Sie:

Gas-Fabrik
Rube Goldberg Maschine
Heath Robinson contraption

Aber meine persönlichen Namen für diesen „versuchen, zu F # $% 3n hart“. Mein Beileid aus.

Prost Adrian

Viele Dateien, wo man tun würde. Böse. 500 Objekte für 10 Web-Seiten scheint ein verrücktes Verhältnis. Haben Sie Ausführen von Code-Analyse auf der Lösung in Betracht gezogen? Vielleicht haben Sie einige interessante Statistiken geben mit sich zu wehren.

Auch würde ich die anti-anti-Muster KISS nennen.

Danke Glomek der Artikel ist für einen interessanten Problem-Raum, auf den Kern zu gehen, was OO, das heißt, wie Sie Ihre Objekte entwerfen ... für Erfolg oder Misserfolg, danke für den Link.

Oh ja, der anti-Musterentwurf „Ameisenhügel“ genannt werden könnte, das ist eine klarere Beschreibung denke ich. Ich glaube, es ist jetzt ziemlich prevelant ist, und scheint zu wachsen ... Ich frage mich immer noch, wie wir weg von ihm in der Regel nicht erhalten, und schreiben klarer, einfacher Code, der die Arbeit mit nur minimaler Komplexität getan wird benötigt .

Das Problem hierbei ist, dass Ihr Design-Muster ist, selbst nicht-OO. Beginnen Sie mit einem nicht-OO-Muster, versuchen, es zu implementieren als „Objekte“, beenden Sie mit einem vermasseln.

Nur weil das System in einem OOPL geschrieben wird das System nicht OO machen.

Wenn man bedenkt, dass eine Ameisenfarm ein effizienter Weg ist ein komplexes Problem Raum (die Ameisenfarm) durch die Verwendung von einfachen Mitteln (die Ameisen) zu erkunden, dann beginnen diese entschieden weniger anti-patternish zu suchen.

Critiques von OOP auf der Grundlage der Komplexität von ‚alles im Kopf sitz‘ immer ignorieren, dass (a) sein hart alle etwas in Ihrem Kopf zu passen (unabhängig davon, ob seine OO oder nicht) und (b) dass OO aktiv die Notwendigkeit, alles im Kopf zu haben, reduziert sowieso

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top