《App研发录》读书笔记 (4) 第4章 Android命名规范和编码规范
来源:互联网 发布:win10禁止安装软件设置 编辑:程序博客网 时间:2024/06/10 05:02
前言
- 作为一名开发人员,如果具有良好的命名习惯和编码规范,于人于己都是一件非常有利的事情,方便快速阅读公司项目框架,快速上手代码.曾几何时,初出茅庐的我们曾经是否因接收到乱糟糟的代码而感觉到头疼和愤怒.
- 因此,本篇文章的意义:主要在于记录书上一提供的一套命名规范,方便我们及时查阅.因为在下了解到,有些童鞋居然用拼音命名还自我感觉良好,实在令人汗颜= =b.
- 当然每个公司都有自己的规范要求,各位因地制宜.
命名规范
- Java类:
activity:以activity作为后缀.例如:PersonActivity;
adapter:以adapter作为后缀.例如:PersonAdapter;
Entity:以entity作为后缀.例如:PersonEntity; 资源文件:
layout目录下:
1.页面布局文件:以act_为前缀,模块package为中缀,去掉activity后为后缀.例如:Person模块的AddCustomActivity的布局文件命名为:act_person_addcustom.xml
2.ListView中的Item布局文件.以item_为前缀,列表项的名称为后缀.控件名称为:lvUserList,Item的布局文件命名为:item_lvUserList.xml
3.Dialog布局文件.dlg_为固定前缀,Dialog的功能名称为后缀.例如:dlg_hint.xmldrawable目录文件下:
一个页面共用,用页面前缀;
一个模块共用,用模块前缀;
全局使用:commonjava类中控件对象:
控件类型缩写+控件的逻辑名称:例如:btnLogin;layout中控件对象:
建议和activity中相对应的控件名称保持一致.例如:R.id.btnLogin;strings.xml中常量:
所在activity名称 + 控件名称 + 功能/描述,例如:loginActivity_btnLogin_text;拆分Strings.xml:
strings_ + 模块名称,例如: strings_module_a.xml;常量名称:
只能包含之母和下划线,字母全部大写并用链接;
代码规范
Activity中的onCreate:是设计模式中单一职责原则的体现.
initVariables():初始化变量.
initView():初始化控件
loadData():初始化数据坚持使用fastJSON自定义实体来作为MobileAPI的数据载体.
- 页面之间传值,坚持使用Intent携带序列化实体数据的方.禁止为了省事使用全局变量进行传值.
- 为控件添加事件,初始化下面就直接添加事件.
- activity中不能使用嵌套的内部类
- Adapter规范:
统一放在adapter这个包中.
adapter绑定数据,一律为ArrayList;
adapter创建适合于自身列表的ViewHolder实体类,统一命名为ViewHolder. - 不同模块的实体类不能共享.
- 为节省内存,请使用ArrayList,而不是HashMap
- 图片的处理,统一使用ImageLoader\fresco
- SharedPreferences保存简单配置信息,对于复杂的对象,还是要存储到本地文件中
- 数据类型转换一定要进行校验.失败要有默认值,使用try-catch保护,避免空指针
- 使用常量来代替枚举类型
- 《App研发录》读书笔记 (4) 第4章 Android命名规范和编码规范
- Android 命名规范和编码规范
- Android开发命名规范和编码规范
- Android开发命名规范和编码规范
- android命名规范和编码规范
- Android 命名规范和编码规范
- Android 命名规范和编码规范
- Android开发命名规范和编码规范
- Android开发命名规范和编码规范
- Android命名规范和编码规范
- Android开发命名规范和编码规范
- Android开发命名规范和编码规范
- android 编码规范,命名规范
- android编码命名规范
- Android编码命名规范
- Android编码命名规范
- Android编码命名规范
- 读书笔记-App研发录-第7章-ProGuard技术详解
- 掌握需求过程
- 图像平均及其在降噪方面的应用
- extjs查找表单中的文本框值
- 美化博客的一些实用方法
- 思考
- 《App研发录》读书笔记 (4) 第4章 Android命名规范和编码规范
- MongoDB_类型操作符
- HTML5(八)canvas转换之万花筒
- QT 5 初学1 多窗口切分-续
- Navicat连接SQL Server2000提示错误08001
- Unfinished List
- 史上最简单的openshift免费空间上传代码教程!没有之一!
- iOS 【CocoaPods 全攻略】
- 个人笔记 js 14 js实现点击单元格行跳转链接到指定页面