A Philosophy of Software Design, 2nd Edition

Paperback, 196 pages

English language

Published July 25, 2021 by Yaknyam Press.

ISBN:
9781732102217

View on OpenLibrary

View on Inventaire

4 stars (1 review)

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.

1 edition

Worth it for the shallow/deep module terminology

4 stars

Most of the author's views (like, for example, on writing comments) are non-controversial. He does however, coin the terms "deep" and "shallow" to talk about the way modules are structured. I think these are very useful, and should be commonly known!

Other than that, the author sticks to the semantics of the vaguely object-oriented curly brace languages. Java, C#, Go, etc. I think this book could be richer if the examples were drawn from a greater variety of programming languages.