多次被坑了后,重温设计模式原则

     又一次深刻体会到了C++写代码时各领域交互要高度遵循面向接口编程,继承改组合的原则的必要。客户端和编辑器共用的一个逻辑模块完全采用继承方式重载某些virtual函数实现,突然,某一天有人修改了公共模块的某函数的参数类型。这尼玛悲剧的,瞅代码半天疑惑咋多态没起作用。这要是面向接口编程,编译器早就告诉我错误了。
 
     还好我刚开始工作的时候就有人拿设计模式砸我,独立完成的第一个C++引擎编辑中间层模块就有人指点我设计原则。后期的引擎维护阶段,我尽量做好领域分析,边界控制,太怕耦合了,尽量做到代码互不影响,让大家都少给其他人擦屁股。为啥现在的产品程序员都不注重依赖倒置呢,看现在的代码,完全就是在违背设计模式原则,腐烂的征兆了。

     我曾经视图跟同事讨论设计的原则或者规范,但总不得果,我经验尚浅,面窄,不足以说服人。程序员之间关于编码规范的讨论往往将导致狂热的辩论,我依然认为这里有一些最低限度。代码易于阅读、理解和维护是一个非常重要的非功能性需求,某些好的规范还能使得代码更小更容易测试和更不容易出错。讲到这里顺便吐槽一下项目工程中偶尔使用的lamda表达式,第一眼看到,不懂,学了一下,增加了新知识,但是很明显,写起来简单却不易于阅读维护。前段时间game engine artitecture翻了几章节,里边有一句特别给力的英文我牢记小本本了,共勉了。
Remember that high-level programming languages like C++ are intended for humans to read.
原文地址:https://www.cnblogs.com/hellohuan/p/3511157.html