《程序员必读之软件架构》 读书摘要

程序员必读之软件架构

 

1.什么是架构

       应用程序架构 < 系统架构 < 软件架构

      应用程序架构关键词:类、组件、设计模式、框架、技术栈

      系统架构:在应用程序架构层次之上,由多个应用程序组成,从组件和服务到子系统等更高层次的抽象,包含软件和硬件

      软件架构:从代码架构和基础到将代码成功部署到生成环境,这个过程中都相关的重要元素的集合都是软件架构

       企业架构:组织结构,着眼与如何组织和利用人员、流程和技术来使企业有效和高效的工作(运转),就是项目管理了

      

2.敏捷软件架构是什么

       软件开发的敏捷方法:拥抱变化,快速行动,持续交付,接收反馈

       要想敏捷,就需要高效的表达,要确保每个人都在为相同的目标努力,需要有效的表达你们正在构建的东西是什么样子的

 

3.架构和设计

       所有架构都是设计,所有设计并非都是架构

       架构是重大决策,不能轻易反悔,那会大费周章

 

4.软件架构的好处

       让团队有一个共同的清晰的愿景和路线图,大局观

       技术领导力和沟通协调

       方法和标准的一致性

       对不同层次的听众,用不同层次的抽象结构图来交流

 

5.软件架构角色

       架构驱动力:理解业务目标和管理架构驱动力,其中包括需求(功能性需求和非功能性需求)和环境的限制

       设计软件:建立技术战略、愿景和路线图

       技术风险:发现、减轻和承担技术风险,保证架构的“运转”

       架构演化:贯穿整个软件交付过程,持续的技术领导和对架构的承担。

       编写代码:参与软件交付的实践

       质量保证:引入并坚持标准、知道、原则

       团队合作

      

6.软技能

       领导力、沟通、影响力、指导(辅导)、信心、合作、动力、润滑剂、政治、责任感、授权、保持积极、领域知识(业务知识)

       识别团队类型

              生存型(混乱):需要一种直接指挥和控制的领导风格

              学习型:需要一种指导的领导风格

              自组织型:需要简易化来确保平衡不受影响

      

7.架构驱动力

       功能需求

       质量属性(非功能性需求):性能、可伸缩性、可用性、安全性、审计(日志)、可扩展性、可维护性等。对各项进行提炼,优先级排序

       约束:时间、成本、人员

       原则(如编码规范、自动化测试使用、静态分析工具、分层策略、架构模式)

      

8.协同设计是一把双刃剑,应该有取舍,有决断。

 

9.语境、容器、组件、类

       语境图 > 容器图 > 组件图

       语境图:人物、外部系统

       容器图:软件系统上的逻辑上的可执行文件或过程。描述名称、技术、职责、交互过程。容器包括如web服务器、数据库、文件系统、Windows服务、web浏览器和插件等。

              容器交互:容器间的通信,容器如何工作

                     交互的目的、通信方法、通信方式、通信协议和端口号

              容器图展示了软件架构的高层次形态,以及职责如何分布。他也展示了主要的技术选择以及容器如何相互交流。

       组件图:进一步分解容器,分解为主要的逻辑组件和交互,组件复用、组件依赖、明确技术选择

       对齐架构和代码

      

10.   基础设施架构(物理架构)

       描述软件将会部署到的物理、虚拟硬件和网络。各种硬件和网络组件如何相互融合,进行简短描述。

      

11.部署

       部署就是软件和基础设施之间的映射

       软件安装、部署、配置位置

       内存和cpu如何分配

       主备、热备、冷备

       回滚

       数据复制

      

12.运营和支持(运维)

       程序启动       运行状态诊断       错误信息日志       更改配置是否需要重新启动       有无手动启动程序       是否有旧数据定期归档

      

13.敏捷和架构的冲突

 

14.量化风险

       发生的概率、优先级。风险矩阵

       识别风险,团队协作,头脑风暴

      

15.恰如其分的预先设计

       不能太粗,也不能过细

 

跟《Effective Java 中文版》一样,外国人写的翻译过来的书,其中有些段落中,想表达的意思不直接,有些绕。

电子书下载地址

链接: https://pan.baidu.com/s/1spfkku-ZNinc5WaiQ7Nnqw 提取码: xuxu 复制这段内容后打开百度网盘手机App,操作更方便哦

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值