Laden...

Übersichtlichkeit im Programmcode

Erstellt von Rico913 vor 3 Jahren Letzter Beitrag vor 3 Jahren 1.398 Views
R
Rico913 Themenstarter:in
95 Beiträge seit 2020
vor 3 Jahren
Übersichtlichkeit im Programmcode

Hi,

ich arbeite mich gerade ein und habe meine ersten 500 Zeilen fertig und es sollen noch mehr hinzukommen... 😃

Aber so langsam verliere ich den Überblick - gerade, wenn ich Passagen suche.

Gibt es eine sinnvolle Methode Programmabschnitte zu sortieren oder gar zusammenzufassen? Oder kommentiert ihr nur? Wie handhabt ihr das?

B
22 Beiträge seit 2018
vor 3 Jahren

Hallo Rico913,

Generelle Optionen die dir Visual Studio bereitstellt:

1.) #region

Hiermit kannst du ganze Codeblöcke Gliedern.

2.) <summary>

Zum beschreiben einer Methode um gleich von außen zu sehen welche Funktion sie erfüllt ohne den Methodenkörper zu öffnen.

Persönliche Präferenzen:

Meine persönliche Präferenzen unterscheiden sich teilweise drastisch von anderen. Sie erleichtern es mir meinen Code besser zu lesen. Ob es bei dir auch hilft muss du selber rausfinden 😉

1.) Ich vermeide Kommentare so gut es geht. Code sollte selbsterklärend sein. Nichts ist für mich schlimmer als Code zu lesen der mehr Kommentare als eigentlichen Code enthält.

2.) Ich strukturiere jede Klasse gleich. Von oben nach unten

  • Eigenschaften, Felder, Enums, Structs, usw...
  • Konstruktoren
  • Methoden

3.) Ich versuche die Methoden immer in der Reihenfolge von unten nach oben zu schreiben in der Sie aufgerufen werden. Bsp. Start() -> DoWork() -> Dispose(). Start() steht über DoWork(). DoWork() steht über Dispose(). Methoden die mehrfach aufgerufen werden schreibe ich dann unter Dispose().

4.) Ich nutze immer die geschweiften Klammern auch wenn sie nicht immer notwendig sind.

Bsp.:


f (true) 
{
    DoWork()
}

statt


if (true)
    DoWork()

Zum Schluss noch Tipps:

1.) Orientiere dich an den Codekonventionen.

2.) Orientiere dich an den Namenskonventionen.

3.) Setzte dich mit dem Begriff Clean Code auseinander.

Hoffe das ein oder andere hilft dir 🙂

Grüße

Brymax

C
2.121 Beiträge seit 2010
vor 3 Jahren

Nichts ist für mich schlimmer als Code zu lesen der mehr Kommentare als eigentlichen Code enthält.

Für andere ist es schlimmer, sich ständig zusammenreimen müssen was Code tut und warum es es auf diese Weise tut, statt es in Worten zusammengefasst zu lesen.

16.806 Beiträge seit 2008
vor 3 Jahren

Das wichtigste Werkzeug in .NET um Übersichtlichkeit herzustellen: der korrekte Aufbau von Namespaces.
Verwenden von Namespaces.
Namespaces sind die absolute Basis für Code Architektur in .NET. Das muss man als .NET Entwickler im Griff haben.

#regions gelten mittlerweile als Code Smell, weil sie leider entgegen der eigentlichen Planung keine Übersichtlichkeit herstellen, sondern vor allem verdecken.
Regions are Code Smell Indicators

PS: ich finde Code-Kommentare sehr wichtig.
Nicht was der Code macht, sondern warum.

B
22 Beiträge seit 2018
vor 3 Jahren

@chillic:

Genau deswegen habe ich geschrieben und explizit drauf hingewiesen das es sich um meine persönlichen Präferenzen handelt und das diese drastisch abweichen können. Wenn du es bevorzugst steht es dir frei gerne deinen Code zu Kommentieren wie es dir beliebt 🙂

Vielleicht habe ich es aber auch ein wenig zu drastisch geschrieben.

Ich habe in meinem Arbeitsumfeld festgestellt das Kommentare wie Konfetti in den Code geschrieben werden. So kommt auf 10 Zeilen Code 10 Zeilen Kommentare. Für mich macht es den Code schlecht leserlich und hat keinen Mehrwert für mich.

Bsp.:


