97 Things Every Programmer Should Know: Collective Wisdom From The Experts (2010) - Plot & Excerpts
The "Beware the Share" chapter by Udi Dahan resonated with me. I also now buy into version control.p. 14"It was my first project at the company. I'd just finished my degree and was anxious to prove myself, staying late every day going through the existing code. As I worked through my first feature, I took extra care to put in place everything I had learned - commenting, logging, pulling out shared code into libraries where possible, the works. The code review that I had felt so ready for came as a rude awakening - reuse was frowned upon!""How could this be? Throughout college, reuse was held up as the epitome of quality software engineering. All the articles I had read, the textbooks, the seasoned software professionals who had taught me - was it all wrong?"It turns out that I was missing something critical."Context."The fact that two wildly different parts of the system performed some logic in the same way meant less than I thought. Up until I had pulled out those libraries of shared code, these parts were not dependent on each other. Each could evolve independently. Each could change its logic to suit the needs of the system's changing business environment. Those four lines of similar code were accidental - a temporal anomaly, a coincidence. That is, until I came along. "The libraries of shared code I created tied the shoelaces of each foot to the other. Steps by one business domain could not be made without first synchronizing with the other. Maintenance costs in those independent functions used to be negligible, but the common library required an order of magnitude more testing."While I'd decreased the absolute number of lines of code in the system, I had increased the number of dependencies. The context of these dependencies is critical - had they been localized, the sharing may have been justified and had some positive value. When these dependencies aren't held in check, their tendrils entangle the larger concerns of the system, even though the code itself looks just fine." Each 2-spread was independent, providing good bite-sized before-bed reading & a nice secondary book to have on the go. As a novice programmer, some of the pieces were a little out of my depth, but several (e.g. "A Message to the Future", "Learn to Say Hello World", "Know Your Next Commit) have come to mind as I've been coding at work. I would recommend the book if you need something for more idle perusal, since each piece is so short, and think it's been a good influence on me.
What do You think about 97 Things Every Programmer Should Know: Collective Wisdom From The Experts (2010)?
Great book of easily digestible short reads. Each provides useful and actionable tips.
—marlene123
Some good, some ok and some brilliant. Worth reading if you are in the business.
—bytecut
Ahora tengo una lista enorme de cosas que cotillear en verano... :D~
—amandalgaskin
I'm afraid I got bored of this book: repetitive yet contradictory.
—Nina