Software Design Simplified - C# .NET Edition
An introduction to designing software for curious, driven engineers.
Stop me if this sounds familiar.
As you're coding, you find yourself thinking:
I know this code isn't right but I don't know a better way.
Well, there is a better way. The problem is, software design is hard.
And what's worse, most technical books that try to explain this subject are boring, long, waffly, vague and use unrealistic toy examples.
This is the book I wish I'd had when I was a junior software engineer.
Single sentence explanations your Mum could (nearly) understand. I ditch the jargon and complicated fancy words.
I've made every word earn it's keep. No stories about obscure historical figures, no filler fluff, no longwinded rants.
A technical book with just enough personality to keep you reading, but not so much that it obscures the point.
I use one realistic example throughout the book to teach design principles. No weird UML diagrams. No useless abstract analogies.
Explanations of coupling, encapsulation, polymorphism and abstraction in the context of a real web application.
Written in a style designed for modern attention spans and modern languages. Examples are in C# .NET.