代码开发规范

Activity.onCreate()Fragment.onActivityCreated()紧跟成员变量后,方法内部保持简单,尽量只调用initXXX()方法,如:initData()initView()

调用方法保持“临近原则”,被调用的方法,放在调用方法下方;

单个方法体不要过长;

代码任何地方不要拼错单词(拼写错误)

统一调整IDETab缩进4个空格;

布局文件中的id命名:下划线命名法 使用下划线命名法,前缀+逻辑名称;

 

布局文件命名layout: 使用前缀_逻辑名称命名,单词全部小写,单词间以下划线分割;

Activity  activity_

Fragment  fragment_

Include  include_

Dialog dialog_

PopupWindow popup_

Adapter item_

资源文件命名:使用 前缀_用途 命名,单词全部小写,单词间以下划线分割。

 

类和接口命名: 使用驼峰规则,首字母必须大写,使用名词或名词词组。要求简单易懂,富于描述,不允许出现无意义或错误单词。

Application    Application为后缀标识 XXXApplication

Activity    Activity为后缀标识 闪屏页面类SplashActivity

公共方法类    Utils为后缀标识

线程池管理类   ThreadPoolManager

日志工具类    LogUtils

ServiceService为后缀标识 播放服务:PlayService

BroadcastReceiverBroadcast为后缀标识 时间通知:TimeBroadcast

直接写的共享基础类 以Base为前缀 BaseActivity,BaseFragment

 

方法的命名: 使用驼峰规则,首字母必须小写,使用动词。

initXX() 初始化相关方法,使用init为前缀标识,如初始化布局initView()

httpXX() http业务请求方法,以http为前缀标识

getXX() 返回某个值的方法,使用get为前缀标识

saveXX() 与保存数据相关的,使用save为前缀标识

deleteXX() 删除操作

resetXX() 对数据重组的,使用reset前缀标识

clearXX() 清除数据相关的

isXX() 方法返回值为boolean型的请使用is或check为前缀标识

processXX() 对数据进行处理的方法,尽量使用process为前缀标识

displayXX() 弹出提示框和提示信息,使用display为前缀标识

drawXXX() 绘制数据或效果相关的,使用draw前缀标识

 

变量命名:使用驼峰规则,首字母必须小写,使用名词或名词词组。

成员变量命名,自定义变量前添加m前缀布局控件变量不用添加m前缀;

常量命名: 全部大写,单词间用下划线隔开.

 

方法:

拆分臃肿方法,每个方法只作一件事

做同一个逻辑的方法,尽量靠近放到一块,方便查看

 

所有意义数字全部抽取到Constant公共类中,避免散布在各位类中。

 

空行:空行将逻辑相关代码段隔开,简洁清楚,提高可读性

成员变量之间,根据业务形成分组加空行

方法之间加空行

——————————————————————————>

init(){
findView();  //初始化控件
initView();  //为控件赋值
initListener();//监听事件
}

initListener() 经常忘记给控件设置监听。

为什么要把activity修改成ui  因为activity 就是用来显示UI的。 

1)Activity中的控件点击事件,不再单独写,要写的有条理!

所有的点击事件onClickListener()事件都要进行抽取,写在switch里面;

2)拼写异常:processOrderSampleData() 不能加s,代码不规范的错误的。

对于成员变量的重复,不用修改变量名,使用代码块把成员变量转化成局部变量即可。
例如:
case 1:{ Intent intent=new Intent();}break;
case 2:{ Intent intent=new Intent();}break;   此时两个intent变量名不重复的。

4)ListView的优化:
ViewHolder viewHolder=null;  
以后不进行赋值操作,没有实际意义。

5)常用的包名:
adapter    列表适配器
base       MyApplication  BaseUI(抽取UI父布局)  BaseFragment   这三个类
bean       把公共的响应头抽取出来
constant   url  里面可能会有多个常量类  url常量类、文件路径常量类
fragment  
manager    主要用于网络请求   
ui         比activity这个单词好用多了
utils      工具类
views      自定义控件
engine     用于处理业务逻辑

6)项目包名: package="cn.lichaodai"   
顶级域名(cn/com)+公司名+项目名:com.nengwu.xpg  公司可能有多个项目
以什么开头,一定要注意

8)对条目的判断:RecycleView/ListView 
getItemCount( ){
//判断集合是否为空,如果为空,返回0,否则返回集合的长度,这个方法好
//一会应用到自己的项目中;
return dataList==null:0? dataList.size( );
}
——————————————————————————>
常用的方法: 
NetUtils工具类,
loadXXXData()  
processXXXData()   
processXXXUI()显示UI
——————————————————————————>
对公共的响应头进行抽取,每次都会返回的  
public class BaseEntity {
public String msg;                  //返回的信息
    public String code;                 //响应码
    /**
     * 返回数据是否正常
     * @return
     */
    public boolean isSuccess() {
        return code.equals("-1") ? true : false;
    }
    /**
     * 返回提示
     * @return
     */
    public String getResultMsg() {
        String msg = "";
        switch (code) {
            case "":
                break;
        }
        return msg;
    }
}
//这是对请求数据封装实体的处理,都是这样封装的,一定要学会。
public class LoginEntity extends BaseEntity {
public Entity entity;
    public class Entity{
        public String isnew;
        public String phone;
    }
}
——————————————————————————>
接口:接口中的成员变量  都是publish static  类名.方法名( )  这种使用方式
publish interface Constants{   }  //定义一个常量接口,所有的成员变量,都是公共和静态的。
常量全部都是定义在接口中的。
5)接口里面:public abstract  这两个字段不用写的 默认。
 
追求代码的规范和代码结构的规范:
1)常量的命名全部都是大写的     网络请求地址是常量,
2)网络请求地址:主机地址 / 某一个具体的模块 / 模块下具体的接口,
3)直接在接口中拼接请求地址,不要在Activity中拼接请求地址了,
4)Host+具体的请求地址接口      每一个网络地址上都要写注释,
String Host=http://www.xunpige.com/app     //这里是主机地址 ,
5)定义成接口,
//退出登录
public static final String EXIT_LOGIN = "/users/exit";
//获取首页轮播图
public static final String GET_AD = "/homes/ad";

每个依赖包是做什么的?
setData( )是哪个类中的方法?
代码的通用性如何?

如果条目为空,怎么处理? 传入一个空的布局
在构造函数里面传递数据为空的布局   这一点不太理解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值