DEV Community

Hiro Takkii
Hiro Takkii

Posted on


Reading Note: A philosophy of Software Design Chapter 1

Recently, I read A philosophy of Software Design with friends.
In this article, I write a reading note about it.

Chapter1 Introduction( It's all about complexity)

There is a strong relationship between understanding the systems and writing software.
The more features you develop, the more it becomes complicated.
So complexity increases inevitably over the life of any program.

There are two general approaches to fighting complexity.
The first is to eliminate complexity by making code more straightforward and apparent.
The second is to encapsulate complexity to work on a system without being exposed to all its complexity at once. (modular design)

This chapter introduced waterfall model and agile development.

This book has two goals.
The first is to describe the nature of software complexity.
The second is to present techniques to minimize complexity.

1.1 How to use this book

Many of the design principles described here are abstract. This book may not be sufficient by itself to learn how to apply the principles.
The best way to use this is in conjunction with code reviews.

One of the best ways to improve design skills is to learn to recognize red flags. Red flags mean the signs that a piece of code is probably more complicated than it needs to be.

Even if you learn design ideas, you must use them with moderation and discretion because if you take them to their extreme, you will probably end up in the wrong place.


I want to introduce chapter 2 of this book.

Top comments (0)