写在文章之前
无规矩不成方圆,一个部队没有铁的纪律,则不能胜任严酷的战场环境,一个公司,一个团队,没有规矩,则是一盘散沙,…
1.为什么要有代码规范
在一个团队里,每个人都有自己的代码风格,但是,如果任由其自我发挥,代码风格就越来越凌乱,不便于整体代码的维护和代码传承;
在开始一个新项目之前,最好有项目经理制定出代码的编写规范,包括采用哪种技术方案,框架选择,代码注解方式等等
2.代码规范都包括哪些部分
- 包的命名
- 类的命名
- 变量,常量的命名
- 代码注释模板—类的注释,方法,变量等等
常用的命名规则有两种:
- 驼峰命名法:又称小驼峰命名法。除了首个单词首字母小写除外,其余所有单词所有首字母都要大写。
- 帕斯卡命名法:又称大驼峰命名法。所有单词首字母大写。
包的命名规范
包名全部小写
建议采用如下规则:【com】.【公司名/组织名】.【项目名称】.【模块名】
com.projectname.xx
常见的包分层结构:
com.xxx.xxx.view –> 自定义view 或者是View接口
com.xxx.xxx.activities –> activity类
com.xxx.xxx.fragments –> fragment类
com.xxx.xxx.adapter –> 适配器相关
com.xxx.xxx.utils –> 公共工具类
com.xxx.xxx.bean –> 实体类
com.xxx.xxx.service –> service服务
com.xxx.xxx.broadcast –> 广播接收器
com.xxx.xxx.db –> 数据库操作类
com.xxx.xxx.persenter –> 中间对象
com.xxx.xxx.model –> 数据处理类
类的命名规范
Activity –> xxxActivity.java
Application –> xxxApplication.java
Fragment –> xxxFragment.java
Service –> xxxService.java
BroadcastReceiver –> xxxBroReceiver.java
ContentProvider –> xxxProvider.java
Adapter –> xxxAdapter.java
Handler –> xxxHandler.java
接口 –> xxxInter.java
接口实现类 –> xxxImpl.java
Persenter –> xxxPersenter.java
公共父类 –> BaseActivity.java、BaseFragment.java、- BaseAdapter.java等
util类 –> LogUtil.java
数据库类 –> BaseSQLiteDBHelper.java##
变量的命名
采用小驼峰式的命名-首字母小写,其他首字母大写 carNumber;
Java普通变量:
resultString
userBean
loginPresenter
Android控件变量:
loginBtn
inputPwdEt
showNameTv
控件 | 布局文件中的缩写 | 代码文件中的缩写 |
---|---|---|
LinearLayout | xxx_layout | xxxLLayout |
RelativeLayout | xxx_layout | xxxRLayout |
FrameLayout | xxx_Layout | xxxFLayout |
TextView | xxx_tv | xxxTv |
EditText | xxx_et | xxxEt |
Button | xxx_btn | XXXBtn |
ImageView | xxx_iv | xxxIv |
CheckBox | xxx_chk | xxxChk |
RadioButton | xxx_rbtn | xxxRbtn |
ProgressBar | xxx_pbar | xxxPBar |
ListView | xxx_lv | xxxLv |
Recyclerview | xxx_rv | xxxRv |
WebView | xxx_wv | xxxWv |
GridView | xxx_gv | xxxGv |
常量命名:
全部单词采用大写,每个单词之间用“_”分割。
举例:
public static final String API_URL = “http://apis.baidu.com/heweather/weather/free”;
方法的命名规范
采用小驼峰的命名模式
举例:
- setxxx()
- getxxx()
- loginxxx()
- onCreate()
- onDestory()
- isxxx() –> 返回值是boolean类型
- checkxxx()
布局文件的命名
activity_login.xml
fragment_first_tab.xml
item_choose_city.xml
dialog_choose_city.xml
common_footer.xml
popup_xxx.xml
控件ID:
login_btn
input_phone_et
input_pwd_et
login_pbar
drawable目录下的命名规范
图标 – > ic_xxx.png –> ic_logo.png
背景图 –> bg_xxx.jpg –> bg_splash.jpg
selector –> selector_login_btn.xml
shape –> shape_login_btn.xml
图片状态 –> bg_login_btn_pressed.jpg & - bg_login_btn_unpressed.jpg
anim目录下的命名规范
fade_in.xml
fade_out.xml
slide_in_from_left.xml
slide_in_from_top.xml
slide_out_to_right.xml
slide_out_to_bottom.xml