2020 1 月读书笔记之四: Clean Architectu

2020-01-29  本文已影响0人  fliky

2020 1 月读书笔记之四: Clean Architecture (架构整洁之道)

              Bob大叔(Robert C. Martin)不用过多解释,软件代码方面大师,泰斗级的人物。曾著有"Clean code" , "Agile Principles, Patterns, And Practices" 都是重磅级的书, 我看过很多遍。这本Clean Architecture 可以说彻底解答了几乎我对软件架构方面的问题和思考。

本书分为六个部分:

            1. 软件架构概述:  作者认为架构图中应该包含底层的设计细节,高层和底层的设计不可分割 , 而软件构架的目标是"用最小的人力成本来满足构建和维护该系统的需求"。 代码乱如麻会大大降低开发效率,,要想跑得快先要跑得稳,架构是演化出来的需要持续重构, 软件的价值包含行为和架构,架构属于重要但不紧急的事情,需要提高优先级。

            2. 编程范式:  作者以行为限制的方式介绍了3种编程范式,结构化编程对程序控制权的直接转移进行了限制和规范; 面向对象编程对程序控制权的间接跳转进行了限制和规范; 函数式编程对程序中的赋值进行了限制和规范。这三个范式分别限制了goto 语句,函数指针和赋值语句的使用,除此之外没有其他可以限制的了,也就是说我们只会有这三个范式。我们往往是从三个范式的应用场景出发,而Bob大叔是从范式的编程特性出发。

              3. 设计原则:  SOLID原则 Bob大叔在"Agile Principles, Patterns, And Practices" 曾深入讲过,本书只是简单罗列了这几个原则的目的和使用方式。

              4. 组件构建原则:  本部分讲述组件化开发以及组件的聚合包括: 复用/发布等同原则,共同闭包原则,共同复用原则,以及耦合原则包括: 无依赖环原则,自上而下的设计,稳定依赖原则和稳定抽象原则。

              5. 软件构架:  这是本书的重点部分包含的很多构架相关的内容包括: 构架的独立性,如何划分边界,策略和层次,如何考虑业务逻辑,构架的表现力,依赖关系,Main 组件,服务:宏观与微观,测试边界和嵌入式编程架构。内容丰富,是作者思考和经验的总结。

              6. 实现细节: 这部分介绍了什么是架构而什么是设计的细节,数据库是细节,UI包括Web是实现的细节,使用什么框架是细节。细节是很可能改变的和业务没关系,架构要体现是业务,作者还举了视频销售网站列子来说明设计。 最后一章还总结了层封装,功能封装,组件封装的区别和思考很精彩。

        这是一本难得的好书,每个从事软件开发甚至相关工作的都应该阅读,大多数情况下面把代码写出来容易,写好却比较难,持续的写好更难。代码好坏决定了质量的好坏。软件架构很大程度上决定了代码好坏,我这这几年进行了大量的代码细节和架构上的思考和实践。去年开始尝试组件化开发。阅读本书解决了我很多的问题并且深受启发。

推荐指数 5  颗星

上一篇下一篇

猜你喜欢

热点阅读