更新时间:2022-09-25 12:46:46
在其它设计领域《手册》也明确了软件设计底线如果超过规定的阈值则需要进行有针对性的软件设计与文档沉淀。
如果有兴趣了解更多可参考文末说明第一时间购得此书甚至有机会免费获得作者签名版。
今天我们也有幸邀请了作者孤尽请他来聊聊规约背后的故事与初心。
孤尽别人都说我们是搬砖的码农但我们知道自己是追求个性的艺术家。也许我们不会过多在意自己的外表和穿着但在我们不羁的外表下骨子里追求着代码的美、系统的美代码规范其实就是一个对程序美的定义。
但是这种美离程序员的生活有些遥远尽管编码规范的价值在业内有着广泛的共识在现实中却被否定得一塌糊涂。工程师曾经最引以为豪的代码因为编码规范的缺失、命名的草率而全面地摧毁了彼此的信任并严重地制约了相互的高效协同。工程师一边吐槽别人的代码一边写着被吐槽的代码频繁的系统重构和心惊胆战的维护似乎成了工作的主旋律。
那么如何走出这种怪圈呢众所周知互联网公司的优势在于效率它是企业核心竞争力。体现在产品开发领域就是沟通效率和研发效率。对于沟通效率的重要性可以从程序员三大“编程理念之争”说起
在美剧《硅谷》中你也许会记得这样一个经典镜头主人公Richard与同为程序员的女友分手理由是两人对缩进方式有着不同的习惯互相拧巴地鄙视着对方的cody style。Tab键和空格键的争议在现实编程工作中确实存在。《阿里巴巴Java开发手册》以下简称“《手册》”明确地支持了4个空格的做法如果一定要问理由没有理由因为能够想出来的理由就像最坚固的盾一样总有更加锋利的矛会戳破它。只想说一致性很重要无边无际争论的时间成本与最后的收益是成反比的。
if单语句是否需要换行也是争论不休的话题。相对来说写过格式缩进类编程语言的开发者更加习惯于不加大括号。《手册》中明确if/for单行语句必须加大括号因为单行语句的写法容易在添加逻辑时引起视觉上的错误判断。此外if不加大括号还会有局部变量作用域的问题。
左大括号是否单独另起一行因为Go语言的强制不换行在这点上“编程理念之争”的销烟味没有那么浓。如果一定要给一个理由那么换行的代码可以增加一行对于按代码行数考核工作量的公司员工肯定倾向于左大括号前换行。《手册》明确左大括号不换行。
这些理念之争的本质就是自己多年代码习惯生的茧不愿意对不一样的风格妥协不愿意为了团队的整体效能提升而委屈自己。其实很多编程方式客观上没有对错之分一致性很重要可读性很重要团队沟通效率很重要。
有一个理论叫帕金森琐碎定律一个组织中的成员往往会把过多的精力花费在一些琐碎的争论上。程序员天生需要团队协作而协作的正能量要放在问题的有效沟通上。个性化应尽量表现在系统架构和算法效率的提升上而不是在合作规范上进行纠缠不休的讨论、争论最后没有结论。规范不一就像下图中的小鸭子和小鸡对话一样言语不通一脸囧相。
鸡同鸭讲也恰恰形容了人与人之间沟通的痛点自说自话无法达成一致意见。再举个生活中的例子交通规则靠左行还是靠右行两者孰好孰坏并不重要重要的是必须要在统一的方向上通行表面上限制了***但实际上是保障了公众的人身安全。试想如果没有规定靠右行驶那样的路况肯定拥堵不堪险象环生。同样过分***随意、天马行空的代码会严重地伤害系统的健康影响到可扩展性及可维护性。
为了帮助开发人员更好地提高研发效率阿里巴巴集团基于《手册》内容独立研发了一套自动化IDE检测插件。该插件在扫描代码后将不符合《手册》的代码按block/critical/major三个等级显示在下方编写代码时还会给出智能实时提示告诉你代码如何编写可以更优雅、更符合大家共同的编程风格对于历史代码部分规则实现了批量一键修复功能。
插件下载地址https://github.com/alibaba/p3c
如何预定此书
复制以下口令在天猫、淘宝APP直接打开。促销价不到25元一顿午饭钱换得受益一生的良好编码习惯。
复制整段信息打开天猫APP即可查看此商品:【阿里巴巴Java开发手册 java语言编程教程书籍 java设计模式 阿里官方Java代码规范标准 java应用开发教程 java程序设计】(未安装App点这里http://zmnxbc.com/s/uvx2d?tm=533ee1 )喵口令
如何免费获得此书
在留言区聊一聊你眼中的软件设计底线有机会免费获得作者签名版的《阿里巴巴Java开发手册》一本限量10名。
原文发布时间为2017-12-18
本文作者孤尽