Frage

Ich bin mir nicht sicher, ob es möglich ist, allgemeine Ratschläge zu diesem Thema zu geben, aber versuchen Sie es bitte.Es ist schwer, meinen Fall zu erklären, weil er zu komplex ist, um ihn zu erklären.Und genau das ist das Problem.

Es kommt mir vor, als ob ich immer wieder auf Situationen stoße, in denen ich versuche, einen Teil meines Projekts zu entwerfen, dabei aber so viele Dinge zu berücksichtigen sind, dass ich keinen Überblick darüber bekomme.

Gibt es allgemeine Tipps oder Ratschläge, wie ich mein System in kleineren Teilen betrachten kann?Wie finde ich kleinere Portionen, die separat gestaltet werden könnten?

War es hilfreich?

Lösung

Ihre wichtigsten Ziele sind:

  • Hoher Zusammenhalt:Code (Methoden, Felder, Klassen) innerhalb eines Teils/Moduls/einer Partition sollte intensiv interagieren;es sollte Sinn ergeben damit diese Elemente voneinander wissen.Wenn Sie feststellen, dass einige von ihnen nicht viel mit den anderen interagieren, gehören sie wahrscheinlich woanders hin oder sollten eine eigene Partition bilden.Wenn Sie feststellen, dass Code außerhalb intensiv mit der Partition interagiert und zu viel über deren Innenleben weiß, gehört er wahrscheinlich nach innen.Das typische Beispiel findet sich in OO-Code, der im prozeduralen Stil geschrieben ist, mit „dummen“ Datenobjekten und „Manager“-Code, der mit ihnen arbeitet, aber eigentlich Teil der Datenobjekte sein sollte.
  • Lose Kopplung:Interaktion zwischen Teile/Module/Partitionen sollten nur über enge, klar definierte und gut dokumentierte APIs erfolgen.Versuchen Sie, solche APIs zu identifizieren und herauszufinden, welcher Code für ihre Implementierung erforderlich ist und welcher Code sie verwendet.

Andere Tipps

Erstellen

ein Glossar.

Mit anderen Worten, identifizieren, die Bedingungen, die das Projekt Domain sinnvoll sind - nicht aus der Sicht des Programmierers, sondern von einem Benutzer, der mit der Materie vertraut ist

.

definieren Sie dann die verschiedenen Begriffe wie genau und diskret , wie Sie können. Eine gute Definition in dieser Form als eine Art Pseudo-Code dienen kann.

Da Sie nicht einmal die Domäne des Problems identifiziert haben, werde ich ein willkürliches Beispiel wählen. In einem Zivilpersonal System, könnten Sie Begriffe wie:

  • Billet : eine Dienstzeit (ab Startdatum Datum enden) zu einem bestimmten Grad und Schritt
  • Mitarbeiter : eine Reihe von Knüppeln mit einem bestimmten SSN
  • assoziiert
  • Klasse und Stufe : Zeile und Spalte in dem Bund allgemeinen Zeitplan

Und so weiter. Dies ist nicht funktionale Einheiten zu identifizieren, wie es klingt wie Sie versuchen zu tun, aber es ist ein guter Vorbereitungsschritt vor so tun, so dass Sie Ihre Funktionsschritte in gut definierten Bedingungen zum Ausdruck bringen können.

Es ist nützlich Problemdekomposition sowohl Top-down- und Bottom-up-Ansatz.

Wenn Sie Probleme haben, ein großes Problem in zwei aufzuteilen oder mehr kleineren Problemen, versucht die kleinsten möglichen Probleme zu denken, die gelöst werden muß. Sobald diese behandelt werden, können Sie beginnen, Möglichkeiten zu sehen, wie sie in größere Probleme zu kombinieren, wie Sie Ihr ursprüngliches großes Problem nähern.

Wenn ich mich Kopieren und Einfügen Teile des Codes mit minimalen Anpassungen Ich weiß, das ist eine „Partition“ und dann eine Klasse, Methode, Funktion erstellen, oder was auch immer.

Eigentlich ist der ganze objektorientierte Ansatz ist, was es überhaupt geht. Versuchen Sie denken an Ihre Anwendung als materielle Dinge, die Dinge zu tun. Schreiben Sie Pseudo-Code beschreibt, was die Dinge sind und was sie tun, ich eine Menge „Partitionen“ auf diese Weise finden.

Hier ist ein Versuch, eine Art wilder Vermutung.

Die Menschen in der Regel unterschätzen, wie lange es dauern wird ihnen die Arbeit zu tun. Wenn Ihr Projekt groß ist, dann ist es sehr wahrscheinlich, dass Sie mehrere Menschen brauchen, daran zu arbeiten, so dass Sie mit, dass die Planung im Auge versuchen. Jetzt kann eine Person zu erwarten nur einen Bereich in dem Kopf zu halten, so dass Sie ihm erklären, müssen Sie genau, welche Art von Aufgabe, die er tun soll.

Also ich würde sagen, Sie sollten versuchen, eine Stellenbeschreibung zu schreiben, so viel wie möglich für eine Person umfassen sollte ernsthaft konzentrieren. Wiederholen Sie, bis Sie Ihr Projekt in mehrere Teile zerbrochen man wollte. Als Vorteil, sind Sie bereit, Ihr Team zusammenzustellen. Aber wenn man die Teile sind klein herausfinden, vielleicht werden Sie noch in der Lage sein, es selbst zu tun.

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