摘要:
## 现状: 冗余
在web开发中,我们是否常常会使用不同的编程语言实现相同的功能?
如一个文件上传功能,需要对上传文件进行文件格式限制。我们通常会使用后缀名做限制。
### 导致这样重复工作的原因是为什么?
1. 前端永远不可信;
2. 前端和后端使用不同的编程语言;
### 这样的冗余会带来什么代价?
1. 修改业务逻辑,需要重复做2次:如突然发现少支持了 *docx* 文件类型,需要同时修改javascript代码和python代码
2. 增加确保javascript代码和python代码业务逻辑一致的代价。需要分别写2种测试,unit test跑多一倍。
## nodejs时代:DRY
Use [nodejs](http://nodejs.org) no more [DRY](http://c2.com/cgi/wiki?DontRepeatYourself) ! 阅读全文