More on this book
Community
Kindle Notes & Highlights
Improving construction is thus a way of improving any software-development effort, no matter how abbreviated.
What each building block is responsible for should be well defined. A building block should have one area of responsibility, and it should know as little as possible about other building blocks' areas of responsibility. By minimizing what each building block knows about the other building blocks, you localize information about the design into single building blocks.
Most of the important programming principles depend not on specific languages but on the way you use them.
If your language lacks constructs that you want to use or is prone to other kinds of problems, try to compensate for them. Invent your own coding conventions, standards, class libraries, and other augmentations.
Once you understand that all other technical goals in software are secondary to managing complexity, many design considerations become straightforward.