TheFirst 开发规范

关于XML文件

命名规范

1、xml文件的名字不允许大写字母,这点不是规范而是常见错误。
2、文件名以activity 或者fragment 或者view 或者item加下划线开始,其中,view 是你可能包含的view,一般是include或者viewstub里的view,item_ 是你列表里的view,比如可以是:activity_order_list.xml item_order_list.xml activity_order_detail.xml view_order_detail_top.xml等。
3、控件如果使用了data binding,请务必加id属性(不加报错!),且id最好能表明其类型,比如tv_name, iv_header, ll_order, rl_list

引用规范

1、引用id时请不要用+id/xxx 用 id/xxx 除非你实在没有办法!
2、不要在data binding里直接拼接字符串 比如 android:text=‘@{“时间 “ + item.time}’ 这样写 linux、mac没错,windows下会报错!我的建议是,data binding里不要拼接字符串,如果需要,请在item里面拼接,比如在item里写一个getTime的方法,这里用这个方法。
3、如果不确定是否要支持多国语,请不要直接使用字符串,应该写到string.xml里!

性能问题

1、能用viewstub时不用view,比如空页面,它可能压根不会展示
2、减少布局嵌套,比如用RelativeLayout而不是嵌套LinearLayout。

3、使用styles,但是考虑到自动布局

异常处理

1、不要在try 块做过多的处理,如果需要处理的比较多,请封装为一个方法
2、在异步回调里更新ui的,一定要判断当前activity是否已经销毁,ui是否存在,比如网络的回调。
3、viewmodel层里,封装判断非空为某个方法,而不是复制粘贴
4、自己捕捉的异常,可以在debug版本里抛出,但是release版本里不要抛出

类和方法

1、类名以大驼峰命名,方法以小驼峰命名,常量全用大写并以下划线隔开,比如:MyOrderActivity, viewOrderDetail(); NATIVE_PAGE
2、拒绝使用汉语拼音命名,但如果是特殊词汇,比如定制、专题、专辑、这些概念模糊的词汇,英文没法很好的表达出来时,你可以使用拼音!
3、理论上,你还可以用中文来命名变量名,但是,我们同样拒绝这样做,但可以把代码混淆成中文的!
4、少用内部类,如果非用不可,请用静态内部类,最好每个类均写到自己的文件里。
5、少用枚举,Android里影响性能,不是不让用,是不要滥用!
6、方法体不可过长,控制在半屏左右,不得超过一屏!
7、方法名、类名等必须能直接说明其作用,不可写的如同混淆后的代码,一堆aaa,bbbb,或者缩写,魔幻数字不得出现在全局变量里,在方法体内,不至于混淆的情况下允许有魔幻数字,但同样注意命名!
8、不要在for循环的条件或者循环每次结束的代码块里做无谓的判断、计算,比如for(int i =0; i < list.size(); i++) 这里,我的建议是改为int size = list == null || list.isEmpty() ? 0 : lisy.size(); for (int position = 0; position < size; position++),另外,
判断数组是否为空,请用isEmpty,而不是获取size最后判断size是否为 0 !

内存泄露和优化

1、加载图片,请指定宽高、以便优化,否则内存占用会飙升
2、非静态内部类如果继承handler可能内存泄露,这点要注意
3、在activity销毁的时候,必须销毁注册的广播、以及handler里的message等
4、不要静态的引用某个activity或者大对象,除非你确定,它在APP的整个生命周期里均不能销毁
5、按需加载,避免影响APP启动速度!比如各种第三方sdk,请不要在Application的onCreate里初始化它们!


你可能感兴趣的:(TheFirst 开发规范)