Heuristics for Software Engineering
Mark Seemann

#Software_Engineering
How to Reduce Code Complexity and Develop Software More Sustainably
"Mark Seemann is well known for explaining complex concepts clearly and thoroughly. In this book he condenses his wide-ranging software development experience into a set of practical, pragmatic techniques for writing sustainable and human-friendly code. This book will be a must-read for every programmer."
--
Scott Wlaschin, author of
Domain Modeling Made Functional
Code That Fits in Your Head offers indispensable, practical advice for writing code at a sustainable pace and controlling the complexity that causes projects to spin out of control.
Reflecting decades of experience helping software teams succeed, Mark Seemann guides you from zero (no code) to deployed features and shows how to maintain a good cruising speed as you add functionality, address cross-cutting concerns, troubleshoot, and optimize. You'll find valuable ideas, practices, and processes for key issues ranging from checklists to teamwork, encapsulation to decomposition, API design to unit testing.
Seemann illuminates his insights with code examples drawn from a complete sample project. Written in C#, they're designed to be clear and useful to anyone who uses any object-oriented language including Java , C++, and Python. To facilitate deeper exploration, all code and extensive commit messages are available for download.
If you've ever suffered through bad projects or had to cope with unmaintainable legacy code, this guide will help you make things better next time and every time.
Table of Contents
PART I: Acceleration
Chapter 1 Art or Science?
Chapter 2 Checklists
Chapter 3 Tackling Complexity
Chapter 4 Vertical Slice
Chapter 5 Encapsulation
Chapter 6 Triangulation
Chapter 7 Decomposition
Chapter 8 API Design
Chapter 9 Teamwork
PART II: Sustainability
Chapter 10 Augmenting Code
Chapter 11 Editing Unit Tests
Chapter 12 Troubleshooting
Chapter 13 Separation of Concerns
Chapter 14 Rhythm
Chapter 15 The Usual Suspects
Chapter 16 Tour
"...software is hard; and much of the last seven decades have been spent trying to find ways to make it a little bit easier. What Mark has done in this book is to gather all the best ideas from those seven decades and compile them in one place.
More than that, he has organized them into a set of heuristics and techniques, and placed them in the order that you would execute them. Those heuristics and techniques build on each other, helping you move from stage to stage while developing a software project."
—Robert "Uncle Bob" Martin
"We progress in software by standing on the shoulders of those who came before us. Mark's vast experience ranges from philosophical and organisational considerations right down to the precise details of writing code. In this book, you're offered an opportunity to build on that experience. Use it."
--Adam Ralph, speaker, tutor, and software simplifier, Particular Software
"I've been reading Mark's blogs for years and he always manages to entertain while at the same time offering deep technical insights. Code That Fits in Your Head follows in that vein, offering a wealth of information to any software developer looking to take their skills to the next level."
--Adam Tornhill, founder of CodeScene, author of Software Design X-Rays and Your Code as a Crime Scene
"My favorite thing about this book is how it uses a single code base as a working example. Rather than having to download separate code samples, you get a single Git repository with the entire application. Its history is handcrafted to show the evolution of the code alongside the concepts being explained in the book. As you read about a particular principle or technique, you'll find a direct reference to the commit that demonstrates it in practice. Of course, you're also free to navigate the history at your own leisure, stopping at any stage to inspect, debug, or even experiment with the code. I've never seen this level of interactivity in a book before, and it brings me special joy because it takes advantage of Git's unique design in a new constructive way."
--Enrico Campidoglio, independent consultant, speaker and Pluralsight author
"Mark Seemann not only has decades of experience architecting and building large software systems, but is also one of the foremost thinkers on how to scale and manage the complex relationship between such systems and the teams that build them."
--Mike Hadlow, freelance software consultant and blogger
"Mark writes, 'Successful software endures'--this book will help you to write that kind of software."
--Bryan Hogan, software architect, podcaster, blogger
"Mark has an extraordinary ability to help others think deeply about the industry and profession of software development. With every interview on .NET Rocks! I have come away knowing I would have to go back and listen to my own show to really take in everything we discussed."
--Richard Campbell, co-host, .NET Rocks!
Mark Seemann, a former economist, found a second career as a programmer and has worked as a web and enterprise developer since the late 1990s. He is a Certified Rockstar Developer and has written a Jolt Award-winning book about Dependency Injection, given more than a hundred international conference talks, and authored video courses for both Pluralsight and Clean Coders. Mark has regularly published his blog ( blog.ploeh.dk) since 2006.









