代码整洁之道01
命名
命名在代码编写过程中是无法避免的、函数、变量等等都需要命名、一个好的命名能够让我们清楚地明白一个对象的功能等等。对于命名而言,最重要的就是名副其实,也就是说,我们需要关注的问题不在于代码的简洁度,而是在于代码的模糊度,在于代码对应的功能是否准确。在实际的命名过程中,我们也需要注意一些问题,首先我们需要避免误导,对于一些十分相似或者具有专门用途的名称尽量不要使用。另外、对于一个类别的命名、需要做到有意义的区分、而不是一些意义含混的废话。简单来说,要区分名称,就要以读者能鉴别不同之处的方式来区分。除此之外、我们还需要注意命名应该使用可以读的出来、可以收索的名字、避免使用编码和产生思维映射以及一些双关语和太过于专业的词语。言到意到,意到言到,这才是最完美的状态.最后,我们在命名的时候需要添加有意义的语境和避免添加一些无用的语境,常常我们在命名的时候会一串词一起命名,这个时候往往会忽视语境,由于有些词连在一起我们很容易想起它的意义。但是单独拎出来的时候往往会造成阅读的困难,于是我们需要添加一些必要的语境。
函数
第三章讲的是函数,说了这么一句话:"Function should do one thing. They should do it well. They should do it only. "(函数只应该做一件事情,把一件事情做好,而且只由它来做这一件事情),听起来很简单的一句话但是要践行这条原则却并不容易,所以我们的代码中才会有很多的坏味道(请参考《重构:改善既有代码的设计》一书的第三章)。事实上,上升一个层次,我们在设计类的时候也应该如此,这是面向对象设计原则中说的单一职责原则(SRP),当我们的代码中出现了冗长的方法或者巨大的类的时候,我们就应该依据职责来对其进行拆分,这样程序的结构才会趋于合理,最终达到"高内聚"的目标。当然,这一章里面还提到很多理念,包括:Command Query Separation(一个方法要么执行某种命令,要么返回查询数据)、DRY(不要重复自己)、Prefer Exceptions to Returning Error Codes(异常优于返回错误码)等。