Bild von Stefan Lieser
Stefan Lieser

IOSP Analyzer 0.2.0

IOSP Analyzer Example 1

Update 0.2.0 – 05.04.2024

Der IOSP Analyzer akzeptiert nun Aufrufe von ConfigureAwait innerhalb einer Integration.

Wird eine asynchrone Operation aufgerufen ist dies natürlich kein Verstoß gegen das IOSP. Will man diesen Aufruf jedoch mit ConfigureAwait konfigurieren, wurde dies bislang als Framework/Runtime Call gewertet und damit als Verstoß gegen das IOSP.

Die Ergänzung geht auf einen Fork des GitHub Repos zurück (siehe https://github.com/LambdaEcho/ccdanalyzers). Ein Pull Request an mich hätte es hier auch getan…

Das folgende Codebeispiel zeigt das Problem:

				
					public async Task<int> GetNumber_IntegrationOnlyWithConfigureAwait() {
    var list = GetList();
    var number = await FilterNumberAsync(list).ConfigureAwait(continueOnCapturedContext: false);
    return number;
}

private Task<int> FilterNumberAsync(IReadOnlyList<int> list) {
    int Value() {
        if (list.Count > 0) {
            return list[list.Count - 1];
        }
        return 0;
    }

    var task = Task.Run(Value);
    return task;
}

private static IReadOnlyList<int> GetList() {
    return new List<int>() { 1, 2, 3, 4 };
}

				
			

Es geht hier um Zeile 3: der Aufruf von ConfigureAwait aus der Klasse Task wurde bislang als IOSP Verstoß gewertet.

Für Anregungen und Hinweise sowie Verbesserungsvorschläge bin ich ganz offen! Schreib mir einfach eine Mail oder stelle einen Pull Request im Repo ein.

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 »
course
Clean Code Developer CoWorking

Online CoWorking inkl. Coaching –
Wir werden häufig gefragt, was man als Entwickler tun könne, um kontinuierlich dran zu bleiben am Thema Clean Code Developer. Unsere Antwort: Treffen Sie sich regelmäßig wöchentlich online mit anderen Clean Code Developern.

zum Seminar »

Kommentar verfassen

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

de_DEGerman