Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!
当前位置: 主页 > Java文档 > Java基础相关 >

唯品会Java开发手册 1.0.2版本 PDF 下载


分享到:
时间:2020-11-20 09:55来源:http://www.java1234.com 作者:小锋  侵权举报
唯品会Java开发手册 1.0.2版本 PDF 下载
失效链接处理
唯品会Java开发手册 1.0.2版本 PDF 下载

本站整理下载:
 
相关截图:


主要内容:

1. 概述 《阿⾥巴巴Java开发⼿册》,是 个对外公布的企业级Java开发⼿册,对整个业界都有重要的意义。 我们结合唯品会的内部经验,参考《Clean Code》、《Effective Java》等重磅资料,增补了⼀些条⽬,也做 了些精简。 感谢阿⾥授权我们定制和再发布。 2. 规范正⽂ 4. 命名规约 5. 格式规约 6. 注释规约 7.  法设计 9. 类设计 :. 控制语句 <. 基本类型 =. 集合处理 >. 并发处理 42. 异常处理 44. ⽇志规约 45. 其他设计 注意: 如需全⽂pdf版,请下载源码,在docs/standard/⽬录运⾏merge.sh⽣成。 3. 规范落地 规则落地主要依靠代码格式模版与Sonar代码规则检查。 其中Sonar规则不如⼈意的地 ,我们进⾏了定制。 Eclipse/Intellij 格式模板 Sonar 规则修改示例 4. 参考资料 《Clean Code》 《Effective Java 2nd》 《SEI CERT Oracle Coding Standard for Java》(在线版) Sonar Java Rules 5. 定制记录 《唯品会Java开发⼿册》-与阿⾥⼿册的⽐较⽂学I 阿⾥⼿册的增补与删减记录
vip-java-standard.md 10/30/2020
2 / 48
(⼀) 命名规约 Rule 1. 【强制】禁⽌拼⾳缩写,避免阅读者费劲猜测;尽量不 拼⾳,除⾮中国式业务词汇没有通 易懂的 英⽂对应。 禁⽌: DZ[打折] / getPFByName() [评分] 尽量避免:Dazhe / DaZhePrice
Rule 2. 【强制】禁⽌使 ⾮标准的英⽂缩写 反例: AbstractClass 缩写成 AbsClass;condition 缩写成 condi。 Rule 3. 【强制】禁 其他编程语⾔⻛格的前缀和后缀 在其它编程语⾔中使 的特殊前缀或后缀,如_name, name_, mName, i_name,在Java中都不建议使 。 Rule 4. 【推荐】命名的好坏,在于其“模糊度” 1)如果上下⽂很清晰,局部变量可以使  list 这种简略命名, 否则应该使  userList 这种更清晰的命 名。2)禁⽌ a1, a2, a3 这种带编号的没诚意的命名 式。 3) 法的参数名叫 bookList , 法⾥的局部变量名叫 theBookList 也是很没诚意。 4)如果⼀个应 ⾥同时存在 Account、AccountInfo、AccountData 类,或者⼀个类⾥同时有
getAccountInfo()、getAccountData(), save()、 store() 的函数,阅读者将⾮常困惑。 5) callerId 与 calleeId, mydearfriendswitha 与 mydearfriendswithb 这种拼写极度接近,考 验阅读者眼⼒的。 Rule 5. 【推荐】包名全部⼩写。点分隔符之间尽量只有⼀个英语单词,即使有多个单词也不使 下划线或⼤ ⼩写分隔 正例: com.vip.javatool
反例: com.vip.java_tool, com.vip.javaTool
Sonar-120{Package names should comply with a naming convention
vip-java-standard.md 10/30/2020
3 / 48
Rule 6. 【强制】类名与接⼝名使 UpperCamelCase⻛格,遵从驼峰形式 Tcp, Xml等缩写也遵循驼峰形式,可约定例外如:DTO/ VO等。 正例:UserId / XmlService / TcpUdpDeal / UserVO
反例:UserID / XMLService / TCPUDPDeal / UserVo
Sonar-101{Class names should comply with a naming convention Sonar-114{Interface names should comply with a naming convention Rule 7. 【强制】 法名、参数名、成员变量、局部变量使 lowerCamelCase⻛格,遵从驼峰形式 正例: localValue / getHttpMessage();
Sonar-100{Method names should comply with a naming convention Sonar-116{Field names should comply with a naming convention Sonar-117{Local variable and method parameter names should comply with a naming convention Rule 8. 【强制】常量命名全⼤写,单词间 下划线隔开。⼒求语义表达完整清楚,不要嫌名字⻓ 正例: MAX_STOCK_COUNT 
 
反例: MAX_COUNT
例外:当⼀个static final字段不是⼀个真正常量,⽐如不是基本类型时,不需要使 ⼤写命名。
private static final Logger logger = Logger.getLogger(MyClass.class); 例外:枚举常量推荐全⼤写,但如果历史原因未遵循也是允许的,所以我们修改了Sonar的规则。 Sonar-115{Constant names should comply with a naming convention Sonar-308{Static non-final field names should comply with a naming convention Rule 9. 【推荐】如果使 到了通 的设计模式,在类名中体现,有利于阅读者快速理解设计思想 正例:OrderFactory, LoginProxy ,ResourceObserver
vip-java-standard.md 10/30/2020
4 / 48
Rule 10. 【推荐】枚举类名以Enum结尾; 抽象类使 Abstract或Base开头;异常类使 Exception结尾; 测试类以它要测试的类名开始,以Test结尾 正例:DealStatusEnum, AbstractView,BaseView, TimeoutException,
UserServiceTest
Sonar-2166{Classes named like "Exception" should extend "Exception" or a subclass Sonar-3577{Test classes should comply with a naming convention Rule 11. 【推荐】实现类尽量 Impl的后缀与接⼝关联,除了形容能⼒的接⼝ 正例:CacheServiceImpl 实现 CacheService接⼝。 正例: Foo 实现 Translatable接⼝。 Rule 12. 【强制】POJO类中布尔类型的变量名,不要加is前缀,否则部分框架解析会引起序列化错误 反例:Boolean isSuccess的成员变量,它的GET 法也是isSuccess(),部分框架在反射解析的 时候,“以为”对应的成员变量名称是success,导致出错。 Rule 13. 【强制】避免成员变量, 法参数,局部变量的重名复写,引起混淆 类的私有成员变量名,不与⽗类的成员变量重名  法的参数名/局部变量名,不与类的成员变量重名 (getter/setter例外) 下⾯错误的地 ,Java在编译时很坑⼈的都是合法的,但给阅读者带来极⼤的障碍
 
 

------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