I have been working as a Backend Engineer almost for 5 years. At that time I always focused on how I code as fast as I could and just learning based on what I worked on. After that, I tried to take a look at the overseas opportunities and I realized that my skills were not capable of reaching the requirement. I too focus on how to code fast without knowledge of "How the components interact with each other" clearly.
In this article, I wanna share what I learned and hopefully, it can help me and you to understand clearer about a meaning of software architecture.
Most people say software architecture is like a blueprint of system. In general, the software architecture is a system that you & your team present with a diagram and focus on how components will interact each other. It will help you & your team to research, analyze & define the services that you need before executing the project.
Implementing software architecture will have several benefits, there are:
- Fulfill the business requirement
- Calculate the costs easily
- Maintain systems standardization
- System has a good adaptation
- Solid software foundation
Here are the tools that I use for making an architecture diagram. Btw, all these tools are open source, so you don't need to worry about pricing.
-
Diagrams mingrammer (https://diagrams.mingrammer.com): You can draw the cloud system architecture with Python. It makes you & your team easy to maintain and share the diagram in code. The advantage of this diagram is you need to learn the syntax before.
-
Draw.io (https://www.drawio.com): This is the first diagram tool I used. It's easy to work with because you don't need to put more focus on learning it first. This tool has a desktop app as well for mac, linux, & windows. So you can work with it online & offline.
-
Excalidraw (https://excalidraw.com): I just knew it a few months ago. Honestly, I don't have any experience with it. I like this diagram because the result is like use handwriting LOL.
Title | URL |
---|---|
The Software Architecture Handbook | https://www.freecodecamp.org/news/an-introduction-to-software-architecture-patterns |
Software design vs. software architecture | https://www.lucidchart.com/blog/software-architecture-vs-design |
Evolution in Software Architecture | https://priyalwalpita.medium.com/evolution-in-software-architecture-a607db649586 |
Top 8 diagramming tools for software architecture | https://medium.com/@icepanel/top-8-diagramming-tools-for-software-architecture-2fc61d095b93 |
Software Architecture Patterns: What Are the Types and Which Is the Best One for Your Project | https://www.turing.com/blog/software-architecture-patterns-types |