Android的代码规范及阿里巴巴最新Java开发手册福利
作者Blog ~ ~ 黄成科
最新版本:阿里巴巴Java开发手册v1.3.0(终极版本)
阿里巴巴Java手册 ~ ~ 阿里巴巴Java开发手册v1.2.0
studio配置CodeStyle可以很好的帮助我们检测代码规范性,保持大家的代码统一,来看看怎么配置和使用吧
代码规范,自己公司的一套
代码规范
一、 简介
A. 目的
本文提供一整套编写高效可靠的 Java代码的标准、约定和指南。它们以安全可靠的软件工程原则为基础,使代码易于理解、维护和增强。而且,通过遵循这些程序设计标准,你作为一个 Java软件开发者的生产效率会有显著提高。经验证明,若从一开始就花时间编写高质量的代码,则在软件开发阶段,对代码的修改要容易很多。最后,遵循一套通用的程序设计标准将带来更大的一致性,使软件开发团队的效率明显提高。
Note: 规范编码的目的是让开发者更容易理解其他人的代码,而不是约束你编码的方式
B. 范围
本指南仅适用于使用Java编写的Android程序代码。
C. 参考资料
http://www.oracle.com/technetwork/java/codeconvtoc-136057.html
http://source.android.com/source/code-style.html
二、 快速入门
l 驼峰式命名(大小写交替)
错误:
public classmyClass
publicinterface foo
public finalstatic int max = 100
public intFooValue
正确:
public classMyClass
publicinterface IFoo
public finalstatic int MAX = 100
public intfooValue
l 使用Javadoc识别的注释
在函数声明前添加注释(输入”/**”+回车)
l 精简函数体(最好不要超过40行)
l 局部变量随用随声明(尽量缩小变量的作用域)
l 每行最长100字符
l 缩进用4个空格代替TAB
l 成员变量名用m开头,static变量名用s开头
l 前大括号“{”不要单占一行
错误:
if(condition)
{
//dosomething
}
正确:
if(condition) {
//do something
}
l 多利用标准注解
错误:
publicvoidonCreate(Bundle savedInstanceState) {
正确:
@Override
publicvoidonCreate(Bundle savedInstanceState) {
l 少用不常见缩写
错误:opnDlg
正确:openDialog
三、 命名
A. Java命名规范
命名应符合驼峰式规则,利用大小写字母交替来区分名称中的不同单词,即应采用小写字母,但类名、接口名以及任何非初始单词的第一个字母要大写。
1. 尽量使用完整的英文描述符,采用适用于该领域的术语
2. 采用大小写混合使名字可读
3. 尽量少用缩写,但如果用了,要明智地使用。
4. 避免使用类似的名字,或者仅仅是大小写不同的名字
类型 |
规则 |
示例 |
包名 |
全部小写字母,URL倒序 |
package com.domain.project |
类名 |
首字母大写,使用描述性强的名词,避免使用缩写,除非该缩写十分通用(Url、Html) |
class Raster; class ImageSprite; |
接口 |
同上。通常以字母I开头。回调接口等特殊情况可不加I。 |
interface IRasterDelegate; interface IStoring; interface OnClickListener; |
方法 |
使用动词,驼峰式命名,首字母小写 |
run(); runFast(); getBackground(); |
变量 |
使用有意义的简短的单词,驼峰式,首字母小写。 成员变量m开头,JavaBean例外。 static变量s开头。 |
int i; float myWidth; int mPrivate; static MyClass sSingleton; |
常量 |
全部大写,用下划线分割单词,static final修饰 |
static final int MIN_WIDTH = 4; |
B. Android命名规范
类型 |
规则 |
示例 |
Activity |
XxxxActivity |
MainActivity |
View |
XxxView,XxxLayout |
RedTextView、BluetoothDialog |
Service |
XxxService |
|
BroadcastReceiver |
XxxxReceiver |
|
工具方法类 |
Utils或Manager为后缀 |
ThreadPoolManager、LogUtils |
基础类 |
BaseXxx |
BaseActivity、BaseFragment、BaseDao |
布局xml |
全部小写,以下划线分割,使用名词命名。Activity或Fragment的布局文件必须与其类名对应,对应规则为:将所有字母都转为小写,将类型和功能调换。 |
activity_main.xml fragment_homework.xml dialog_bluetooth.xml //对话框 item_message.xml //列表Item vw_titlebar.xml //其他布局文件 |
布局id |
全部小写,以下划线分割,view缩写_view的逻辑名称 |
layout_city、tv_name、btn_submit、img_head、list_message |
图片文件 |
全部小写,以下划线分割。 |
xxxx_checked.png xxxx_focused.png xxxx_selected.png xxxx_pressed.png xxxx_disabled.png xxxx_normal.png |
Drawable xml |
selector_xxx、shape_xxx |
四、 注释
1. 每个类必须有文件头注释。简要说明类的作用,注明作者和创建时间。标准模板:
/**
* Filedescription.
*
* @author ${USER}
* @date ${DATE}
*/
2. 大部分方法都需要方法注释,一些不言自明的方法除外。简要说明方法作用,并解释参数、返回值、抛出异常。方法注释请使用JavaDoc标准。例如:
/**
* Description.
*
* @param arg1 description
* @param arg2 description
* @return description
* @throws Exception description
*/
public int getFoo(int arg1, booleanarg2) throws Exception {
return 0;
}
3. 关键逻辑或者较复杂的逻辑处,应该添加必要的注释。单行注释使用”//”,多行注释使用/**/。
4. 注释必须在程序改变时实时更新。
5. 简单明了,确保任何程序员都可以读懂。
五、 其他规范
1. 所有文件编码格式为UTF-8。
2. 变量的作用域应该尽量小,需要时才声明,并尽快进行初始化。
3. 前大括号不要单独占用一行,不要省略单行代码块的大括号。
正确:
if (condition) {
statements;
}
错误:
if (condition) //没有大括号
statement;
错误:
if (condition) //前大括号单独占用一行
{
statement;
}
4. 尽量少使用缩写,除非该缩写很常见(Html、Url)
5. 缩进使用4个空格替代Tab。
6. 编写代码后必须格式化。AndroidStudio默认格式化快捷键:Ctrl+Alt+L。
7. 在代码中逻辑性代码块的起始、结尾处,都应该加入空行,并在起始处写注释。
相对独立的程序块之间必须加空行。
8. 一行代码不超过100字符。超过100字符,请换行或者提取变量。
9. 方法体不超过40行。若超过,则应考虑拆分成多个方法。
10. 尽量避免使用枚举类,使用常量代替。
11. 只要是合法的,就把@Override注解给用上。
12. 规范TODO使用,加上日期和描述,并及时解决删除。AndroidStudio中可以敲todo来使用标准模板。例如:
// TODO: 2017/1/5简单描述
13. 采用统一的LogUtils来输出Log。输出的Log要简明扼要。充足的log可以便于定位错误,但Log太多会影响程序性能(I/O耗时)。正式版本应该关闭Log开关。
14. Java文件中不允许有多余的import,不允许importjava.io. *
15. Warning要解决。
16. 不允许硬编码,状态值必须定义常量,并添加注释。
配置CodeStyle
Android Studio统一配置
1. 配置CodeStyle
按照上图标注顺序,导入AndroidCodeStyle.xml文件。
2. 工程文件编码统一为UTF-8
3. 注释模板
注意:请将${USER}修改为自己的名称,模板前后不要有多余的空格与换行符。
/**
* File description.
*
* @author ${USER}
* @date ${DATE}
*/
4. 安装使用CheckStyle插件
安装完成后,重启AndroidStudio。然后添加CheckStyle脚本:
配置实时检查
:
使用方法简介:
- 配置好实时检查后,在编辑器中,不符合风格的代码会直接出现警告:
- 在Java文件中右键,点击如图选项,即可查看当前文件所有不符合风格的代码段:
Android的代码规范及阿里巴巴最新Java开发手册福利相关推荐
- 阿里巴巴《Java开发手册》2020最新版发布!
致全球Java开发者: 代码是二进制世界的交流方式,极致的代码是我们的荣耀. 2017年春天,<阿里巴巴Java开发手册>发布,我们希望在涵盖编程规约.异常日志.单元测试.安全规约.MyS ...
- 阿里巴巴《Java开发手册》2019最新版下载!
2017年春天,<阿里巴巴Java开发手册>发布,在涵盖编程规约.异常日志.单元测试.安全规约.MySQL数据库.工程规约.设计规约等7个维度上为Java开发者提供了很多有用的帮助. 目前 ...
- 阿里巴巴《Java开发手册(泰山版)》
现代软件行业的高速发展对开发者的综合素质要求越来越高,因为不仅是编程知识点,其它维度的知识点也会影响到软件的最终交付质量.比如:数据库的表结构和索引设计缺陷可能带来软件上的架构缺陷或性能风险:工程结构 ...
- idea p3c 自定义_IDEA 阿里巴巴 P3C Java开发手册 [MD]
我的GitHub我的博客我的微信我的邮箱 bqt20094 baiqiantao@sina.com 目录 Java开发手册 P3C是世界知名的反潜机,专门对付水下潜水艇,项目组使用此名称寓意是扫描出所 ...
- 阿里巴巴《Java开发手册》学习总结分享
手册是从7个大部分进行分类讲述的,而这7个部分也是在进行java开发的时候肯定会涉及到的,所以也基本可以说是为java制定了阿里巴巴版本的开发规范.这次是第二次进行学习了,前后学习后的感觉是不一样的, ...
- 为什么阿里巴巴Java开发手册编码规范里推荐单个方法的总行数不超过80行
该篇文章参考了: 1. 阿里巴巴<java开发手册>v1.5.0 华山版 2. <码出高效:Java开发手册> 单个方法的总行数不超过80行 在阿里巴巴<java开发手册 ...
- 最新版阿里巴巴Java开发手册(嵩山版)-附免费下载链接
2020年8月3日,阿里技术官方宣布,阿里巴巴<Java 开发手册(嵩山版)>现已正式发布. <阿里巴巴 Java 开发手册>始于阿里内部规约,在全球Java开发者共同努力下, ...
- 阿里巴巴Java开发手册(黄山版)
阿里巴巴 Java 开发手册(黄山版) 链接:https://pan.baidu.com/s/1iKsXlq1DSbePLvuysYbA4A 提取码:yyds 阿里巴巴将 Java 开发手册 从 1. ...
- JAVA开发手册华山版 - 学习笔记
JAVA开发手册华山版 关于Java开发手册 JAVA开发手册(华山版)下载 一.编程规约 1. 编程风格 2. 常量定义 3. 代码格式 4. OOP规约 5. 集合处理 6. 并发处理 7. 控制 ...
最新文章
- HDU4081(次小生成树)
- C++继承中父类和子类之间的同名覆盖
- wpf 用户自定义事件传参
- 【LeetCode】105#从前序与中序遍历序列构造二叉树
- 好文推荐 | 从数据的属性看数据资产
- 受检异常和非受检异常
- android sudio jni 调用so_Android NDK-深入理解JNI
- 如何快速导入SVN服务器的项目代码
- 关于unity如何制作mmo
- 我们决定聚在一起搞件大事
- 简单使用apipost和jmeter 测试接口
- 一个月的java工作总结
- java mac air_敲代码的Macbook Air2020终于到啦
- 接收邮件服务器(pop3,邮件接收(POP3或IMAP)服务器是什么
- svg, ttf, woff, woff2图标的转换
- 时序动作定位 | I3D(Inflated 3D ConvNet) 与 UNT(UntrimmedNets) 特征模型
- badwords.php,ucenter中词语过滤原理分析
- 治疗失眠的中医食疗方
- MacOS 校验iso sha256值、md5值,linux
- 直接打印RAW文件到打印机(一)
热门文章
- 微信小程序基础之开源项目库汇总
- ibm服务器有哪些型号,IBM服务器各个机型所对应ServerGuide引导光盘.doc
- 搁浅一笺思念,静候几度时光。
- BBEdit 12.6.1 FIXED 特别版 Mac 强大的文本和HTML编辑器及汉化工具
- 自己动手编译QGIS 3.18源代码,含出错大全和解决办法
- 如何在QEMU上执行iOS并启动一个交互式bash shell,内含整个安装流程并且提供了相关工具(二)
- 网易云音乐插件v2.8.2 安卓版
- LeetCode---2021/8/30
- 效率低,协同难,看数字化如何加速客服行业转型丨创新场景50
- App logcat日志分析