Hi there, I’m looking for good software architecture resources: blog, wiki or community.
I know good enough the basis of OOP and ‘Design Pattern’ and I’m looking for something more advanced.
One of my goal is to create local first software but anything with network and web archi are welcome too. 🙂
[edit to add the resources] Thanks guys for your answers, there is a loooots of books!!
Books :
- some good books there: https://learning.oreilly.com/playlists/0e99b380-1226-4940-bfaf-de2b0bd45250/
- with this topics: Head First Software Architecture, Fundamentals of Software Architecture, Flow architectures, Domain-driven Design, Micro-services, Agile stuff, Scalable Systems, API Management
- specially this one as a good overview: Head First Design Patterns, 2nd Edition by Eric Freeman, Elisabeth Robson https://www.oreilly.com/library/view/head-first-design/9781492077992/
- Software Architect’s Handbook by Joseph Ingeno https://www.oreilly.com/library/view/software-architects-handbook/9781788624060/
- Build APIs You Won’t Hate: https://leanpub.com/build-apis-you-wont-hate
- Working Effectively with Legacy Code by Michael Feathers: https://www.oreilly.com/library/view/working-effectively-with/0131177052/
- Designing Data-Intensive Applications by Martin Kleppmann: https://www.oreilly.com/library/view/designing-data-intensive-applications/9781491903063/
- Algebra-Driven Design: https://leanpub.com/algebra-driven-design
- https://martinfowler.com/books/eaa.html
Podcast :
- Software Architecture Book Club https://softwarearchitecturebookclub.buzzsprout.com/2377730/about : I listen the first episode, it’s the intro and that sounds very interesting. They start with the metaphore of building a house.


This is a bit beyond architecture, but being competent to build a mathematically bug-free API is probably something that few programmers would even bother trying to compete-against…
https://leanpub.com/algebra-driven-design
I think there is a fundamental mis-framing, throughout the entire software/development understanding…
I think that the architecture needs to be simultaneously agilely-devloped, but into an executable-model, a kind of toy-implimentation, so it is easy to change the architecture, low-cost, BEFORE one converts it into load-bearing, & therefore unchangeable architecture ( architecture’s the hardest thing to change, as it’s most-fundamental )
So, I think that the proper way is to do it in 2 stages:
This is part of an idea from years ago: I read in a Wiley GAAP book that I happened to be glancing into, that it’s a violation of GAAP to prototype any project in any language other than the final-implimentation-language, & expense that prototype.
Which is totally insane!
Prototype in the highest-level-language you can, to get the domain+architecture right, then reimpliment what you have to in the most production-efficient/effective language for that project.
GAAP ( of that year ) is categorically wrong: it penalizes optimal-prototyping.
It was years-later before I discovered that an English mathematician ( roundish ginger, worked in Glasgow, no idea what his name was, sorry ) had studied the difference between complex projects which worked vs ones which died, & it was the visual-spacial-representation-of-the-model, & the complete-coverage executable-model which made the successes win.
So, I just put those ideas together.
_ /\ _
Wow, a little bit out of scoop for me right now, but thank you for sharing.
It’s on my todo list to learn functionnal programming, but you know … times running out!! :)