《架构整洁之道》阅读笔记01
我阅读的第一本名著是电子版的《架构整洁之道》,网上对这本书的评价很好,阅读后我总结了自己的一些阅读笔记和心得体会,按点论述一下:
1.程序员三个层次
1.1普通程序员:就是正确处理业务和数据计算,让代码跑起来
1.2工程师:写的代码易读、易维护、易扩展、可重用、效率高
1.3架构师:权衡、决策、简化、灵活、应对复杂度
2.软件开发需要解决的问题
1.微观:代码
2.宏观:架构
3.分离控制与逻辑
控制:对程序流转,与业务逻辑无关,如:多线程、异步、服务发现、消息中间件等,另外还有业务逻辑中的判断(if else) , 是否可以去掉if else , 变为根据一定规则进行路由到不同逻辑, 这样也便于扩展, 职责分离,同时也便于测试
逻辑:实实在在的业务逻辑,解决用户问题的逻辑
控制、逻辑构成了整体的软件复杂度,有效分离得到最大简化
3.架构对软件开发的影响
一个好的软件架构需要考虑以下四点:
3.1人力成本:可以大大节省软件项目构建与维护的人力成本
3.2变更成本:让每次变更都短小简单,易于实施
3.3风险:并且避免缺陷
3.4扩展性:最大程度地满足功能性和灵活性要求
4.设计与架构的关系
作者的观点是二者之间没有区别。我认为一般的软件设计与架构设计差别还是很大的,面临的问题,思考的方式都是不一样的。底层设计细节和高层架构信息是不可分割的。
5.复杂软件开发的思想
要想跑得快,先要跑得稳
6.软件架构的目标
支撑软件系统的全生命周期,设计良好的架构让系统便于理解、易于修改、方便维护,并能轻松部署
开发阶段:组件不要使用大量复杂的脚手架;不同团队负责不同的组件,避免不必要的协作
部署阶段:部署工作不要依赖成堆的脚本和配置文件;组件越多部署工作越繁重,而部署工作本身是没有价值的,做的越少越好,所以要减少组件数量
运行阶段:架构设计要考虑到不同的吞吐量、不同的响应时长要求;架构应起到揭示系统运行的
维护阶段:减少探秘成本和风险。探秘成本是对现有软件系统的挖掘工作,确定新功能或修复问题的最佳位置和方式。风险是做改动时,可能衍生出新的问题