Skip to content
This repository has been archived by the owner on Dec 12, 2023. It is now read-only.

Latest commit

 

History

History
53 lines (35 loc) · 3.12 KB

software_architecture.md

File metadata and controls

53 lines (35 loc) · 3.12 KB

Software Architecture

Status Versions

Table of contents

Overview

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.

What is 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.

Benefits

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

Tools

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.

Reference

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