Android代码规范积累

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_40420578/article/details/89000234

AS自带的代码检测:Analyze——Inspect Code(英文提示错误类型、错误原因),利用插件Alibaba Java Coding Guidelines(汉化了)……

一些修改可以直接点击图中红色框框,会自动帮修改好,下面是整理好常见的规范:

1.所有数据get之前判空;eg:if (null != user){String userid=user.getUserId;}

2.判空的数据写在等号右边,且等号左右空一格;eg:null != user

3.onClick里面用:int i=view.getId();if—else if进行判断跳转

4.使用数据绑定时,在xml里面使用,Alt+Enter快速生成dataBing格式

5.中文字全部放在对应的module下的string,命名规则:

模块名_类名(Activity、Fragment不用)_属性(prompt(在布局输入错误)、Toast(跟后台校验后)、hint……)_意思(见名思意)

eg:module_login_login_prompt_loginSuccess(登录成功)

6.公共用到的方法抽离出来,布局中公用的也抽出来(eg:标题栏)

7.代码注释写在头上(能不写的就不写)

8.换行问题:业务逻辑、代码过长、声明变量不同类型时换行

9.定义变量不是对外开放的,都用private

10.能用单例就不用多例,能不用new就不用(耗性能)

11.Toast封装,自定义样式,调用时传上下文、显示的内容

12.数组的定义 String [] A

13.A.equals(B),   A:调用方(一定不能为null),B:参数(可以为null)

14.if后面一定加{},即使只有一行代码

15.switch里面的default加说明为什么会进入这里再break,若只有一个case时,换成if,因为效率会快

16.未经定义的常量直接使用(魔法值),"AS".equals(UserName),当中AS就是魔法值

17.定义了却没有使用的要删除,包括xml定义的域名空间

18.编码格式不能写成"utf-8",写成StandardCharsets.UTF_8

19.只要拼接了String类型的,那么全部都是String,其它的不需要转成String,eg:1+"a"(1就不用转成string)

20.包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式

21.方法内部单行注释,在被注释语句上方另起一行,使用//注释。方法内部多行注释使用/* */注释。注意与代码对齐。

22.所有的类都必须添加创建者信息。

23.在一个switch块内,每个case要么通过break/return等来终止,要么注释说明程序将继续执行到哪一个case为止;在一个switch块内,都必须包含一个default语句并且放在最后,即使它什么代码也没有。

24.利用SharePreference进行put、get时,中间加入工具类进一步封装,key用枚举来,这样子保证整个项目的key唯一(防止用太多key,会有重复的可能),put、get的key可以快速知道。

public static void setValue(Object value, SPKeyEnum key) {
    SharePreferenceUtils.put(AppMgr.application, key.getKey(), value);
}

public static Object getValue(SPKeyEnum key, Object defaut) {
  return   SharePreferenceUtils.get(AppMgr.application, key.getKey(), defaut);
}

25.项目中同一常量用处相似的,要放在常量管理类里面;eg:请求网络成功为10000,这个10000要放在AppConstant.java里面,public static final int REQUEST_SUCCESS=10000;

26.安全性代码:在管理类里写个开关,不能写在用处,不然一下子忘记注释就尴尬了;还有一些功能,可以随时隐藏,不用大量去删、注释代码,比如是否使用沉浸式状态栏,eg:

  /*是否使用本地数据配置*/
    public static boolean isLocalHost() {
        if (AppMgr.debug) {
            return true;
        } else {
            return false;
        }
    }

27.Lambda表达式

未完,后续会继续补充,有什么好的规范,评论区见!

猜你喜欢

转载自blog.csdn.net/weixin_40420578/article/details/89000234