今天下班前,开始第三届OO训练营的第一课。
本来觉得应该没什么,结果课堂上大家窘态尽出,会写代码不代表面向对象代码写的好,事先不写测试,直接上实现,情何以堪呐。
一些重点:
- 代码是写给人看的,不是给机器的。代码是用来表达和传递知识的。
- 对于可度量的对象,有几个属性(比如相等性和可描述性),可以作为分解任务的依据,并据此编写测试。比如长度(Lenght)的Equality,如何判定是同一个长度对象,如何比较不同的长度对象。
- 测试优先开发,划分出可测的任务是关键,即所谓Testability Driven Tasking。
- 模块化最重要的是封装实现的细节,对类细节的访问要封装在类上下文中,这是最最容易忽视的bad smell。
OO思想很重要。。如果我您是做培训的话。。。那么我想您从一开始教学生的时候就教他们面向对象开发。。。如果等到以后要转变那么就很难了