最近,发布了新版本的《阿里巴巴Java开发手册》(您可以在github alibaba-p3c上直接获得相关资源)。让我关注此事,并谈谈我对开发规范的理解。当涉及到开发规范时,我最记得的是在研究生院期间带我到我这里的导师的要求。当时,我正在开发B / S 3D渲染引擎,其中负责Web部分。在我哥哥的代码审核过程中,他做了一个“船尾”。对我的批评(当时我一直非常感谢他。严格的要求),原因无非就是我开发的网页的一部分是文字介绍,标点符号混杂使用中文和英文,并且代码不规范,例如缩进不一致,没有空格等。从那时起,我就非常重视代码规范。这在促进我自己的毕业论文等方面也起了很好的作用,因为导师对该领域的要求相对严格。回到代码规范的问题,好的代码真的很令人愉快,当然,我一直在追求编写好的代码。代码规范中的代码样式只是最简单的一种。上面提到的Java开发手册也对此部分进行了严格的描述,但是实际上没有多少人可以做到这一点。从逻辑上讲,这部分也是最容易做到的,因为有一个模板,只需直接跟随它即可。我记得有一个关于一对夫妇的电视节目(它叫什么?),因为他们纠结于是否与空格或Tab键(或Vim和Emacs)分手。哈哈,当然,这是个玩笑。但是,有必要在团队中保持统一的代码样式。毕竟,您不是唯一阅读所编写代码的人。在不同的终端和不同的编辑器中,空格和选项卡可能会显示不同的效果。影响了阅读体验。 (图1. hackthon团队的合影)关于代码规范,我也希望通过自己的努力来感染周围的人。例如,在之前CreditEase的hackthon上,我组队并启动了一个名为“代码审查顾问”的项目。目标实际上很简单,那就是让每个人都预先按照统一的标准进行编码。如果违反该标准,则“注释”表单会直接告诉代码提交者需要对其进行修改。 (图2. hackthon项目的屏幕截图)后来,当我去DJI时,我要求团队的学生严格遵守规范,并使用一些技术手段完全标准化了每个人提交的代码。违反相应规则的代码不允许提交和打包。当时,它实际上是在使用阿里巴巴的外部开源工具支持。我不得不说,我仍然很欣赏阿里巴巴对社区的相应贡献。现在,当我在阿里时,由于各种历史原因,我发现现实是规范实际上是一个好的愿景,实际上,每个人的代码都没有按照预期的规范实施和实施。这也应该是当前的现状。就像在一次交流会上一样,孤独的老板说,绝对需要一个美丽的愿景,要实现她,每个人都需要花费时间和精力来前进。 (图3和Golden Boss签名版开发手册)上面的图片是在那个交流会议上,我得到了开发手册的Lonely Boss签名版(请原谅我无知而又不认识它)。下面,我将使用示例之一来说明该规范的好处。公共类SimpleDateFormatTest {公共静态最终SimpleDateFormat simpleDateFormat = new SimpleDateFormat(“ yyyy-MM-dd HH:mm:ss”); public static void main(String [] args){Date now = new Date();字符串printDate = simpleDateFormat .format(now); System.out.println(printedDate); for(int i = 0; i& lt; 10; i ++){new Thread(new Runnable(){@Override public void run(){try {Date date = simpleDateFormat.parse(printedDate); System.out.println (simpleDateFormat.format(date));} catch(ParseException e){e.printStackTrace();}}})。start();}}}上面的代码片段是SimpleDateFormat使用场景中的一个错误示例。在规范中提到。这实际上是线程安全问题。运行以上代码片段,预期输出应为正确的字符串表达式(例如2020-04-25 15:41:34),实际过程可能会引发异常(例如java.lang.NumberFormatException),或者可能会输出一些奇怪的时间(例如0015-03-25 15:41:34),这实际上是可以的,因为毕竟不是正常的就是“时间不正常”。最可怕的是它可能会输出一个t