When you enter the URL on your browser and hit enter, your browser is acting as the client app and sending a request to the social network server, which responds by sending you the content of the website. To illustrate this with an example, imagine you're entering your favorite social network. Servers are usually back-end applications. Put simply, the client is the application that requests some kind of information or performs actions, and the server is the program that sends information or performs actions according to what the client does.Ĭlients are normally represented by front-end applications that run either on the web or mobile apps (although other platforms exist too and back-end applications can act as clients as well). 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 |