Book description
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.
Choose mindsets and processes that work, and escape bad metaphors that don’t
Use checklists to liberate yourself, improving outcomes with the skills you already have
Get past analysis paralysis by creating and deploying a vertical slice of your application
Counteract forces that lead to code rot and unnecessary complexity
Master better techniques for changing code behavior
Discover ways to solve code problems more quickly and effectively
Think more productively about performance and security
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. Register your book for convenient access to downloads, updates, and/or corrections as they become available. See inside book for details.
Table of contents
- Cover Page
- About This eBook
- Half Title
- Title Page
- Copyright Page
- Dedication Page
- Contents
- Series Editor Foreword
- Preface
- About the Author
- I: Acceleration
- II: Sustainability 201
-
A. List of Practices
- A.1 The 50/72 Rule
- A.2 The 80/24 Rule
- A.3 Arrange Act Assert
- A.4 Bisection
- A.5 Checklist for A New Code Base
- A.6 Command Query Separation331
- A.7 Count the Variables
- A.8 Cyclomatic Complexity
- A.9 Decorators for Cross-Cutting Concerns
- A.10 Devil’s Advocate
- A.11 Feature Flag
- A.12 Functional Core, Imperative Shell
- A.13 Hierarchy of Communication
- A.14 Justify Exceptions from the Rule
- A.15 Parse, Don’t Validate
- A.16 Postel’s Law
- A.17 Red Green Refactor
- A.18 Regularly Update Dependencies
- A.19 Reproduce Defects as Tests
- A.20 Review Code
- A.21 Semantic Versioning
- A.22 Separate Refactoring of Test and Production Code
- A.23 Slice
- A.24 Strangler
- A.25 Threat-Model
- A.26 Transformation Priority Premise
- A.27 X-driven Development
- A.28 X Out Names
- Bibliography
- Index
- Code Snippets
Product information
- Title: Code That Fits in Your Head: Heuristics for Software Engineering
- Author(s):
- Release date: November 2021
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780137464302
You might also like
book
Modern Software Engineering: Doing What Works to Build Better Software Faster
Improve Your Creativity, Effectiveness, and Ultimately, Your Code In Modern Software Engineering, continuous delivery pioneer David …
book
Software Architecture Patterns
The success of any application or system depends on the architecture pattern you use. By describing …
book
40 Algorithms Every Programmer Should Know
Learn algorithms for solving classic computer science problems with this concise guide covering everything from fundamental …
book
Software Architecture for Busy Developers
A quick start guide to learning essential software architecture tools, frameworks, design patterns, and best practices …