推荐阅读:
- 面试BAT 却被小小字符串秒杀?这13道题帮你一举击败字符串算法题
- 秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等
- 美团一面凉凉:MySQL+Java+Redis+算法+网络+Linux等一个都讲不清
面试BAT 却被小小字符串秒杀?这13道题帮你一举击败字符串算法题
统计了内部一个准备开源的Java项目不规范的代码数量及种类,数据比较敏感,不便公开。但是最经常出现的不规范类型可以说一下。
早先自己也去分享过代码规范,试着猜过哪些代码规范问题可能会犯,但靠猜不能解决问题,用内部的项目插件扫了一下,统计所有出现代码问题如下。
代码规范问题
01 命名
最常见的问题,代码规范中接近大半的命名问题都有犯。
(1)包名应该全部小写
【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用 单数形式,但是类名如果有复数含义,类名可以使用复数形式。 正例:应用工具类包名为 com.alibaba.ai.util、类名为 MessageUtils(此规则参考 spring 的框架结构)
(2)命名不能以_或者$开头
代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束。
反例:__name / $name
(3)类名使用UpperCamelCase风格
【强制】类名使用 UpperCamelCase 风格,但以下情形例外:DO / BO / DTO / VO / AO /
PO / UID 等。
正例:MarcoPolo / UserDO / XmlService / TcpUdpDeal / TaPromotion
反例:macroPolo / UserDo / XMLService / TCPUDPDeal / TAPromotion
(4)方法名没有使用lowerCamelCase风格
【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase 风格,必须遵从 驼峰形式。 正例: localValue / getHttpMessage() / inputUserId
(5)常量命名应该全部大写并且以下划线分隔
【强制】常量命名全部大