Wednesday, April 13, 2022

[Architecture] 成为软件架构师

 一、軟體架構師的工作內容:

1. 决定何时以及如何交付软件

2. 确保软件能够满足业务目标


由图可见,软件架构师是集业务、技术、面向用户于一身的。具体职责:

1. 从工程角度定义问题。 关注质量属性和那些影响架构设计方向的约束和特性。

2. 分解系统,分配职责。 模块化分解系统。

3. 关注大局。 人员、过程、业务需求以及其它技术和非技术因素都将影响最后的软件系统。

4. 在质量属性之间做出取舍。 找出备选方案,再与各方一起协商如何取舍最合理。

5. 管理技术债务。 将业务需求与技术决策放在一起考虑。

6. 提升团队的架构能力。 结对设计,写文档,批评,当作社交活动

二、什麼是軟件架構

软件架构:关于如何组织软件 一系列重大设计决策的集合

影响到:

  质量属性

  开发进度

  成本

  很多人

  其他软件系统

如何做:

  Software Architecture in Practice

  定义基本结构:

     元素是软件的基本组成部分,关系则描述了元素如何协作完成。

     三種類型的元素和關係:


     模塊結構:

         1. 在於設計階段。

         2. 即使軟件沒有運行,模塊結構存在於文件系統中。

     組件連接器 (C&C):

        1. 運行階段。

        2. 組件可以創建與其它組件的連接、產生新進程以及實例化新物件。

     分配結構

         1. 展示模塊元素與組件連接器,以及這些元素與現實的物件元素之間的協同與響應關係。

         2. 某個元素運行在客戶端,  還是運行在服務器

  动手练习:元素、关系、结构。 元素命名要明确具体、考虑模块结构、运行时结构、分配结构。

  推演质量属性和其他系统属性:

      质量属性包括:可伸缩性、可用性、可维护性、可测试性等。

三、成为团队的架构师

引入团队的设计讨论

指明团队何时应该进行取舍

撰写设计决策

接受更多架构设计职责

从程序员向架构师转变。 任何人一旦做出了影响软件系统结构的决定,都充当了临时架构师

四、开发出色的软件

架构将大问题分解为容易处理的小问题

软件架构告诉大家如何协同工作

软件架构为讨论复杂设计提供了基本词汇

软件架构关注的不仅仅是功能。 还有成本、约束、进度、风险、团队交付能力、质量属性

软件架构让你避免犯重大错误。 架构师并非无所不知,而架构可以帮助我们发现那些今后可能带来麻烦的地方

架构让软件更灵活

https://githubhot.com/repo/icehoo/me/issues/54

No comments:

Post a Comment

n8n index

 【n8n免費本地端部署】Windows版|程式安裝x指令大補帖  【一鍵安裝 n8n】圖文教學,獲得無限額度自動化工具&限時免費升級企業版功能