架构师训练营 第 2 周总结
本周的学习有以下一些感悟。
什么是依赖倒置?
在框架设计中,高层决定接口,低层去实现,框架的核心是定义规则,而不是提供一堆接口。
一些自己的理解:依赖倒置主要是指导框架层面的设计,和我们平时一条线写下来的 controller,service 和 dao 的业务代码之间的依赖关系还是有点区别的,后者是在整个框架中运行的一部分,除非能再抽象出一套规范,比如工作流规范等,形成自己的一套框架。
框架与工具的区别
依赖倒置原则是指导框架层面的设计的,它类似于好莱坞原则(你不要来调我,我会来调用你)。因此框架是你按我的规则写代码,我会来调用你的。
而工具则是我提供功能,你来调用我。
举例:
JUnit 是框架,我们按规则写 test 类和方法,由 JUnit 来调用执行。
Log4j 是工具,我们直接调用它提供的功能方法即可。
一些感悟
架构师要能破局,在项目处于刚开始阶段,或者进入了一个方向不是很明确的状态时,架构师要能够打破僵局,寻求突破。
优秀的程序员/架构师是欢迎需求变更的,因为他/她做的设计就是为了需求变更而设计的。
想要敏捷开发,首先必须要保证设计是敏捷的,不然再敏捷的方法,代码一团糟,怎么也敏捷不起来(一个类几千行代码如何敏捷起来?)。就比如,Bob大叔的《敏捷软件开发》一书主要讲的是设计层面的,而非敏捷实施的方法论,正是体现出了设计的重要性。
本质上敏捷既需要项目管理上的敏捷,更要有基于敏捷的设计。
版权声明: 本文为 InfoQ 作者【Lingjun】的原创文章。
原文链接:【http://xie.infoq.cn/article/dd1f28a1ea3e698c31b2c79b9】。文章转载请联系作者。
评论