Wie organisieren Sie große Code-Dateien?

7

Ich bin mir zunehmend bewusst, dass mein Code in jeder einzelnen Datei oft Hunderte von Zeilen umfassen kann, und obwohl ich weiß, dass die Implementierung solide sein kann, fühlt sie sich immer noch chaotisch und unorganisiert an.

Ich verstehe, dass es Situationen gibt, in denen viel Code notwendig ist, aber was ist der beste Weg, alles zu organisieren?

Ich habe darüber nachgedacht, Variablen von Methoden zu trennen, private s von public s und internals , aber ich will nicht, weil ich nicht umhin kann zu denken, dass die Komponenten von ONE Klasse in EINE Datei gehören .

Diese ganze Sache ist komplizierter, wenn ich mit dem Codebehind eines WPF-Fensters arbeite, das immer sehr schnell mit einer exponentiellen Rate zu einer riesigen Unordnung zu wachsen scheint.

Außerdem: C # hat ein Schlüsselwort namens partial , mit dem Sie eine Klasse über eine beliebige Anzahl von Dateien aufteilen können, ohne die Funktionalität zu beeinträchtigen. Mir ist jedoch aufgefallen, dass Microsoft anscheinend nur partial verwendet, um generierten Code vor Ihnen zu verstecken (Winforms / WPF). Dies führt mich zu der Frage, ob das Teilen einer Klasse einfach weil sie viele Zeilen enthält, eine legitime Verwendung von partial ist. ist es?

Danke

    
Nobody 23.09.2010, 13:43
quelle

7 Antworten

13

Trennen Sie Ihren Code in Verantwortlichkeiten. Definieren Sie für jede Verantwortung einen einzelnen Typ. Das heißt, folgen Sie dem Prinzip der einheitlichen Verantwortlichkeit . Dies führt zu kleineren Codeeinheiten, von denen jede eine sehr spezifische Funktion ausführt. Dies führt nicht nur zu kleineren Dateien, sondern auch zu einem besseren Design und einer besseren Wartbarkeit.

    
Kent Boogaart 23.09.2010, 13:48
quelle
9

Wenn Ihre Dateien groß sind, weil sie eine einzelne Klasse / Struktur enthalten, die groß ist, dann ist dies in der Regel (aber nicht immer) ein Hinweis darauf, dass Ihre Klasse sich mit mehreren Problemen beschäftigt und in eine Reihe kleinerer, mehr restrukturiert werden kann spezialisierte Klassen.

    
Paul Ruane 23.09.2010 13:49
quelle
5

Wenn ich Sie verstehe, ist Ihr Hauptproblem, dass Ihre Formulare zu groß werden, was zu den Klassen für jene Formulare führt, die zu viel Code enthalten, was ganz normal ist, wenn Ihre Formulare nicht sehr einfach sind. Um dies zu minimieren, verwenden Sie User Controls , wenn Sie die Steuerelemente in andere Klassen verschieben Sie verschieben den Code auch in andere Klassen.

Es kann manchmal ein wenig schwieriger werden, zwischen den Steuerelementen zu kommunizieren, aber das wird normalerweise mehr als wettgemacht durch die Tatsache, dass der Code in jeder Klasse viel einfacher zu verstehen ist.

    
Hans Olsson 23.09.2010 13:56
quelle
2

Ich neige dazu, Eigenschaften, Konstruktoren, Methoden und Hilfsmethoden (private Methoden) zusammen mit Regionen zu gruppieren. Wenn ich viele Methoden habe, erstelle ich mehr Regionen basierend auf dem was sie tun (besonders gut für Überladungen). Und wenn Sie von Überlastungen sprechen, versuchen Sie, Ihren Code mit optionalen Parametern zu minimieren.

Soweit ich partiell verstehe, bedeutet dies, dass die Klasse in zwei separaten Dateien existiert. Webforms und Steuerelemente sind partiell, weil der andere "Teil" der Datei die dazugehörige Datei as [p | c] x ist.

    
Brad 23.09.2010 13:48
quelle
1

Ich gehe von der Theorie aus, dass wenn man eine ganze Methode auf einem Bildschirm nicht sehen kann (dh man scrollt), man die Methode in weitere Methoden aufteilen sollte - entweder in derselben Klasse oder wenn der Code mehr verwendet wird als einmal in eine Hilfsklasse.

    
Madeleine 23.09.2010 13:50
quelle
0

Wir benutzen stylecop. Es hilft ein wenig, weil es eine Struktur auf Ihrem Code erzwingt und eine Reihenfolge für was sollte wo angezeigt werden. So können Sie sich in größeren Dateien ein wenig intuitiver zurechtfinden.

    
AJM 23.09.2010 14:49
quelle
0

Um die Lesbarkeit des Codes zu verbessern: Sie können den Regionsblock verwenden: Ссылка . Um die Struktur und das Design Ihres Codes zu verbessern, konsultieren Sie einige Fachbücher.

    
BKSpurgeon 22.01.2016 01:56
quelle