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

Docker
course
Docker Grundlagen

Automatisiertes Testen im Kontext von ASPICE – Training für Softwareentwickler, die lernen möchten, Software Testing Automotive SPICE-konform durchzuführen.

zum Seminar »

Kommentar verfassen

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

de_DEGerman