Code Simplicity

Front Cover
"O'Reilly Media, Inc.", 2012 - Computers - 78 pages

Good software design is simple and easy to understand. Unfortunately, the average computer program today is so complex that no one could possibly comprehend how all the code works. This concise guide helps you understand the fundamentals of good design through scientific laws--principles you can apply to any programming language or project from here to eternity.

Whether you're a junior programmer, senior software engineer, or non-technical manager, you'll learn how to create a sound plan for your software project, and make better decisions about the pattern and structure of your system.

  • Discover why good software design has become the missing science
  • Understand the ultimate purpose of software and the goals of good design
  • Determine the value of your design now and in the future
  • Examine real-world examples that demonstrate how a system changes over time
  • Create designs that allow for the most change in the environment with the least change in the software
  • Make easier changes in the future by keeping your code simpler now
  • Gain better knowledge of your software's behavior with more accurate tests
 

What people are saying - Write a review

We haven't found any reviews in the usual places.

Contents

Chapter 1 Introduction
1
Chapter 2 The Purpose of Software
5
Chapter 3 The Future
9
Chapter 4 Change
21
Chapter 5 Defects and Design
33
Chapter 6 Simplicity
37
Chapter 7 Complexity
49
Chapter 8 Testing
61
Appendix A The Laws of Software Design
63
Appendix B Facts Laws Rules and Definitions
65
Copyright

Other editions - View all

Common terms and phrases

About the author (2012)

Max Kanat-Alexander, Chief Architect of the open-source Bugzilla Project, Google Software Engineer, and writer, has been fixing computers since he was eight years old and writing software since he was fourteen. He is the author of http://www.codesimplicity.com/ and http://www.fedorafaq.com, and is currently living in Northern California.

Bibliographic information