有效掌握编程风格 - 问题所在

野火烧不尽,春风吹又生。

代码中不协调的编程风格,就像野草一样有顽强的生命力,永远除不尽;
聪明的程序员立刻发现,靠人肉去Review不是长久之计。

斩草除根,以绝后患。

于是Lint这样的静态代码检查工具中必不可少的一项就是编程风格,大家期望在流程中加一道关卡以一劳永逸地解决该问题。

堵不如疏

风格要保持一致

大家在编码或Review代码时,发现风格不协调很容易,凭本能就能做到,于是达成了第一条共识:在同一上下文内风格要保持一致。这个上下文灵活性也可以很大:从同一种编程语言要保持同一种风格,到同一个项目内,还可以小到同一个源文件内,甚至同一个函数内。一切全凭Review代码时的心情。

还是不服

风格保持一致,并没有解决问题,总有人跳出来抱怨受不了前任的代码风格。

不患寡而患不均

争论到了这个层次,事情本身-编程风格是什么已经不重要,重要的是-为什么是你的,而不是我的

知其然,知其所以然

好的编程风格指南长什么样

  • 告知WHY
    好的编程风格会明确告诉你规约产生的背景及要解决的问题。
    如Angular的Style Guide对每个Style都有Why?的条目解释;
    Alibaba的Java Coding Guidelines有Note条目。
  • 分级
    不是每条规约都一样重要,可适当抓大放小。
    如Alibaba的Java Coding Guidelines依据约束力强弱及故障敏感性分为三个等级:Mandatory, Recommended and Reference
    Angular的Style Guide则分为DoConsider两级。
  • 给出正反例
    一图胜千言,一个例子可以让大家秒懂这条规约。
    如Google Java Style Guide有正例和Exception例子;
    Angular Style Guide有正例和avoid例子;
    Alibaba的Java Coding Guidelines有Positive exampleCounter example

问题解决了吗

这样的风格指南像法律条文一样,做为编程智慧的结晶,倒是解决了争议的问题。
知法犯法的问题也有执法机构来解决,可不知法呢?

TBC

有效掌握编程风格 - 命名规范

你可能感兴趣的:(有效掌握编程风格 - 问题所在)