Important Software Architecture Concepts to Know What's the Client-server Model?Ĭlient-server is a model that structures the tasks or workloads of an application between a resource or service provider (server) and a service or resource requester (client). And then we're going to go through some of these divisions, explaining the most common architecture patterns or choices used nowadays to build apps. To better explain this mess, first we're going to explain some basic generic concepts. Meaning, I can have a monolith API that uses REST or GraphQL, a microservices-based app hosted on-premise or on the cloud, and so on. And what complicates this a tiny bit more, is that within these 5 divisions, different patterns can be combined. That's a lot of different choices and possibilities. Infrastructure decisions (Do you host your software on premise or on a cloud provider?).System design decisions (like is your system a monolith or is it divided into microservices?).The technologies you choose (Do you use REST or GraphQl for your API? Python with Django or Node with Express for your back end?).Implementation design decisions (Do you use server side or client side rendering? Relational or non-relational databases?).Implementation details (that is, the folder structure of your repo).The simplest way I can put it is, software architecture refers to how you organize stuff in the process of creating software. It's a topic that encompasses a lot and the term is used to talk about many different things. And that's exactly what used to confuse me so much when researching about software architecture. How to use load balancers and horizontal scalingĪccording to this source: The software architecture of a system represents the design decisions related to overall system structure and behavior.Important software architecture concepts to know.Then I'll share some code examples to give you a clearer idea of how these work. We'll talk about what architecture is within the software world, some of the main concepts you should understand, and some of the today's most widely-used architecture patterns.įor each topic I'll give a brief and theoretical introduction. In this handbook I'll try to give you a simple, surface-level, easy-to-understand introduction to Software Architecture. This is a field that I found both confusing and intimidating when I was first starting my journey into coding. Hi everyone! In this handbook you're going to learn about the vast, intricate field that is Software Architecture.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |