当前位置:网站首页>Knowledge precipitation I: what does an architect do? What problems have been solved
Knowledge precipitation I: what does an architect do? What problems have been solved
2022-07-26 05:56:00 【Micro Stone】
In writing this blog post , I don't know how I got to the no return road of software architect , I remember when I was in charge of research and development , Business colleagues and other leaders said that I am the one who understands products best in R & D , Business raises many thorny questions , I can help solve . When I was in charge of the role of product manager , The R & D department and other leaders said that I am the most technical person in the product , Some technical framework problems , I also have to help out with the technical architecture design of this product , In this way, I became an architect in a muddle . Maybe everyone praises me , But in my opinion , An architect is someone who understands both technology , People who understand products , Only know technology , In order to design an architecture that meets the product requirements on the existing resources , When the business is developing rapidly , Quickly respond to business , So what do architects do ? What role do you play in the team ? What problem did he solve ? Let's talk about this topic today ?
The position of architect is generally held by R & D personnel with several years of work experience , Few companies hire fresh students to play this role , For this reason , Here I default that architects must be able to program , And it can complete a certain business research and development independently , Of course, architects also have responsibilities , Otherwise, I'm sorry for this title .
From Figure 1 , We see that the architect is the core role of the team , Shoulder different responsibilities , They are not project managers , But it determines when and how to deliver the project , They are not product managers , But make sure how to meet the product requirements , They are not software engineers , Also responsible for writing core code , But it's more about architecture design .

Then we define architects from an engineering perspective , Architects need to have the following three requirements :
- The most basic requirement : The architect is to decompose the software system into several realizable modules ,
- Meet the strategic requirements of the company : Architects take into account the company's strategy 、, To ensure that the system as a whole works efficiently , In software quality attributes ( Nonfunctional requirements ) While weighing , And manage the inevitable technical debt ( About technology debt , You can see me in 2 Technical debt measurement index written in August ),
- Improve the overall R & D ability of the R & D team : Architects need to design efficient systems while , We need to exercise and improve the architecture design ability of the whole team , Because everyone should be an architect , Knowledge can be shared .
Through the above three requirements , You must have a little understanding of architects , Next , I will introduce to you in detail what architects are going to do through these three aspects ? How important is his role in the team ?
Before introducing these three points , Let's first introduce two questions : What are the conditions for excellent software design ? And what is software architecture , Then let's talk about how architects work ?
One 、 What kind of software is excellent software
The software system is to minimize errors , Excellent software , There will be mistakes , Domestic software wechat 、 TaoBao 、 Baidu , Google abroad 、Facebook、 Amazon, etc. , There will be no big or small , There may even be downtime , And architecture is the foundation of software success , We can evaluate how to design excellent software from the following six aspects
1、 Excellent architecture can decompose big problems into small ones that are easy to deal with
Now the software system is huge and complex , There are many flexible components , We all know the most popular micro service at present SpringCloud Just one component integration family . The architecture cleverly explains how to divide the system into lightweight 、 Independent small module , At the same time, it can ensure the efficient and coordinated operation of the whole system , Let the value of the whole system be higher than the sum of the values of each module .
2、 Excellent architecture conveys how to work together
Software development is an art of interpersonal communication , The architecture describes how the whole system forms an organic whole , At the same time, it also undertakes how we cooperate to develop software . The more complex the system is , Communication is also more and more important
3、 Excellent structure, unified team communication language
When the team discusses problems , Unified language is very important , Some time ago , When I was discussing with you about an industry voice architecture , When everyone discussed , The industry language description is not unified , As a result, the discussion efficiency is reduced a lot , This is also wrong because I have been in this industry for a long time .
Software architecture provides basic concepts and vocabulary for our communication , This unifies our communication language , You can spend time solving users' practical problems , Instead of spending time explaining new concepts and vocabulary
4、 Excellent architecture focuses on more than functionality
The features and functions of software are very important , But it does not consider a specific point , It is not to realize the specific functions of a project , More comprehensive architecture design , In addition to functional requirements , And consider the cost 、 constraint 、 speed of progress 、 risk 、 Team's ability to deliver , And the most important quality attribute ( Nonfunctional requirements , Such as scalability 、 Usability 、 performance 、 Maintainability, etc ).
5、 Excellent architecture can help you avoid major mistakes
I remember reading a book a few years ago , The author defines software architecture as :“ Architecture is about something important , No matter what ”, We think important things are difficult to change , Unless it adds complexity , Foreign leaders redefined the structure on this basis :··· Important design decisions . Confirm that the architecture plays a decision-making role in the whole system , Architects are not omnipotent , Architects cannot consider all the possibilities when the system is running , But he can help us find the problems and places that may bring trouble in the future .
6、 Excellent architecture makes the system more flexible
At the beginning of the product , The complexity of business is generally not very large , The requirements for technology will not be very high , With the continuous expansion of the company's business , At this time, the business needs become more and more complex , The technical requirements will be higher and higher , How to do it when the early architecture design is not good , We need to repay our technical debt , Excellent architecture design , It can provide flexible and expandable structural design for software .
These are the benefits of excellent architecture for software development , It's a little late today , I'm so sleepy , Tomorrow we'll talk again : What is software architecture ?
边栏推荐
- Redis persistence RDB
- I also found excellent software and hardware projects, all open source
- Another open source artifact, worth collecting and learning!
- [STM32 series summary] blogger's way to quickly advance STM32 in actual combat (continuous update)
- unity 像素画导入模糊问题
- Mysql45 talking about logging system: how does an SQL UPDATE statement execute?
- 漫谈软件缺陷管理的实践
- ES Cluster in Red status: what about write & delete operations?
- Ros2 knowledge: DDS basic knowledge
- Full binary tree / true binary tree / complete binary tree~
猜你喜欢

Debugging sharp weapon! A lightweight log library log.c

Redis发布订阅
![[the most complete and detailed] ten thousand words explanation: activiti workflow engine](/img/4c/2e43aef33c6ecd67d40730d78d29dc.png)
[the most complete and detailed] ten thousand words explanation: activiti workflow engine
![[MySQL must know and know] time function number function string function condition judgment](/img/b2/aa15bf4cd78a3742704f6bd5ecb9c6.png)
[MySQL must know and know] time function number function string function condition judgment

Establishment of log collection and analysis platform-1-environment preparation

Redis persistence RDB

Mysql45 talking about logging system: how does an SQL UPDATE statement execute?

金仓数据库 KingbaseES SQL 语言参考手册 (8. 函数(十一))

中文文本纠错任务简介

日志收集分析平台搭建-1-环境准备
随机推荐
idea yml 文件代码不提示解决方案
金仓数据库 KingbaseES SQL 语言参考手册 (9. 常见DDL子句)
QT writing IOT management platform 47 general database settings
The idea YML file code does not prompt the solution
Mysql45 talks about transaction isolation: why can't I see it after you change it?
Realize channel routing based on policy mode
Unity2D 动画器无法 创建过渡
满二叉树 / 真二叉树 / 完全二叉树 ~
Flex layout
Unity Profiler
软件测试面试题全网独家没有之一的资深测试工程师面试题集锦
程序员如何改善精神内耗?
光量子里程碑:6分钟内解决3854个变量问题
520 for what? DIY is a high-value RGB clock that girls want to watch
Mysql45 talking about global lock, table lock and row lock
CANoe-XML在Test Modules中的应用
Solve vagrant's error b:48:in `join ': incompatible character encodings: GBK and UTF-8 (encoding:: Compatib
Day110. Shangyitong: gateway integration, hospital scheduling management: Department list, statistics based on date, scheduling details
[MySQL must know and know] time function number function string function condition judgment
Sequential search, half search, block search~