Hey everyone! I'm curious about how to properly design the architecture for software projects, like a chat app. Where do you even begin with this? How do you gather the necessary information to get started? I feel a bit lost on this topic and I'm hoping to find some resources, like repositories, articles, or books that can help me understand how to approach architectural design. Just a heads up, I'm self-taught and still quite a beginner with programming, so I might struggle a bit!
2 Answers
When I approach software architecture, I usually visualize it from the ground up or adapt existing patterns. If I realize I've made any questionable design decisions, I try to either revise them or stick with them if the project scope is limited. It's all about finding a balance!
I've been diving into software architecture recently and I can share some helpful resources! Start with these three classic books:
1. Clean Architecture by Robert Martin
2. Design Patterns by the Gang of Four
3. Domain Driven Design by Eric Evans
It's essential to grasp how to tackle common design challenges with established patterns. Also, try to break your system into clear layers and understand the communication between them. Avoid letting your code turn into a tangled mess!
These principles will guide you as you learn. Nowadays, many developers lean towards agile methods, meaning we iterate quickly and solve issues as they come up, rather than defining everything upfront. So don't hesitate—just dive in and learn through experience!
Thanks a lot! Those recommendations are super helpful.
That's interesting! How do you know when it's the right time to change your initial design choices?