最难的是命名

开发最难的是架构,架构最难的是命名,类和变量的命名。

架构一词来自建筑学,架是构成事物的元件,构则是将这些元件联接起来的联接间。所以架构 的开始是分解事物,定义事物的各个部分。最后将这些部分链接起来,组成一整个是事物。 你的定义越合理,事物的边界越清晰,整体结构也就越通畅。

我们一旦定义了事物,就无形中割裂了世界,混乱由此开始:例如图书馆有历史和文学两个类 目,那么《明朝那些事》应该属于哪个分类。

这种混乱我们只能从定义开始尽量避免,一个程序的可扩展性不好,一定是开发者对单元的定 义不够正确,也就是不够单元不够“正交”。

命名不好的话,就不要扯什么“组合”、“继承”、“模块化”,这样的架构徒有其形。

其次难的是数据结构

好的数据结构能抵掉费力的算法,《编程珠玑》中一再提及数据结构就是静态的算法。