推荐序1
1、架构角色则是要求你在具体事务中行使某些行为,而架构师则是用来标识这些能力与行为的一个职务。
软件架构五件事
1、软件架构不是大型预先设计
软件架构历来被认为是大型预先设计和瀑布式项目有关。软件架构就是关于软件系统的高层次结构,以及你如何理解它。他是影响软件系统形态的重要决策,而非理解数据库每个字段应该有多长。是一个更宏观的理解。
2、每个软件团队都需要考虑软件架构
3、软件架构的角色关乎编码、指导和合作
现在软件架构更倾向于成为一种有利于编码、指导和协同设计的方法。
4、无需使用uml
5、好的软件架构师支持敏捷开发的
第一章 什么是架构
作为名词
架构就是将产品分解为一系列组件、模块和交互。
作为动词
理解你需要构建什么、设定愿景以便进行构建和做出恰当的设计决策。
第二章 架构的种类
共同点
所有架构类型都具有结构和愿景。任何成功的方案都需要你理解问题,并设定一个愿景可以和每个参与构建的最终产品的人沟通。不论何种领域的架构,其实主要是结构和愿景。
第三章 软件架构是什么
应用程序架构
应用程序架构的关注点是应用程序,通常包括将应用程序解构为类和组件,确保设计模式的正确应用,构建和使用框架。
系统架构
系统架构师一个更大规模的应用程序架构,所以软件系统架构就是考虑如何组合这些单独的应用程序。
软件架构
软件架构就是应用程序和系统架构的结合。从代码结构和基础到将代码成功部署到生存环境,与一个软件系统重要元素相关的所有东西都是软件架构。所以不仅要考虑代码层面,还要考虑其他事情。
- 横切关注点,比如登陆和异常处理;
- 安全性,包括认知、可用性和其他质量属性;
- 性能、可升缩性、可用性和其他质量属性;
- 审计和其他监管需求;
- 客观环境约束;
- 互操作性
这就需要要求有时候退一步,远离代码和开发工具,站在更高的地方看。
企业架构:战略而非代码
企业架构一般是指整个组织的中心工作,着眼于如何组织与利用人员、流程和技术来使企业有效和高效的工作。
第四章 敏捷架构是什么
软件架构的敏捷标签意味着它能够应对所处环境的变化,适应人们提出的不断变化的需求。但是敏捷开发往往不会得到敏捷架构。
你需要多敏捷
理解组织或业务的变化速度很重要。
第五章架构对上设计
架构就是结构和愿景
设计和架构有什么区别
设计是一个系统内命名的结构或行为,解决或有助于解决该系统的一个或多个问题。所以设计代表了潜在的决策空间中的一个点。
所有架构都是设计,但是不是所有设计都是架构。
架构反映了使一个系统成型的重要设计决策,而重要性则通过改变的成本来衡量。重要的决策就是架构。
理解意义
想哪些东西对你的系统很重要,这个非常重要。例如引入Hibernate等orm层。改变成本低,所以在架构层面就属于不重要的。
第六章 软件架构重要吗
缺乏软件架构讲引发问题
没有软件架构,会导致一些问题。
- 你的软件系统有良好的结构吗?
- 团队里每个人都以一致的方式实现特性吗?
- 代码库的质量水平一致吗?
-##软件架构的好处 - 让团队跟随一个清晰的愿景和路线图,无论这个愿景是一个人所有还是整个团队所有;
- 技术领导力和更好的协调;
- 与人交流的刺激因素,以便回答与重要决策、肺功能需求、限制和其他横切关注点相关的问题;
- 识别和减轻风险的框架;
- 方法啊和标准的一致性,随之而来的结构良好的代码库;
- 正在构建的产品的坚实基础;
- 对不同的听众,以不同层次的抽象来交流解决方案的结构
所有项目都需要软件架构吗
肯定。
网友评论