Wie viel Abstraktion ist zu viel?

In einem Objekt-orientierten Programm: , Wie viel Abstraktion ist zu viel? Wie viel ist genau richtig?

Ich war schon immer ein Nüsse-und-Bolzen Art von Kerl. Ich Verstand das Konzept, das hinter der hohen Ebenen der Kapselung und Abstraktion, aber immer fühlte instinktiv, dass Sie zu viel würde nur verwirren Sie das Programm.

Habe ich immer versucht zu Schießen, für einen Betrag von Abstraktion, die linke keine leeren Klassen oder Schichten. Und wo im Zweifelsfall, anstatt das hinzufügen einer neuen Schicht der Hierarchie, die ich versuchen würde-und passen Sie etwas in die bestehende Schichten.

Jedoch, vor kurzem habe ich seit der Begegnung mehr stark abstrahierte Systeme. Systeme, wo alles könnten, erfordern eine Darstellung, die später in der Hierarchie bekommt eine up-front. Dies führt zu einer Menge von leeren Ebenen, die auf den ersten Blick wie schlechtes design. Allerdings, auf den zweiten dachte, ich bin gekommen, zu erkennen, dass das verlassen der leeren Ebenen, gibt mehr Orte, um Haken in der Zukunft ohne viel refactoring. Es lässt Sie mehr Möglichkeiten, neue Funktionen hinzuzufügen, die auf den alten, ohne dabei annähernd so viel Arbeit zum anpassen der alte.

Den beiden Risiken dieser zu sein scheinen, können Sie die Ebenen, die Sie brauchen, falsch. Man würde In diesem Fall wind-up immer noch müssen, tun erhebliche Umgestaltung erweitern Sie den code und hätte noch einen Tonne nie benutzt Schichten. Aber je nachdem, wie viel Zeit verbringen Sie die ersten Abstraktionen, die chance zu Schrauben und die Zeit, die gerettet werden könnten, später, wenn Sie es richtig machen - es kann immer noch Wert, es zu versuchen.

Das andere Risiko, das ich denken kann, ist die Gefahr, über es zu tun und nie brauchen all die extra-Schichten. Aber ist das wirklich so schlimm? Sind extra-Klasse Schichten wirklich so teuer, dass es viel von einem Verlust, wenn Sie nie benutzt werden? Der größte Kosten-und-Verlust-hier wäre die Zeit, die verloren geht, vorne kommt mit den Schichten. Aber viel von dieser Zeit noch gerettet werden können, wenn später arbeiten kann man mit dem abstrahierten code eher als low-level-code.

Also Wann ist es zu viel? An welchem Punkt werden die leeren Ebenen und extra "brauchen könnten" Abstraktionen geworden overkill? Wie wenig ist zu wenig? Wo ist der sweet spot?

Gibt es irgendwelche verlässlichen Faustregeln, die Sie gefunden haben im Laufe Ihrer Karriere, die Ihnen dabei helfen zu beurteilen, die Höhe der Abstraktion benötigt?

  • Wie lange ist ein Stück Schnur??? 😉
  • Sollte CW IMHO, da Sie nicht haben, ein Antwort
  • Worrier Getan.
  • Warum Java-apps neigen dazu, mehr Abstraktionen im Vergleich zu C#?
  • abhängig von Sprachen, z.B. Pascal sagt, es hat eine Länge, aber intelligent (c) die Menschen wissen es nicht.
Schreibe einen Kommentar