Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Understanding Software
  • Table Of Contents Toc
  • Feedback & Rating feedback
Understanding Software

Understanding Software

By : Max Kanat-Alexander
3.8 (11)
close
close
Understanding Software

Understanding Software

3.8 (11)
By: Max Kanat-Alexander

Overview of this book

In Understanding Software, Max Kanat-Alexander, Technical Lead for Code Health at Google, shows you how to bring simplicity back to computer programming. Max explains to you why programmers suck, and how to suck less as a programmer. There’s just too much complex stuff in the world. Complex stuff can’t be used, and it breaks too easily. Complexity is stupid. Simplicity is smart. Understanding Software covers many areas of programming, from how to write simple code to profound insights into programming, and then how to suck less at what you do! You'll discover the problems with software complexity, the root of its causes, and how to use simplicity to create great software. You'll examine debugging like you've never done before, and how to get a handle on being happy while working in teams. Max brings a selection of carefully crafted essays, thoughts, and advice about working and succeeding in the software industry, from his legendary blog Code Simplicity. Max has crafted forty-three essays which have the power to help you avoid complexity and embrace simplicity, so you can be a happier and more successful developer. Max's technical knowledge, insight, and kindness, has earned him code guru status, and his ideas will inspire you and help refresh your approach to the challenges of being a developer.
Table of Contents (15 chapters)
close
close
Free Chapter
1
Table of Contents
2
Understanding Software
3
Credits
4
About the Author
6
Customer Feedback
7
Foreword
15
Index

Chapter 12. Two is Too Many

There is a key rule that I personally operate by when I'm doing incremental development and design, which I call "two is too many."

This rule is how I implement the "be only as generic as you need to be" rule from Code Simplicity.

Essentially, I know how generic my code needs to be, by noticing that I'm tempted to cut and paste some code, and then instead of cutting and pasting it, designing a generic solution that meets just those two specific needs.

I do this as soon as I'm tempted to have two implementations of something. For example, let's say I was designing an audio decoder, and at first I only supported WAV files. Then I wanted to add an MP3 parser to the code. There would definitely be common parts to the WAV and MP3 parsing code, and instead of copying and pasting any of it, I would immediately make a superclass or utility library that did only what I needed for those two implementations.

The key aspect of...

Unlock full access

Continue reading for free

A Packt free trial gives you instant online access to our library of over 7000 practical eBooks and videos, constantly updated with the latest in tech

Create a Note

Modal Close icon
You need to login to use this feature.
notes
bookmark search playlist font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Delete Note

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete

Edit Note

Modal Close icon
Write a note (max 255 characters)
Cancel
Update Note

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY