前言
2017 年阿里云栖大会,阿里发布了针对 Java 程序员的《阿里巴巴 Java 开发手册(终极版)》,这篇文档作为阿里数千位 Java 程序员的经验积累呈现给公众,并随之发布了适用于 Eclipse 和 Intellim 的代码检查插件。为了能够深入了解 Java 程序员编码规范,也为了深入理解为什么阿里这样规定,是否规定有误,本文以阿里发布的这篇文档作为分析起源,扩大范围至业界其他公司的规范,例如谷歌、FaceBook、微软、百度、华为,并搜索网络上技术大牛发表的技术文章,深入理解每一条规范的设计背景和目标。
由于解读文章仅有两篇,所以按照阿里的篇幅权重分为上篇仅针对 Java 语言本身的编码规约,下篇包含日志管理、异常处理、单元测试、MySQL 规范、工程规范等方面内容进行解读。本文是上篇,主要针对编码规约部分进行解读,由于篇幅限制,仅挑选一小部分进行解读,如果需要全篇,请联系本文作者。
编码规约
命名风格
下划线或美元符号
阿里强制规定代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
例如以下为错误,如清单 1 所示:
清单 1 错误示例
_name/__name/ O b j e c t / n a m e / n a m e Object/name_/name Object/name/name/Object$。
我的理解
Oracle 官网建议不要使用 或 者 开 始 变 量 命 名 , 并 且 建 议 在 命 名 中 完 全 不 要 使 用 " 或者_开始变量命名,并且建议在命名中完全不要使用" 或者开始变量命名,并且建议在命名中完全不要使用""字符,原文是"The convention,however,is to always begin your variable names with a letter,not 'KaTeX parse error: Expected group after '_' at position 7: ' or '_̲'"。对于这一条,腾讯的看法是…"符号,但只在系统生成中使用ÿ