读《Software Engineering at Google》(08)
🤔☕️🤔☕️🤔
读《Software Engineering at Google》(08)—— Style Guides and Rules
📖:@Google:维护着一堆风格,依风格定义出规则,用来维护代码仓。规则是法律,强制通行、严格遵守,风格是推荐的最佳实践,喜欢就跟上。
🤔:看一种风格,具有辨识度,我不一定喜欢,也不见的讨厌,它自成一体而存在。来一些规则,那就得遵守,无论喜欢与否,只要它涵盖到的地方,就得照着它来,它零零散散条条框框,总有束手束脚的感觉。先有风格,再有规则,还是先有规则,再有风格,顺序有关系嘛?这很有点先有鸡还是先有蛋的争论。如果蛋表示潜力,如果鸡表示实力。那风格表示潜力,规则表示实力,是否就意味着,规则越多表示其实力越强,风格越多表示其潜力越强。这么说来,可以就表示有潜力,必须则表示有实力。所以说,让风格和规则同时存在,就是让潜力和实力同时存在。如果只有规则的话,那就是表面这点功夫,只有再加上风格,才具有更多的潜力。当然,只有风格,只有潜力,转化不了实力,那就无法收获实力基线级益处。
🤔:谷歌的规则,来自风格,按照鸡与蛋的模型,谷歌的实力来自其潜力。这么说来,谷歌先有最佳实践,允许多种最佳实践存在,然后再把最受到认可,或者认识到最有价值的风格,定义为强制的规则,使得谷歌具备百花齐放的同时,还具有形散神不散的基石品质。
📖:随着组织增长,制度和规则能框定编码时的通用词汇,这有助于工程师们,直接关注在代码要表达什么,而不是先搞明白工程师怎么个表达,然后代码又在表达什么。
🤔:编程时采用通用词汇,经历过先猜测写的人的意图,再明白代码到底在干嘛的人,不由自主点头不停。我看到代码,明白代码想要干嘛,我看着代码,猜测写代码的人想要干嘛,才明白代码在干嘛。前一种代码读起来,赏心悦目感自然产生,后一种代码琢磨起来,无数头草泥马在内心乱闯,心烦意乱感无处安放。我在表达什么,在定义好的相同语义下表达,跟自然下不受约束的表达,在大规模协作的场景里,前者会持续保持平静的气息,后者却可能变成各种怨气。
📖:创建规则,不在于我们得有规则,而是要盯住,我们要达到什么目的,必须问某条规则的目的是什么,而非某条规则好就得要。
🤔:我的目标是在那里,然后我就要想办法到达目的。制定规则,就是让这个目的更容易达成,或者消除阻碍目标达成的阻力。这些就是所谓的,符合自己所需的“好”规则。忽然想到,这有点“六经注我”,还是“我注六经”的感觉。不是因为书上有好东西,所以我要去学习这些,即所谓六经注我。而是因为我有个问题,所以去翻书寻找问题的答案或启发,即所谓我注六经。不是因为规则好,所以纳入到我的规则体系,而是因为我需要哪些规则去帮助我达到目的。
—— By 术子米德 @2022.04.16
版权声明: 本文为 InfoQ 作者【术子米德】的原创文章。
原文链接:【http://xie.infoq.cn/article/ca0e818377814d0b8bf595a6c】。文章转载请联系作者。
评论