2 为什么软件架构很重要
Software architecture is the set of design decisions which, if made incorrectly, may cause your project to be cancelled.
-Eoin Woods
为什么需要架构?
本章将聚从技术视角来阐述架构的重要性。我们将从以下几方面展开:
1 架构可以控制系统对质量指标的掌控。
2 在架构中的决策可以用来推断或管理系统演化过程中的变更。
3 对架构的分析可以更早的预测系统的质量。
4 文档化的架构可以加强干系人之间的沟通。
5 架构是最早的,因此也是最根本的、最难更改的设计决策的载体
6 架构定义了一组后续实现的约束。
7 架构遵循的组件的结构,反之亦然。
8 架构可以为演化模型提供基础。
9 架构是架构师和项目管理者推断成本和计划的关键制品。
10 架构可以被制作成一个可迁移的、可复用的模型,形成产品线的核心。
11 基于架构的开发聚焦于组件的装配,而不是仅仅是组件的创建上。
12 通过限制设计的备选方案,架构引导了开发人员的创造力,可以降低设计和系统的复杂性。
13 架构可以作为培养新的团队成员的基础。
虽然我们都相信架构是很重要的,但不需要死记硬背以上十三点,只需要考虑如何将这十三点作为在项目中使用架构的十三个很有用的方式进行实践即可。
2 为什么软件架构很重要相关推荐
- Java软件架构设计
http://blog.csdn.net/hdy007/article/details/1509910 开始的架构设计也是最难的,需要调研同类产品的情况以及技术特征,了解当前世界上对这种产品所能提供的 ...
- 《程序员必读之软件架构》
Part I 什么是软件架构 第1章 什么是架构 本文通过拆解了解软件架构是什么,架构和设计的区别,敏捷的架构意味着什么,以及为什么思考软件架构很重要. 在不同人的眼里面"架构"一 ...
- 如何设计网络应用:让软件架构101在项目早期做出正确的决定
全文共6320字,预计学习时长19分钟 如果你想建立自己的网络应用程序.你有创建的理念,但现在的关键是建立正确的架构. 在这篇文章中,我们将讨论这些关键内容: ·什么是软件架构? ·为什么软件架构很重 ...
- 软件架构实践(第四版)
软件架构实践(第四版) Len Pass Paul Clements Rick Kazman 2021/09 ISBN-13: 978-0-13-688609-9 ISBN-10: 0-13-6886 ...
- 万人马拉松赛事,人脸识别系统如何快速、准确完成校验?
作者 | 阿里文娱技术专家墨贤 出品 | AI科技大本营(ID:rgznai100) 大麦的人脸闸机在2019年杭州马拉松上成功的完成了刷脸入场功能的首秀,相比传统的马拉松入场核验方案在入场体验和入场 ...
- 基于VUE只是作为模版引擎的前后端分离
首先请原谅本文标题取的有点大,但并非为了哗众取宠.本文取这个标题主要有3个原因,这也是写作本文的初衷: (1)目前国内几乎搜索不到全面讲解如何搭建前后端分离框架的文章,讲前后端分离框架思想的就更少了, ...
- 9个用于构建容错系统的开源工具
我一直对 Web 开发和软件架构很感兴趣,因为我希望对一个可以工作的系统有一个整体的了解.无论你正在构建移动应用程序还是 Web 应用程序,它都必须连接到互联网,以便在不同的模块之间交换数据,这意味着 ...
- apache spark_Apache Spark:更改架构之前必须解决的5个陷阱
apache spark 迁移到Apache Spark之前需要了解的5件事 似乎每个人都只是在谈论最热门的新技术,而忽略采用它的实际含义. 但这是自然的,对吧? 新功能和承诺胜过其他所有事物,而艰难 ...
- Apache Spark:更改架构之前必须解决的5个陷阱
迁移到Apache Spark之前需要了解的5件事 似乎每个人都只是在谈论最热门的新技术,而忽略采用它的真正含义. 但这是自然的,对吧? 新功能和承诺胜过其他一切,而艰巨的挑战和决定被抛在一边. ...
最新文章
- 卷积神经网络CNNs的理解与体会
- c语言自学技巧,轻松学C语言,教给你学习技巧
- C#/ASP.NET定时任务执行管理器组件–FluentScheduler定时器
- 不浮躁的社会是什么样的?
- jpa 测试_使用外星人进行测试:如何使用Arquillian测试JPA类型转换器
- 删除一个非空的无用表空间
- 安卓学习笔记13:安卓触摸事件
- Linux下关于gcc、vim、readelf、rpm、yum、彩色进度条的问题
- go web框架_golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web
- 网络运维工程师常见的面试题及需掌握的知识点
- sybase默认数据库
- 手把手教你如何免费把多张图片合并为PDF文件,一看就懂。
- Android 10.0设置默认sim1卡使用数据流量和发送短信
- 【旅行】飘过江南(一)。
- linux set命令的用法,Linux中xset命令起什么作用呢?
- 电子科大2020计算机考研真题,2021电子科技大学考研历年真题复习资料
- 处理工具提示的TTN_NEEDTEXT通知
- 万事达卡携手中国银行、北汽鹏龙发布联名信用卡
- SQL注入学习详细过程
- 对js原型对象的理解
热门文章
- ecshop活动页_ECShop:专题活动
- 计算机专业选择福大还是南邮,48所院校考研历年报录比汇总,21考研可参考!...
- LaTeX中引用参考文献
- 【目标检测】YOLOv5训练工具,简化训练准备过程
- kubernetes (k8s) 与 Docker 关系
- Oracle根据当前时间获取最近5年,最近6个月,最近30天的时间
- 如何写英文科技论文 papers
- 使用STL给选手打分
- linux镜像文件太大不好下载_这是什么神仙系统?支持安卓程序 + Windows 程序 + Linux 程序...
- 微信小程序开发——实现修改文章富文本(hf_editor)输入框回显文章功能