规范建议
- 本文档参考《阿里巴巴 Java 开发手册》撰写而成.撰写人:Simon,撰写时间:2022/1/26
一、命名规范
命名原则:单一,简洁,易懂
- 任何变量名建议采用驼峰命名法
- TextView tvName = findViewbyId(R.id.tv_name);
- 全局变量建议在变量名前面增加前缀m
- private UserModel =mUser;
- 布局命名方式建议统一命名
- activity的用act_开头
- fragment用frag_开头
- dialog用dialog_开头
- popupwindow统一用pop_开头
- 其他自定义view统一用view_开头;
- tips:后面但凡涉及到页面有关的命名,都建议统一加上此处的命名规则
- 控件id建议采用_分隔,同时参考布局命名方式,以对应的View的缩写命名
- TextView的命名前缀一定是tv:R.id.tv_user_info
- item的命名前缀一般是item:R.id.item_xxxx
- 资源文件命名方式
- 图片统一开头icon:icon_header
- 选择器命名:select-XXX
- 背景页建议采用bg_act_XXX或者bg_frag_XXX的方式命名
- String国际化文件命名,必须要保证每个页面每个地方的文字的key都是唯一的,哪怕翻译文案完全相同,也不要复用
- act_title_XXX或frag_title_XXX,
- 禁止使用字符串拼接的方式去做国际化
- 建议不要写死view的宽度,因为不同语种下的文案长度可能不同
- colors命名规则
- 格式全部一致:color_000000,直接把颜色值放在color后面,避免起名困难症,如果有透明度,需要在前两位增加透明度
- 屏幕适配规则:建议直接采用今日头条适配方案,侵入性小,兼容性高,部分规则性高度,比如状态栏高度,标题栏高度可写入dimens文件
二、组件UI规范
原则:高内聚,低耦合,高并发,高性能
- 逻辑复杂的代码必须有注释,在关键的步骤进行说明
- 少用匿名内部类,避免出现内存泄露问题,使用了动画的匿名内部类监听的话,要及时调用remove等方法去释放
- 不要在onSaveInstanceState里面去保留常规数据,因为这里一般是意外销毁才调用
- Intent隐式跳转的时候,必须resolveActivity进行检测
- 如果需要在Service里进行耗时操作,建议开启子线程或者使用IntentService
- 布局嵌套能少则少
- 尽量使用DialogFragment替代以前的dialog,以便于进行生命周期的管理
- 常用控件需要抽取封装
- 弃用SrollView,使用NestedScrollView替代,对性能会有提升
- RecyclerView刷新数据的时候,避免使用notifydataset方法,建议采用notifyItemChanged等相关方法去操作单一的数据变化,高频刷新可以采用带payload的方法去实现
通信规范
- 禁止new thread,使用线程池来替代
- 尽量传单一变量:如id之类的字段,对象继承自Parcelable不要继承Serializable,大量数据建议采用eventbus、rxbus等传递
版本管理规范
- 无用代码尽量及时删除,不要留着对正常代码产生干扰,如果需求要求还原,建议从历史版本里寻找相关代码
- 提交代码尽量详细的描述提交的内容,一来便于自测,二来便于沟通
- 建议每完成一个功能模块都要提交一次代码,细分提交便于应对需求的频繁调整
网友评论