《Clean Architecture》No.1
作者:程序员罗尼 | 发布:2020-04-21 | 原文:https://mp.weixin.qq.com/s/o-OpVY_8A4jtbH4l3sMRWg
第一章 设计与架构究竟是什么
架构与设计的区别
架构与设计没有区别。架构一般出现在高层次的讨论中,设计一般用于底层的实现细节,但是软件是由高层的架构和底层的设计共同定义的,二者是一系列决策组成的连续体,没有清晰的分界线。
架构的目标
架构的终极目标是以最小的人力成本来满足构建和维护该系统的需求。判断软件架构的优劣,就是看该软件系统是否能低成本地满足用户的需求,并能在整个生命周期内维持这样的低成本。
乱麻系统的特点
一般都是没有经过设计,匆匆忙忙构建起来的。然后为了加快发布速度,拼命地往团队里加人,同时加上决策层对代码质量和设计结构优化存在着持续的、长久的忽视,这种状态能持续下去就怪了。
在这样的系统中工作,工程师的生产力就会越来越低,直到所有的精力都花费在了系统的修补上(就像我之前在某视频公司亲身经历的一个项目一样,有两个专职的同事每天负责改这个系统的 bug 😂)。
问题到底在哪里?
持续低估那些设计良好的、整洁的代码的重要性(这里推荐 Bob 大叔的另外两本书《敏捷软件开发》和《代码整洁之道》)。
怎么解决?
- 知道什么是优秀的软件架构,了解系统架构的各种属性与成本和生产力的关系
- 知道如何实现优秀的架构
- 持续为优秀的架构与其他势力做斗争 😂
END