作者列举了这种重复的几种可能性:1.信息的多种表达方式2.代码中的文档3.文档和代码4.语言问题引自实用主义方法
总的来说是机制问题。我们尽最大努力设计适合具体项目情况的机制,减少重复。对于信息的多表达式问题,需要有原始数据、原始规则和转换器来保证多表达式的一致性。比如多个平台都要反复实现,但这是必然的,所以只能尽量共享基础类库,减少冗余的,可能有歧义的内容。
无意重复:作者举例说明。一个类输出几个变量值,这些值相互依赖。如果直接输出变量值,可能会出现歧义。最好的方法是提取原子数据,剩下的变量值由原子数据通过公式动态计算返回。
没有耐心的重复:显然,我们这里说的是复制代码,这是对所有程序员的沉重考验。感觉有复制对象,怎么可能不复制,或者做到不出错?最好的办法就是告诉自己,为了避免以后无休止的生产,你得中断手头的工作,来填补复制代码带来的漏洞。现在尽量不要复制。即使你想,也不如把原代码一行一行复制,这样才能保证你知道每一行确实需要复制,没有错误(我的建议)。
开发者之间的重复这就是传说中的重复造轮,但是这个问题太难解决了,只能提倡更多的参与,使用开源项目的代码,多交流。同时,使用更多的框架,使代码更加模块化。