// Prüfen ob foo "A" enthält
if(foo.Contains('A'))
{
    // Tu was
    DoWork();
}

Ich halte Kommentare nicht für Sinnlos oder Überflüssig. Nur sollte man sich Gedanken machen wann ein Kommentar einen nutzen für den nächsten Programmierer oder für einen selbst hat bevor man ihn im Code belässt.

@Abt:

Der Beitrag mit den regions ist interessant. Mir persönlich helfen Sei ungemein. Ist das jetzt eine grundsätzliche Empfehlung regions nicht oder nur sehr begrenzt zu nutzen oder eine persönliche Präferenz der Entwickler die den Beitrag geschrieben haben?

16.806 Beiträge seit 2008
vor 3 Jahren

Ist das jetzt eine grundsätzliche Empfehlung regions nicht oder nur sehr begrenzt zu nutzen oder eine persönliche Präferenz der Entwickler die den Beitrag geschrieben haben?

Die Community-Stimme dazu ist: dont use regions.

#regions sind mittlerweile in der Community auch quasi ein Meme geworden:
Make methods, not regions.
#NeverTrustAPersonWho who puts fields, constructors, methods, properties, and events in separate regions. ESPECIALLY WHEN THEY ARE EMPTY.

Aber ja, ich hab auch noch einige Region-Leichen in alten Code-Repositories.
Wir hatten damals einen C++ Guru, der meinte er muss die C# Richtlinien des Unternehmens schreiben - und überall Regions vorschreiben.
Da hat man sich den Quatsch angewöhnt.

Sind immer noch die schlimmsten C# Richtlinien, die ich nun in weit über 15 Jahren C# gesehen hab.

B
22 Beiträge seit 2018
vor 3 Jahren

Dann sollte ich mich vielleicht mit #regions auch ein bisschen zurückhalten. Da wir nur für intern entwickeln und nach außen hin kein Code gelangt bekommt man solche Empfehlungen leider nicht so schnell mit.

2.078 Beiträge seit 2012
vor 3 Jahren

Ich kann das mit den Regions nur bestätigen.

Zum Einen brauchst Du mehr Zeit um das zu finden, was Du suchst, da Du die Regions öffnen musst.
Wenn eine Klasse von sich aus nicht übersichtlich ist, dann hat die Klasse ein Problem, das man nicht mit Regions verbergen sollte.

Außerdem hab ich schon öffter Fälle gesehen, bei dem irgendwann Mal eine Region nicht beachtet wurde und dann hat man plötzlich Member in Regions, die da nicht hin gehören.
Das Ergebnis: Übersicht war komplett zerstört und wenn ich keine Zeit zum aufräumen hatte (also meistens), habe ich mir eben mit der Member-Übersich im Solution-Explorer beholfen.
Ach und ganz schlimm sind die Regions in einer Methode, die nicht Mal im selben Scope beginnen und enden 😦

Regions mögen am Anfang vielleicht ein bisschen übersichtlicher sein, aber das bleibt eigentlich nur langfristig so und man die gleiche Übersicht auch anders erreichen.

By the way:
https://marketplace.visualstudio.com/items?itemName=Gweltaz27.IHateRegions

Und ich mag den Landwerth 😄

C
2.121 Beiträge seit 2010
vor 3 Jahren

@Brymax
Kommentare wie du sie im Beispiel zeigst, sind natürlich unsinnig und lästig.
Etwas das schon dasteht, braucht man nicht nochmal erklären.

Aber es gibt auch tatsächlich die Ansicht, Kommentare sollten allgemein gar nicht vorkommen. Ich weiß nicht wie solcher Code dann aussieht. Wird da wirklich gar nichts beschrieben, nicht was passiert, nicht warum es passiert, keine Querbezüge oder woher Werte stammen, warum irgendetwas gerade nötig ist oder nicht? Das halte ich für eine Katastrophe.

Irgendwo, war eventuell in diesem Forum, gab es einmal die Frage ob ein total alberner überlanger Bezeichner gerechtfertigt wäre, um blos keinen Kommentar schreiben zu müssen.
Das ist dann eindeutig die falsche Denkweise.

bekommt man solche Empfehlungen leider nicht so schnell mit

Dass ich #region nicht gerne nutze habe ich nicht durch eine Empfehlung herausgefunden, sondern durch meine eigene Erfahrung mit ihnen 😉