Don't Repeat Yourself!(不要重复你自己!)重复包括强加的重复、无意的重复、无耐性的重复、开发者之间的重复。有些重复是强加的,例如项目标准中要求建立的含有重复信息的文档或是重复代码中的信息的文档;有时重复来自设计中的错误;有时重复是一种容易检测和处理的重复形势,但那需要接受训练并愿意为避免以后的痛苦而预先花费一些时间;另一方面,或许是最难检测和处理的重复发生在项目的不同开发者之间。
Make It Easy to Reuse!(让重复变得容易!)我们可以做的就是营造一种环境,在其中要找到并复用已有的东西,比自己编程更容易。如果不容易,大家就不会去复用,而如果不去复用,就会有重复知识的危险。
“正交性”是从几何学中借来的术语。在计算机技术中,该术语用于表示某种不依赖性或是解耦性。如果两个或更多事物中的一个发生变化,不会影响其他事物,这些事物就是正交的。在设计良好的系统中,数据库代码与用户界面是正交的,可以改动界面而不影响数据库,也可以更改数据库而不改动界面。正交可以提高生产率、降低风险。
计算机语言会影响一个人的思考问题的方式,以及他看待交流的方式。每种语言都含有一系列特性——比如静态类型和动态类型、继承模式这样的时髦话语——所以这些特性都在提示或遮掩特定的解决方案。