More Effective C#
More Effective C#
Zusammenfassung:
Einleitung
Das Buch More Effective C# (Bill Wagner, 2017) ist die Fortsetzung des Kult-Ratgebers Effective C# und richtet sich an Entwickler, die die Grundlagen der Sprache bereits beherrschen und auf das nächste Level wechseln möchten. Im Gegensatz zu vielen Lehrbüchern lehrt dieses Buch keine Syntax – es lehrt das Denken eines professionellen C#-Programmierers. Der Autor, ein anerkannter Experte im Bereich .NET und Mitglied des C#-Entwicklerteams, teilt 50 konkrete Tipps (Items), die helfen, zuverlässigeren, leistungsfähigeren und wartbareren Code zu schreiben.
Worum es in dem Buch geht
Das Buch besteht aus 5 Teilen, die sich jeweils einem bestimmten Bereich der C#-Entwicklung widmen:
- Grundlagen der Arbeit mit Typen – wie man Klassen, Strukturen und Schnittstellen richtig entwirft und häufige Fehler vermeidet.
- Leistung und Optimierung – Arbeit mit Speicher, Garbage Collection, Asynchronität und Parallelität.
- LINQ und funktionale Programmierung – effiziente Nutzung von Abfragen, faulen Berechnungen und Unveränderlichkeit.
- Ausnahmen und Fehlerbehandlung – wie man zuverlässige Systeme mit Verträgen und Ausnahmen aufbaut.
- Moderne C#-Funktionen (bis Version 7.0) – Tupel, lokale Funktionen, Pattern Matching und andere Features.
Jeder Tipp (Item) ist ein in sich abgeschlossener Abschnitt, der in beliebiger Reihenfolge gelesen werden kann. Wagner listet nicht nur Regeln auf, sondern erklärt warum man so und nicht anders vorgehen sollte, und untermauert die Argumente mit Codebeispielen und Verweisen auf die interne Funktionsweise von .NET.
Für wen ist dieses Buch geeignet
Das Buch richtet sich an erfahrene Entwickler, die bereits seit mindestens einem Jahr in C# programmieren und mit realen Projekten zu tun hatten. Anfängern wird es schwierig erscheinen – der Autor setzt Kenntnisse über Delegaten, LINQ, asynchrone Programmierung und die Grundlagen der CLR voraus. Wenn Sie jedoch das Gefühl haben, dass Ihr Code „schmutzig“ geworden ist, oder Sie verstehen möchten, wie Sie typische Leistungsfallen vermeiden können, wird dieses Buch zu Ihrem Nachschlagewerk.
Was der Leser lernen wird
- Wie man unter Berücksichtigung von Semantik und Leistung richtig zwischen Klassen und Strukturen wählt.
- Warum das Vermeiden von veränderlichen Strukturen eines der Hauptprinzipien für zuverlässigen Code ist.
- Wie man async/await effektiv ohne Blockaden und Deadlocks einsetzt.
- Geheimnisse der Arbeit mit LINQ: wann man die verzögerte Ausführung und wann die sofortige Ausführung verwenden sollte.
- Wie man threadsicheren Code ohne übermäßige Synchronisation schreibt.
- Warum Ausnahmen nicht Teil des normalen Kontrollflusses sein sollten.
- Wie man die neuen Funktionen von C# 7.0 (Tupel, lokale Funktionen, ref returns) zur Vereinfachung des Codes nutzt.
- Methoden des Profilings und Benchmarkings zur Identifizierung von Engpässen.
Stärken
Praktische Ausrichtung. Jeder Tipp wird von echtem Code begleitet, der sofort im Projekt angewendet werden kann. Der Autor gibt keine abstrakten Ratschläge – er zeigt, wie sich eine bestimmte Konstruktion auf Leistung oder Lesbarkeit auswirkt.
Tiefes Verständnis der CLR. Wagner schaut oft „unter die Haube“ von .NET und erklärt, wie Garbage Collection, JIT-Kompilierung und Typisierung funktionieren. Dies hilft, fundierte Entscheidungen zu treffen, anstatt Mustern zu folgen.
Aktualität. Obwohl das Buch 2017 erschienen ist, bleiben die meisten Tipps für C# 8, 9 und 10 relevant. Die grundlegenden Prinzipien (Vermeidung von Allokationen, korrekter Umgang mit Ausnahmen, effiziente Nutzung von LINQ) veralten nicht.
Struktur. Das Buch lässt sich bequem als Nachschlagewerk nutzen – man kann einen beliebigen Abschnitt aufschlagen und erhält eine abgeschlossene Empfehlung. Jeder Item endet mit einer kurzen Zusammenfassung.
Empfehlung
Das Buch ist nützlich für:
- Middle- und Senior-Entwickler