I felt this was worth calling out because it was highly illustrative, and emblematic of the theme. Every programmer has had in-depth discussions about comments; and every programmer has committed code that should have been commented, and wasn't; and every programmer has committed code that was commented unnecessarily; etc.
This is something that we've all done, and that we'll all do again. Thus, it is easy to identify with the message embedded in this lesson. But what makes it particularly demonstrative of the book's theme is that Kanat-Alexander is trying to teach you first how to do without the comments. He talks quite a bit about understanding, about taking the time to read and fully comprehend code before changing it; about taking the time to engage with the problem space and design a solution instead of simply stabbing at one.
It can become a vicious cycle: misunderstanding leads to complexity, which leads to further misunderstanding, and so on. Which reminds me of a joke we have going at the office: Anger leads to hate. Hate leads to suffering. Suffering leads to re-factoring. As for Code Simplicity itself: I do not actually have all that much in the way of critique. As I have said, it is a short text, pithy and aphorismic -- but this is indicative that it has accomplished its goal.
So what would I have liked to see, or see more of?
First off, there is effectively no code presented at all; not that Kanat-Alexander promises us any -- just the opposite, he eschews code to drive home the philosophical points. Perhaps specific code examples would detract from that -- but there is a part of me that would liked to have seen something concrete in this area. My other nit to pick was that the book's sub-heading is "The Science of Software Development", and though Kanat-Alexander presents things as "facts" and "laws", I didn't exactly see I read a lot of anecdotes, but I didn't see too many experiments of empirical methods.
Given Kanat-Alexander's pedigree, and given the common-sense nature of so much of the advice contained in the book, I'll grant him a pass on this -- but I cannot in good conscience call it all scientific, even if I find myself vigorously agreeing with say So where do I land on this one? I'd heartily recommend it to any junior or journeyman programmer that is looking for some insights into how to improve their craft and how to cultivate simplicity in their designs.
I know I'll likely be recommending it to folks that I mentor in the future -- again: as a quick weekend read, but with the caveat that you'll want to keep a notebook and jot down those really good parts. Therefore, it behooves me to write as little code as possible. He doesn't come right out and use that phrase, nor does he come out and admit that Agile-style rapid iterations are the way to go either. That isn't the subject of the book, and he is wise to stay away from "going there" -- but it's in there, at least a little bit.
No one could help that. Nov 20, Irvi rated it it was amazing Shelves: safaribooksonline , geeks. Programmers who don't fully understand their work tend to develop complex system. People seems to just accept that system will bloat over time, becoming unmaintainable and need to be rewritten. However, none of this is inevitable. Various code problems doesn't arise out of natural law, instead they arise from complexity.
Indeed as a software grow, they will become larger. In fa Programmers who don't fully understand their work tend to develop complex system. In fact, effective software systems are inherently complex. However, we can maintain each of the component as simple as possible, so that we can comprehend as we look to that pieces. Programming in essence must be an act of reducing complexity. If each of developer don't simplify their code each part will become hard to be understood thus the system can no longer be maintained.
We must also consider the value for both of now and the future. Looking at it, realistically, it actually involves the effort of implementation and maintenance.
Future value and effort of maintenance itself is tightly coupled with time, where value will be measured by how much money the change will make us. And how much it will cost to change the implementation. Mar 05, Matt rated it really liked it. Code Simplicity is a very short but concise look at the theory of what it takes to keep your code simple.
This isn't a book about specific design structures although a few are discussed - it's about understanding what makes code easy to maintain. The idea of taking a complex project and breaking it down into smaller challenges isn't new, but the author does a great job of pushing you to consider how code can quickly become a trainwreck.
Building without a plan, poorly explained functionality, e Code Simplicity is a very short but concise look at the theory of what it takes to keep your code simple.
Building without a plan, poorly explained functionality, even ambiguous variables all lead to a knotted mess. Max drives home the point that you need to code simply in the sense that you should code understandably. Even though other programmers will be the ones exposed to the code you've written, you need to be clear.
Write code that addresses existing problems in a way that can be approached in the future , because you may very well be the one modifying the code years down the road. As short as this book is, you'd do yourself an injustice not to read it if you're looking for theory about writing cleaner, clearer code.
I'm definitely walking away with a new appreciation for making things easier on myself and other programmers. Jan 16, John Nduli rated it really liked it. This book is short and concise. It provides general advice that most programmers have heard, yet never apply in their code. This gave me a better perspective of software design. I also really like the idea that the job of a software dev is to reduce complexity. Sep 19, Ivaylo Petrov rated it it was amazing. Very concise and information-dense book about building simple and maintainable code.
Even if you are familiar with all the ideas inside, the good structure in terms of universal laws, rules and facts is still worth the reading. I would definitely recommend it for any developer that wants to spend more of his time bringing value for his customers and less value fixing problems. Nov 16, Cakra rated it really liked it.
Favorite quote: "The difference between a bad programmer and a good programmer is understanding. Easy to finish. Jan 28, Tarek Amr rated it it was ok Shelves: own. The author is chief architect of some software project, yet the examples he gives here feels as if he had never written a line of code in his life. I learnt very few thing from this book, but all other stuff are more or less common sense.
Jun 30, Alberto Romero rated it really liked it. Awesome book. Simplicity for the win. Sep 23, Mauricio Junior rated it really liked it Shelves: software-inner-beauty. The book shows a easy and nice way to present a junior and middle level software developers concepts about how important is to keep a simple software design.
So it's a nice book if you are new in software design or wants to improve your design skills. In the last pages of the book there is an appendix, so it's easy to review any point you want to remember or share. I just not going to give 5 stars because in the part of the book that explore testing was a bit disappointed.
Max could delve deeper into how unit testing techniques, such as TDD, can help you create a simple and good software design, following the SOLID principles. Jan 23, Richard Marmorstein rated it did not like it. This book does not contain any examples, evidence, or arguments. It contains the patronizingly presented tautologies and opinions of the author, obnoxiously asserted to be "laws" and "facts. Some of it certainly is, in the same way a horoscope or fortune cookie might be true.
That is, it is vague enough and general enough to be essentially meaningless and therefore true. This book is the antithesis of how a software developer should This book does not contain any examples, evidence, or arguments.
What is DevOps? Brand new: lowest price The lowest-priced brand-new, unused, unopened, undamaged item in its original packaging where packaging is applicable. This is my personal reading list of books related to programming language : for becoming a better programmer A one word answer to the age old question of what makes great software. Write code that addresses existing problems in a way that can be approached in the future , because you may very well be the one modifying the code years down the road. Information Management.
This book is the antithesis of how a software developer should analyze and communicate about code. When you're reviewing your colleague's pull requests, or arguing for or against a certain technique, use specific examples from previous experience. Use actual code or pseudocode to illustrate your ideas.
Use evidence. Make arguments. Don't appeal dogmatically to vague tautologies and trite truisms like the ones presented in this book. It will stunt your growth as a developer and a communicator. Aug 09, Stephen Fox rated it it was amazing. It was a solid, brisk compilation of Principles and Laws, that many in the field should read. This book focuses on the mentality that you should bring to code in order to get it - or keep it - simple. The author even goes so far to say that the definition of a good programmer is one who can write effective programs that are simple: easily understood my f It was a solid, brisk compilation of Principles and Laws, that many in the field should read.
The author even goes so far to say that the definition of a good programmer is one who can write effective programs that are simple: easily understood my fellow programs, that provide the desired functionality, in as straightforward a fashion as possible. No fluff, brilliant execution, and able to change as needed whatever that may be.
Something everyone who writes code can aspire to. The book is really small and I think it could be even smaller. It contains some important advices about code design and simplicity, I definitely find those useful but sometimes the examples and stories are overtold and unnecessary. Just read Appendix A and B and you are good to go. That was what I thought after finishing the book. On the other hand it is a good read for inexperienced programmers. I was always saying: If the developer will read one and only one book in software development, it should be "Clean Code" by Uncle Bob. I am saying that for 2 reasons: 1.
If it is correct, I would say that "Code Simplicity" installs the correct mindset, then "Clean Code" will come with the details.
Editorial Reviews. Book Description. The Science of Software Design. About the Author Code Simplicity: The Fundamentals of Software - Kindle edition by Max Kanat-Alexander. Download it once and read it on your Kindle device, PC. Code Simplicity: The Fundamentals of Software [Max Kanat-Alexander] on eziwaganyd.tk *FREE* shipping on qualifying offers. Good software development .
May 06, Sloan rated it it was amazing. A lot of this you have probably already come to realize if you are a software engineer, but I would say this would be great to keep at your desk for reference whenever you run into software complexity. Nov 21, Jan Gorman rated it really liked it.
Good refresher. Jul 17, David rated it it was amazing. If you write code, you should read this book. Lots of "this is the way you should do things" but with good justification and examples. Sep 29, Acmd etc rated it did not like it. Hilarious bullshit disguised as science. Jun 28, Andres Moreira rated it liked it. Got a promoted tweet about it, and bought it. Nothing I found super interesting, just some guidelines on the software development cycle, many of those, quite obvious. Aug 30, apollojet rated it did not like it. Jan 27, Prajakta Deosthali rated it really liked it.
Books will be free of page markings. See details. See all 5 brand new listings. Buy It Now. Add to cart. Be the first to write a review About this product. About this product Product Information 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 ".
Additional Product Features Dewey Edition. Show More Show Less. Any Condition Any Condition. See all 6. People who bought this also bought. Nonfiction Books. Robert C. Martin , Paperback.