训练营第二周总结
本周讲解了面向对象语言的优势,和OOP的三大特性(封装、多态、继承),强调了多态的重要性和价值。
在架构设计部分的讲解中,提到了设计的“臭味”、OOD原则(SOLID)。其中有两点是对我有补充和纠正的。
“臭味”-粘滞性
粘滞性有两种表现形式
软件的粘滞性:对软件进行改动有很多方法,有些可以保持设计,有些会破坏设计。当可以保持系统设计的方法比生硬方法更难以使用时,就表明系统具有较高的粘滞性。
环境的粘滞性:开发环境的迟钝、低效,就会产生环境的粘滞性。比如编译花费时间长,比如代码管理需要花费几个小时去check in仅仅几个文件,这样都很难保持项目中的软件设计。
之前的工作中主要注意力都放在合理的设计和实现,从来没有关注过“环境的粘滞性”。回想一下之前负责的系统中,确实有很多问题是由于系统的环境粘滞导致的系统质量下降和开发效率下降。比如,经过长期维护的系统启动耗时长、难部署,促使开发人员倾向于选择只做少量测试甚至不做测试,最终在生产环境引入bug。其实环境的粘滞问题可以通过引入工具和代码工具库,消减粘滞性。设计重要,工具也很重要。
LSP
子类能替换掉基类,包括两个关注点:
(1)能传入所有子类
(2)执行不会出错
评论