Tipp: Code-Regionen

Hier können Artikel, Tutorials, Bücherrezensionen, Dokumente aller Art, Texturen, Sprites, Sounds, Musik und Modelle zur Verfügung gestellt bzw. verlinkt werden.
Forumsregeln
Möglichst sinnvolle Präfixe oder die Themensymbole nutzen.
Antworten
Gelöschter Benutzer
Beiträge: 92
Registriert: 26.02.2009, 22:09

Tipp: Code-Regionen

Beitrag von Gelöschter Benutzer »

Wer kennt das nicht? Schreibt man viel Code, so wird selbst die beste Kommentierung einfach unübersichtlich.

Hilfreich wäre es hier, wenn man einfach Bereiche erstellen könnte, die einfach beschreiben was an dieser Stelle steht und was dort passiert. Noch netter wäre es, wenn man diese Stellen ein- und ausklappen kann. Nicht nur das wir diese Idee nun kennen, kennt Visual Studio das auch.

Der Trick ist hierbei relativ simpel und umfasst an sich nur zwei Zeilen Platz:

Code: Alles auswählen

#pragma region Regionsname
#pragma endregion
Schon kann man Code zwischen den Zeilen besser organisieren (siehe Anhang für Visual Studio) und findet meistens besseren Überblick ;). Eine Verschachtelung von Regionen ist möglich und sehr einfach anzuwenden:

Code: Alles auswählen

#pragma region A
    #pragma region B
    #pragma endregion
#pragma endregion
Die "#pragma region"-Funktion
Die "#pragma region"-Funktion
pragma_region.png (4.11 KiB) 4359 mal betrachtet
Natürlich stellt man sehr schnell fest, dass jedes mal in Visual Studio - sofern wir #pragma schreiben - sofort ganz am Anfang der Zeile gerutscht wird. Dies können wir jedoch mit einem kleinen Trick beheben: Tab-Taste drücken bis es an die richtige Position ist.

Visual Studio erkennt diesen Einzug und wendet diesen entsprechend an (wie im Bild).

Ich hoffe nun, dass das Kommentieren nun einfacher und attraktiver wird - damit auch andere Quellcode eines Programmierers verstehen können :).
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Tipp: Code-Regionen

Beitrag von Alexander Kornrumpf »

Ich hoffe es ist ok, wenn ich nur mit einem nackten Link antworte, um die Diskussion in Gang zu bringen.

http://www.codinghorror.com/blog/archives/001147.html
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Tipp: Code-Regionen

Beitrag von Krishty »

codinghorror kann ich nur zustimmen. Ich bin nie in eine Situation gekommen, in welcher der Einsatz von Code-Folding (sei es automatisch oder durch #pragma region) nötig gewesen wäre:
  • Deklarationen von Klassen (und größeren Sub-Klassen) gehören eh immer in eigene Dateien.
  • Klassendeklarationen werden nicht durch Definitionen „verpestet“, selbige gehören nämlich in andere Dateien. Ist dies nicht möglich (Templates), reichen meist auch Kommentarzeilen (//------- …).
  • Funktionen werden einfach nicht übermäßig lang oder komplex, sonst hat man was falsch gemacht.
  • Es gibt die Suche, „finde alle Referenzen“, „Gehe zu Deklaration/Definition“ …
Von daher sehe ich nicht wirklich die Daseinsberechtigung für sowas …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Alexander Kornrumpf
Moderator
Beiträge: 2106
Registriert: 25.02.2009, 13:37

Re: Tipp: Code-Regionen

Beitrag von Alexander Kornrumpf »

Man muss allerdings zugestehen, dass deine Einwände C++ spezifisch sind. Leider hat man oft alles in einer Datei, wenn man andere Sprachen verwendet.
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: Tipp: Code-Regionen

Beitrag von Seraph »

Ich bin mir nicht sicher, aber soweit ich Patrick verstanden habe, geht es ihm um Kommentare. Wenn man z.B. fuer das naechstbeste Projekt eine Doku mittels Docu-Generator erstellen moechte, so koennen die Kommentare vor den jeweilgen Funktionen schon einige Zeilen in Anspruch nehmen. Die #pragma region Direktive koennte hier helfen die Uebersicht zu behalten.

Ansonsten halte ich allgemein die Direktive fuer C++ groesstenteils ueberfluessig, bei anderen Sprachen wie C# hingegen kann sie sehr hilfreich sein, sofern man sie sparsam einsetzt.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Tipp: Code-Regionen

Beitrag von Krishty »

Selbst dann dürfte es ohne #pragma gehen? Die IDE bietet das doch automatisiert an …
Code.png
Code.png (6.76 KiB) 4260 mal betrachtet
Edit: In C# ist es btw #region, nicht #pragma region.
Zuletzt geändert von Krishty am 02.03.2009, 15:30, insgesamt 1-mal geändert.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: Tipp: Code-Regionen

Beitrag von Seraph »

Und nun stell Dir vor Du hast eine Funktion die fuenf Parameter hat und Du beschreibst jeden Parameter, damit der Docu-Generator auch weiss, was mit jedem Parameter gemeint ist. Das waeren allein fuer die fuenf Parameter fuenf extra Zeilen.

Richtig, unter C# ist es nur #region. Aber moechtest Du wirklich, dass ich das fuer jede Sprache immer speziell dazu schreibe oder reicht es nicht einmal zu schreiben und jeder denkende Mensch adaptiert es fuer die entsprechende Sprache selbst? ;)
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Tipp: Code-Regionen

Beitrag von Krishty »

Mit dem Screenshot wollte ich eigentlich auf das „-“ neben dem Kommentar hinaus (da wo die Maus draufzeigt) – den kann ich damit auch zusammenklappen, egal ob er drei Zeilen lang ist oder tausend. Warum also noch explizit definieren und den Quellcode verpesten?

Das mit #region war ungeschickt ausgedrückt, sorry. Wenn es in anderen Sprachen nützlich ist (mag ja durchaus sein), dann sollte es auch irgendwo hier vorkommen – der Artikel bezieht sich aber explizit auf #pragma region und damit C++.
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Seraph
Site Admin
Beiträge: 1174
Registriert: 18.04.2002, 21:53
Echter Name: Steffen Engel

Re: Tipp: Code-Regionen

Beitrag von Seraph »

Pff, das naechste Mal nimm doch bitte einen roten Pfeil. :P Aber stimmt, gar nicht mehr daran gedacht, dass man Kommentare mittlerweile selbst einklappen kann. Na gut, ein Verwendungszweck weniger. Na gut, dann beschraenkt sich #region wohl wirklich auf nur sehr wenige sinnvolle Einsatzmoeglichkeiten.
Benutzeravatar
Krishty
Establishment
Beiträge: 8229
Registriert: 26.02.2009, 11:18
Benutzertext: state is the enemy
Kontaktdaten:

Re: Tipp: Code-Regionen

Beitrag von Krishty »

Ja, rückblickend nicht so toll, ist korrigiert :)

Wo sind die Windows-98-Zeiten hin, als der Cursor auf jedem Screenshot als mächtiger Pixelpfeil hervorprangte um den Massen ihren Weg zu weisen … heute ist er nurnoch ein winziger, blasser Hauch von Nichts auf dem pastellfarbenen Hintergrund der High-Res-Anwendungen …
seziert Ace Combat, Driver, und S.T.A.L.K.E.R.   —   rendert Sterne
Antworten