先增加两个备忘

持续负担(Continous Tax):

“持续负担”这个词是说,当你需要维护或使用用Ruby或Python这样的语言编写的API,你能够得到的信息很少,即便你通过查看测试代码理解了API的含义(有谁这样做过吗?),这种理解和知识也是短暂的,一年之后你需要再次修改同一段代码的时候,你还要再重复一次这样的过程……

阻抗失配(impedance mismatch problem)(another document)

“阻抗失配”这一词组通常用来描述面向对象应用向传统的关系数据库(RDBMS)存放数据时所遇到的数据表述不一致问题。C++程序员已经被这个问题困扰了好多年,而现在的Java程序员和其它面向对象开发人员也对这个问题深感头痛。 “阻抗失配”产生的原因是因为对象模型与关系模型之间缺乏固有的亲合力。“阻抗失配”所带来的问题包括:类的层次关系必须绑定为关系模式(将对象类映射为关系表),ID生成,并发访问以及下面提到的一些问题。

弄一个InfoQ的翻译错误

another document about impedance mismatch reside in infoq

按照Bob Martin的观点,使用Active Record模式就会带来一个非常经典的后果——“关系数据库与面向对象语言之间的阻抗失衡(impedance mismatc)” 。他提出质疑说,虽然“Active Record看起来是一个对象”,但它“是被打算作为数据结构来使用的”。他说的没错,由于Active Record类常常会包含业务规则方法,所以它会向外暴露行为。但同时它并没有真的对数据进行封装,因为“几乎所有ActiveRecord的派生类都要通过访问器(accessors)和修改器(mutators)来暴露数据库的列数据” 。

可能是编辑的失误,呵呵。