Found in 3 comments on Hacker News
toolslive · 2019-01-26 · Original thread
Algorithms and datastructures form the tactics of software development. your question is related to its strategy. Before you can master it, you first need to learn the concepts that are involved there. Don't buy books on methodologies, they are snake oil (I would love to be proven wrong by HN). The one book that stood out for me was this one:

Component Software: Beyond Object-Oriented Programming (Clemens Szyperski) https://www.amazon.com/Component-Software-Beyond-Object-Orie...

It's not a guide on how to do it, but it explains the ecosystem and forces in play (like why good components get rewritten, while bad ones persist). Once you understand these things you will have a better compass.

pjmlp · 2018-10-18 · Original thread
Published in 1997, "Component Software: Beyond Object-oriented Programming", followed by "Component-Based Software Engineering: Putting the Pieces Together" in 2001.

https://www.amazon.com/Component-Software-Beyond-Object-Orie...

https://www.amazon.com/Component-Based-Software-Engineering-...

The problem is how badly many schools teach OOP paradigms, and how many frameworks abuse a specific style of OOP.

pjmlp · 2013-09-16 · Original thread
For an understanding how to do OO design in Go, learning about component programming is a good way.

http://www.amazon.de/Component-Software-Beyond-Object-Orient...

The first edition used Component Pascal from the Oberon family, which Go gets some influence from. Later editions used Java and C# instead.

Additional learning about how COM and XPCOM work is also a way to get some ideas.

Fresh book recommendations delivered straight to your inbox every Thursday.