
A Philosophy of Software Design
This book addresses the topic of software design: how to decompose complex software systems into modules (such as classes and methods) that can be implemented relatively independently. The book first introduces the fundamental problem in software design, which is managing complexity. It then discusses philosophical issues about how to approach the software design process and it presents a collection of design principles to apply during software design. The book also introduces a set of red flags that identify design problems. You can apply the ideas in this book to minimize the complexity of large software systems, so that you can write software more quickly and cheaply.
Reviews

Natalie@nyc

Suat Karakusoglu@suat

Mustafa Hussain@mhussain

Nick Gracilla@ngracilla

Julien Sobczak@julien-sobczak

Thibault ML@thibault-ml

Nathan@nousturnine

Carlos Becker@caarlos0

always online@tdoot

Eduardo Sorribas@sorribas

Christian Bager Bach Houmann@cbbh

Simon Gagnon@simoncrypta

Taylor Murphy@tayloramurphy

Levi B@levibe

Ika@ddramone

Nik R@coldwhiteday

Sapan Parikh@sapan

Shivam Shekhar@shivamx96

Jannis M@jmm

Anwar@zianwar

Cheah Chu Yeow@chuyeow

Dean Sas@dsas

brendan sudol@bren

mercy@mercy
Highlights

Davood Ghanbarpour@davood
Page 17