IOSP Plugin für Rider

Update 22.06.2026: Inzwischen gibt es den IOSP Analyzer für folgende Plattformen/Sprachen:

  • JetBrains Rider, C#
  • JetBrains ReSharper, C#
  • Roslyn Analyzer (Visual Studio Code), C#
  • JetBrains Idea, Java
  • JetBrains PyCharm, Python

Die unten beschriebene Installation und Konfiguration ist in den JetBrains IDEs jeweils gleich.

——————-

Schon seit längerem gibt es meinen Roslyn Analyzer zur Erkennung von IOSP Verletzungen. Zum einen habe ich diesen aktualisiert, zum anderen gibt es nun auch ein Plugin für Rider.

Die Integration in Rider hat zahlreiche Vorteile. Vor allem ist es nun viel einfacher, den Analyzer zu konfigurieren. Dazu gibt es in Rider, nach Installation des Plugins, eine Settings Seite. Auf der können folgende Einstellungen vorgenommen werden:

  • Metric – Hierüber kann bestimmt werden, wie gravierend die IOSP Verletzung sein muss, um sie als Warnung anzuzeigen.
  • Testmethoden ausklammern – Über eine simple Checkbox können nun Testmethoden von der Analyse ausgeschlossen werden.
  • Namespaces ignorieren – Eine Liste von Namespaces kann angelegt werden, deren Methoden in der Analyse ignoriert werden. Hierbei wird unterschieden zwischen Namespaces im
    • Produktionscode vs.
    • Testcode

Für Tests stehen somit zwei Varianten zur Verfügung: entweder man klammert Tests komplett von der Analyse aus oder man hinterlegt Namespaces, die ignoriert werden sollen. Für Tests sind das mindestens die Namespaces der verwendeten Test- und Mockframeworks

IOSP Analyzer Plugin Settings

Zusätzlich kann über Settings – Editor – Inspection Settings – Inspection Severity – C# – IOSP Violation eingestellt werden, ob die Verletzungen als Fehler, Warnung, Suggestion oder Hint angezeigt werden sollen.

IOSP Violation Severity

Das Plugin ist über den JetBrains Marketplace verfügbar. Die Installation erfolgt folgendermaßen:

  • Gehe in deiner IDE zu Settings – Plugins
  • Wähle oben Marketplace
  • Suche nach IOSP
  • Gehe rechts auf Install
IOSP Analyzer Plugin Install

Rider/Idea/PyCharm etc. weisen dich dann im Code auf Verletzungen des Integration Operation Segregation Principle (IOSP) hin.

In den Standardeinstellungen werden Verletzungen als Warnung angezeigt. Das bedeutet, der Methodenname wird farblich hervorgehoben.

Rider IOSP Analyzer

In der Abbildung sieht man, dass der Name der Methode, hier „Start“, farblich hervorgehoben ist. Ferner wird beim Mauszeiger ein Tooltip angezeigt, aus dem hervorgeht, welche Anteile als Integration bzw. Operation gewertet wurde.

Die Metric = 2 zeigt an, dass es eine überschaubare Verletzung ist, die man ggf. ignorieren kann. Hier überwiegt der Integrationsanteil. Lediglich der Ausdruck 30*1000 ist einer Operation zuzuordnen. Nachfolgend der Quelltext:

				
					public void Start(Action<IAsyncEnumerable<Wertpapier>> onUpdate) {
    new TimerProvider().ExecutePeriodic(30*1000, () => {
        var symbole = _favoritenProvider.FavoritenLaden();
        var wertpapiere = _kursProvider.KurseErmitteln(symbole);
        onUpdate(wertpapiere);
    });
}

				
			

Das Problem könnte behoben werden, indem man den Ausdruck 30*1000 in eine Konstante herauszieht.

Fazit

Für mich ist das IOSP das wichtigste Clean Code Prinzip, um lesbaren und testbaren Code zu erreichen. Der IOSP Analyzer weist mich auf alle Stellen im Code hin, an denen das Prinzip verletzt ist. So kann ich gezielt auch Refactoringmaßnahmen die Codequalität verbessern.

Unsere Seminare

course
Clean Code Developer Basics

Prinzipien und Tests – Das Seminar wendet sich an Softwareentwickler, die gerade beginnen, sich mit dem Thema Softwarequalität auseinanderzusetzen. Es werden die wichtigsten Prinzipien und Praktiken der Clean Code Developer Initiative vermittelt.

zum Seminar »
course
Clean Code Developer Advanced

Mit Flow Design von den Anforderungen zum Clean Code – Lernen Sie mit Flow Design einen Softwareentwicklungsprozess kennen, der Sie flüssig von den Anforderungen zum Clean Code führt.

zum Seminar »
course
Clean Code Developer Trainer

Seminare als Trainer durchführen – Dieses Seminar wendet sich an Softwareentwickler, die ihr Wissen über die Clean Code Developer Prinzipien und Praktiken bzw. über Flow Design als Trainer an andere weitergeben möchten.

zum Seminar »

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

de_DEGerman