Unsere Lösungen,
ob Start-Up oder etabliertes Unternehmen

Business Process Management

Java

Testautomatisierung

Agile Methoden

Mobile- und Weblösungen

Business-Intelligence

vivir

IT-Sicherheit

Künstliche Intelligenz

viadee Themen

In unserem Blog finden Sie Fachartikel, Success-Stories, News, Messeberichte und vieles mehr... vor allem aber hoffentlich wertvolle Informationen, die Ihnen in Ihrem konkreten Projekt und in Ihrem Business weiterhelfen. Bei Fragen und Anregungen nehmen Sie gerne Kontakt zu uns auf. Bitte benutzen Sie dazu die Kommentarfunktion unter den Blogbeiträgen.

#region CleanCodeZone – warum ich „codeRegions“ in Java 10 haben will

18.07.17 12:30

Die Schlüsselworte #region und #endRegion erlauben in C# eine Meta-Code-Strukturierung zu spezifizieren, die etwa im Visual Studio in der Anzeige der Outline berücksichtigt wird. 

clean code
Konkret sieht das zum Beispiel so aus:
#region MyClass definition 
public class MyClass 
{ 
static void Main() 
{ 
} 
} 
#endregion
Beim Anzeigen der Outline erscheint „MyClass“ in der Übersicht. So eine wunderbare logische Art, Code gedanklich zu strukturieren und einem Leser Verständnishilfen zu geben, wünsche ich mir schon lange in Java. Robert C. Martin hat in Clean Code geschrieben, Code sollte „Top-Down“ strukturiert werden, wie ein Zeitungsartikel, und inhaltlich zusammen gehörende Teile sollten direkt hintereinander im Code folgen und vom Groben zum Feinen führen (Vgl. Robert C. Martin, „Newspaper metaphor“ in Clean Code, Chapter 4 „Formatting“).

Öffnet man die Outline in der IDE seiner Wahl, bleibt aber von einer solchen Strukturierung oft nicht viel übrig – insbesondere, wenn man standardmäßig Filter aktiviert hat, etwa „nur public Methoden anzeigen“ oder eine alphabetische Methodensortierung aktiv ist.

Eine #codeRegion könnte da sehr elegant helfen, die Struktur klarzumachen. Eine solche Outline sähe zum Beispiel so aus:

Outline CodeRegionZusätzlich könnte eine IDE eine Region beim Selektieren über die Outline matt farbig hinterlegen, so dass beim Lesen die Grenzen noch klarer erkennbar sind.

Wenn man versucht, Clean Code als Prinzip zu etablieren in einer Umgebung, in der bisher wenig damit gearbeitet wurde, kann man sogar noch einen Schritt weiter gehen und eine #codeRegion CleanCodeZone könnte in einer Legacy-Klasse an einer Stelle erst klein entstehen, „sauberen“ Code aufnehmen und sukzessive erweitert werden.




Eine kleine Erweiterung der Sprache – mit potentiell großer Clean-Code-Wirkung.
Das wäre mein Wunsch für Java 10!

Jetzt Blog abonnieren!
zum Blog
Christoph Meyer

Christoph Meyer

Diplom-Wirtschaftsinformatiker Christoph Meyer ist Senior Berater und Softwarearchitekt bei der viadee IT-Unternehmensberatung und seit 2006 in Kundenprojekten im Bereich Handel, Banken und Versicherungen unterwegs. Er ist Clean Code Evangelist und Kanban-Fan und hat mit den Schwerpunkten Backend-Security, Batchverarbeitung vom Host bis Spring und DevOps immer neue Seiten seiner Java-Leidenschaft entdeckt. Bewältigung von Legacy-Software mit Herstellung von Testbarkeit und großen Refactorings findet er spannend. Christoph gibt sein Wissen gerne in Workshops an Kunden, Kollegen und Studenten weiter. Christoph Meyer auf Twitter