Buy $15.99
Digital List Price: | $21.99 |
Kindle Price: | $15.99 Save $6.00 (27%) |
Sold by: | Amazon.com Services LLC |
Rent $7.74
Today through selected date:
Rental price is determined by end date.
- Highlight, take notes, and search in the book
- In this edition, page numbers are just like the physical edition
Your Memberships & Subscriptions

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Follow the author
OK
Code Simplicity: The Fundamentals of Software 1st Edition, Kindle Edition
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.
- Learn what differentiates great programmers from poor programmers
- Understand the ultimate purpose of software and the goals of good software design
- Determine the value of your decisions now and in the future
- Examine real-world examples that demonstrate how a system changes over time
- Learn to 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
- Understand why to write tests and what tests to write
- ISBN-13978-1449313890
- Edition1st
- PublisherO'Reilly Media
- Publication dateMarch 23, 2012
- LanguageEnglish
- File size258 KB
Customers who bought this item also bought
Editorial Reviews
About the Author
Product details
- ASIN : B007NZU848
- Publisher : O'Reilly Media; 1st edition (March 23, 2012)
- Publication date : March 23, 2012
- Language : English
- File size : 258 KB
- Simultaneous device usage : Unlimited
- Text-to-Speech : Enabled
- Screen Reader : Supported
- Enhanced typesetting : Enabled
- X-Ray : Not Enabled
- Word Wise : Not Enabled
- Sticky notes : On Kindle Scribe
- Print length : 84 pages
- Best Sellers Rank: #1,157,342 in Kindle Store (See Top 100 in Kindle Store)
- Customer Reviews:
About the author

Max Kanat-Alexander is the Technical Lead for Code Health at Google and former Chief Architect of the Bugzilla Project. He been fixing computers since he was eight years old and writing software since he was fourteen. He is the author of codesimplicity.com and fedorafaq.org, and is currently living in Northern California.
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on Amazon-
Top reviews
Top reviews from the United States
There was a problem filtering reviews right now. Please try again later.
The book also deals with similar issues regarding the higher level software architecture / design. I can't comment on that advice as much from my own experience, as my day to day tasks are generally lower level, but I can say the general principles outlined in the book could be very successfully applied to my type of work. I recommend this book to any programmer who is looking for some clearly written, practical advise for writing better code.
If you're a seasoned programmer then there is probably little or nothing to gain from this book... although I've met some people who had been programming for several years who would benefit from the theory in this book.
The principle value I get from this text is a useful way to look at software design in general; almost at a philosophical level. It is not so much a book about writing code as it is about writing (or rewriting) manageable code, and why that's critical to success. It is not language or platform specific, nor does it contain various algorithms for sorting or searching, or sample code outlining various patterns or anything like that. It is also not very "how-to" you'll have to work out much of how this applies to your specific use case, but having done just that very recently with someone else's code I can say that it is quite doable and well worth it.
It helps to answer why certain best practices are the best practice, what you have to keep in mind when writing or maintaining code to make your work valuable, and theories on how to fix up existing and yet difficult to maintain code bases.
Some other reviews have pointed out the pretense of attempting to codify "laws" of programming, or that there is nothing terribly revelatory here to anyone who has read a few good blog posts about programming best-practices. I get those arguments but I'm going to offer an alternative viewpoint, as I found the book worthy enough to ready twice through and hand out to colleagues.
First, attempting to establish a seniority of facts, as long as it does not seek to elevate unimportant facts to prominence, is worthwhile. This is one of the key reasons textbooks need to get written, or educators have work to do. After a certain point one cannot seek to know the whole of a subject. With practice someone will learn much and be able to sort out for himself what is important and what is unimportant in that which he specializes in, but given that the field is advancing he cannot then hope to teach the next generation all of what he knows, plus leave room for them to learn all of the new stuff. So the most important facts must be codified and taught, then the new information can be related to them, and the things of lesser importance are given their proper place amongst the nearly-forgotten curiosities of the past.
Next, and along similar lines: yes, you can find much, if not all of this information in blog posts and articles on-line, which can be read for free. But first you'll have to find the correct information, sort it from misinformation and the unimportant, and assimilate it (which can be tricky depending on the quality of the writing). A textbook lends a sense of correctness and erudition, which may be of secondary importance to the actual correctness of the data, but at least you can be more certain that the information is creditable and the editors will have made sure its readable.
So, what this book provides is collected, well explained and important information, from a knowledgeable source. One can attempt to fish such from the vastness of the Internet, wasting more time and being less certain of its correctness, skip the searching and for the cost of a few coffees buy a book which can be read in a couple of hours, reread and handed around to each programmer you work with, and which will certainly result in better code.
There is a section that is also nicely summarized in a back appendix about how to calculate the value of a change.
Top reviews from other countries




Programming has a direction.

Este livro me mostrou que apesar disso podemos, na falta de formulas matemáticas, usar o bom senso e a experiência acumulada em milhares de projetos e aplicar o que ele chamou de leis do software. Não são leis no sentido aplicado as ciências mas algo bem próximo disso, segundo a definição do próprio autor. Quem ja possui alguma experiência com o desenvolvimento de software ao ler este livro vai ter uma sensação de dejavu. Mas é uma sensação boa quando alguém define em palavras e regras bem definidas a experiência que você teve em projetos. Isso ajuda tanto aos mais experientes quanto aos inexperientes a não cometer os chamadas erros clássicos do desenvolvimento.
Altamente recomendado principalmente para aqueles que estão iniciando no desenvolvimento de software trabalhando em projetos sozinho ou em equipe. Não é um livro técnico se você deseja ver aqui trechos e trechos de código este é o livro errado. Nele temos uma abordagem teórica que em tese pode ser assimilada ate por quem não esta lidando no dia a dia do desenvolvimento. O intuito do livro é estabelecer as regas gerais do software que todo aquele que tem experiência sabe mas infelizmente comete o pecado de ignora-las. Para os mais experientes o livro expressa em palavras a sua vivência e te lembra a não cometer os mesmos erros e para os mais novos ele deveria ser obrigatório.