DRY(1)--读后感

题记:

去掉重复的信息会让你的代码的结构发生本质的变化

—— vczh

 

正文:

因为要对项目做重构, 所以, 读了 vczh 的这篇 <<靠谱的代码和DRY >> 和 <<The Pragmatic Programmer>> 的 Item7, 8. 下面是部分摘录:

不能repeat的其实是信息,不是代码。然而, 分析什么是信息又不是一件简单的事情.所以, 只能不断地修改. 目的: 保证代码质量不断提高.

换句话说, 不断地重构.而重构, 又需要做TDD. 目的: 保证代码质量.

特别的, 对GUI做TDD, 又需要MVC. 目的: 方便代码的测试.   => 首先, 实现代码的MVC.

另一方面:

在现实生活中, 居多的 applications are database driven。在UT时, 作为 Database 也就意味着需要有一个 Real Database Class。

这个时候, 你要构造出整个 Database Class 才能进行 UT。这是一个很High的Burden。通常情况下,coder会把这些东西扔给QA做Functional Test。

image

image

 

而当 it comes to programming,design by contract, 必然得到各种interface,那么UT就可以方便地进行。

interface:表达的是,“能做什么”,其实, 是一种function。function当然容易测试。 目的:方便测试。

另一方面, 做TDD时, vczh 的风格是, 先UT, 最后加GUI. 目的: 追随master.

 

正交的代码易于测试: (1) 没有重复/平行的代码, 不需要重复测试.

重构时,

(1)如何划归成MVC?

(2)如何实现 interface oriented programming?

 

### Update

1. 信息, 具有 结构, 组成 这样的meta data.

比如: Tony;Male;Engineer 这样的信息, 结构: (field N;)*, 组成, 如分隔符(;).

还有,类型信息(CommonDef)。

posted on 2014-09-22 19:51  vczh_tonyc  阅读(166)  评论(0编辑  收藏  举报

导航