
But at the end of the section, the book says:
I do not usually run to pooling as a default solution. As a general-purpose mechanism, it is clunky and error-prone. However, you may find that your application will benefit from pooling of just a few types.
What kind of things do you pool in Unity?Framework Design Guidelines - how to design libraries that anyone from Jon Skeet to Mort can use successfully. The focus is on library design but I have found it valuable for day to day coding.
Effective C# - how to implement the usual idioms properly.
CLR via C# - this is a dry read but has answers to many questions I would have never thought to ask.
C# in Depth - excellent coverage of language features from C#1 to C#5.
Writing High Performance .NET Code - the title says it all
Pluralsight courses:
https://app.pluralsight.com/library/courses/csharp-applying-... - excellent coverage of the functional core/imperative shell approach to program design. If you know Haskell you can probably skip this.
https://app.pluralsight.com/library/courses/csharp-design-st... - Jon Skeet implements the GoF patterns.
Visual Studio addins:
ReSharper - the diagnostics are quite valuable
SpecFlow - support for the Gherkin DSL for BDD testing.
Tools:
PerfView
