概述:
软件架构的终极目标:用最小的人力成本来满足构建和维护该系统的需求。
软件开发的核心特点:要想跑得快,先要跑得稳。
过度自信只会使得重构设计陷入和原项目一样的困局中。
研发团队最好的选择是清晰地认识并避开工程师们过度自信的特点,开始认真地对待自己的代码架构,对其质量负责。
要想提高自己软件架构的质量,就需要先知道什么是优秀的软件架构。
而为了在系统构建过程中采用好的设计和架构以便减少构建成本,提高生产力,又需要先了解系统架构的各种属性与成本和生产力的关系。
软件系统两个价值维度-----行为价值和架构价值。
软件架构师这一职责本身就应该更关注系统的整体结构,而不是具体的功能和系统行为的实现。
软件架构师必须创建出一个可以让功能实现起来更容易、修改起来更简单、扩展起来更轻松的软件架构。
1. 行为价值
它是软件的核心价值,包括按需求文档编写代码以及可用性保障(功能性bug、性能、稳定性),这几乎占据了我们90%的工作内容,快速响应业务需求也是我们工程师的首要责任。
2. 架构价值
架构价值非常明确,就是让我们的软件(Software)更软(Soft),可以从两方面理解:
当需求变更时,所需的软件变更必须简单方便;
变更实施的难度应该和变更的范畴(scope)成等比,而与变更的具体形状(shape)无关。
架构价值也是很重要的:
分析书中记录的真实案例,随着版本迭代,需要的人手越来越多,每行代码的变更成本越来越高,对公司而言,再往后就是亏本买卖了。那么对公司而言,你就不是一个合格的架构师。