Code Simplicity: The Fundamentals of Software

· "O'Reilly Media, Inc."
3.8
16 reviews
Ebook
84
Pages
Eligible

About this ebook

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

Ratings and reviews

3.8
16 reviews
A Google user
October 4, 2012
Very disappointed by this book, as the title looked promising. The "science" behind the book is backed up by some hypothetical development/maintenance cost tables, instead of empirical data. Some of the laws: "Readability of code depends primarily on how space is occupied by letters and symbols." - This is a simple formatting issue, which can be fixed in any modern editor with a single key press, so this is really a non-issue. Real readability problems arise from unstructured, disorganized and complex code, making it hard for other developers to read it and understand it. "The chance of introducing a defect into your program is proportional to the size of the changes you make to it." this is a naive assumption. IMO, the chance of introducing bugs is more correlated to the coverage/quality of your tests and not to how many changes you do. On rigid design: "Code should be designed based on what you know now, not on what you think will happen in the future." I don't buy this. Thinking about the future helps in creating a flexible design, not a rigid one. The book is very short, equivalent in length to a long blog post or quora question, but with less quality.
Did you find this helpful?
Bart Mulder
May 14, 2014
I saw a video interview with the author on the Google Developers Channel and I liked his view on the Three Most Common Flaws in software design. I think he has a point worth keeping in mind when reviewing your own or your colleagues' work. I bought the book expecting to be further educated about how to detect and avoid these flaws. Unfortunately I was not. The book is mostly a collection of anecdotes and examples supporting his contention. I like his rules of thumb for avoiding the flaws, like not making too many assumptions and refactoring your code with every iteration to make it look like it was designed this way. But it doesn't provide anything like a methodology for doing better design. The author clearly has experience worth sharing. But the book unfortunately doesn't do a good job of presenting it in a constructive way. Had it been presented in a 4 page paper I would not hesitate to give it to my more junior colleagues as mandatory reading. Now I think I will just refer them to the interview videos.
3 people found this review helpful
Did you find this helpful?

About the author

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.org, and is currently living in Northern California.

Rate this ebook

Tell us what you think.

Reading information

Smartphones and tablets
Install the Google Play Books app for Android and iPad/iPhone. It syncs automatically with your account and allows you to read online or offline wherever you are.
Laptops and computers
You can listen to audiobooks purchased on Google Play using your computer's web browser.
eReaders and other devices
To read on e-ink devices like Kobo eReaders, you'll need to download a file and transfer it to your device. Follow the detailed Help Center instructions to transfer the files to supported eReaders.