More on this book
Community
Kindle Notes & Highlights
The purpose of a layered architecture is to separate code that has the same sort of function.
Components are the units of deployment. They are the smallest entities that can be deployed as part of a system. In Java, they are jar files.
The fewer public types you have, the smaller the number of potential dependencies.
With module systems, when used properly, you can make a distinction between types that are public and types that are published.
The devil is in the implementation details.
Every design decision needs to leave the door open for future changes.
If you needed to store data on the disk, you stored data on the disk.