JAVA代码规范

Java编码规范

1.标识符命名规范
	/**
     * 类命名使用驼峰式MarcoPolo,见样例【1】。
     */
     
     // 样例【1】,用户类命名规则
     UserControllerUserServiceUserServiceImpl
     
	/**
     * 方法名命名规范
     * 	1)获取单个对象使用get作为前缀,见样例【2】。
     * 	2)获取多个对象使用list作为前缀,见样例【3】。
     * 	3)获取统计数据使用count作为前缀,见样例【4】。
     * 	4)插入数据使用install作为前缀,见样例【5】。
     * 	5)修改数据使用update作为前缀,见样例【6】。
     * 	6)删除数据使用delete作为前缀,见样例【7】。
     * 	ps:方法命名使用小驼峰英文命名,禁止出现中文拼音。批量操作使用batchXXX开头。
     */
    // 样例【2】,根据用户id查询单个用户数据
    public User getUserByUserId(Long userId);
    
    // 样例【3】,根据用户对象查询用户列表数据
    public List<User> listUserByUser(User user);
	
	// 样例【4】,根据用户部门统计用户总数
	public T countUserByDeptId(String deptId);

	// 样例【5】,新增用户数据
	public int installUser(User user);
	
	// 样例【6】,修改用户数据
	public int updateUser(User user);

	// 样例【7】,根据用户id删除用户数据
	public int deleteUserByUserId(Long userId);
	
	/**
     * 变量与常量命名规范
     * 1.变量名使用小驼峰命名,并且使用英文,禁止出现中文拼音,见样例【8】。
     * 2.常量名使用全大写命名,并且使用英文,禁止出现中文拼音,见样例【9】。
     * ps:boolean类型,变量不要用is开头。
     */

	// 样例【8】,变量命名规则,字符串、对象、数字
	String userId = "";
	User userInfo = new UserInfo();
	int userAge = 0;

	// 样例【9】,常量命名规则,系统文件上传路径
	private final String SYSTEM_FILE_UPLOAD_URL = "/home/upload";
     
2. 代码格式
	/**
     * 1.缩进:程序块要采用缩进风格编写,缩进只使用TAB键,不能使用空格键;
     * 方法体的开始、类的定义、以及if、for、do、while、switch、case语句中的代码都要采用缩进方式;
     * 
     * 2.对齐:程序块的分界符左大括号"{" 和右大括号"}"都另起一行,应各独占一行并且位于同一列,
     * 同时与引用它们的语句左对齐;对齐只使用TAB键,不使用空格键;不允许把多个短语句写在一行中,
     * 即一行只写一条语句;if、for、do、while、case、switch、default等语句自占一行,见样例【10】.
	 *
	 * 3.换行:一行的长度超过80个字符需要换行,见样例【11】。
	 *
	 * 4.间隔:类、方法及相对独立的程序块之间、变量说明之后必须加空行;关键字之后要留空格,见样例【12】。
	 *
     */

	// 样例【10】,对其方案
	// 错误的样例
	if (useAge > 18) youngMan = false;
	
	String[] strings = new String[]{"文字1", "文字2", "文字3"};
    for (String str : strings) System.out.println(StringUtils.isNotEmpty(str));

	// 正确的样例
	if (useAge > 18) 
	{
		youngMan = false;
	}

	String[] strings = new String[]{"文字1", "文字2", "文字3"};
    for (String str : strings) 
    {
		System.out.println(StringUtils.isNotEmpty(str));
	}

	// 样例【11】,换行方案
	// 错误的样例
	String[] strings = new String[]{"文字1", "文字2", "文字3"};
    List<String> stringsNew = Arrays.stream(strings).distinct().map(item -> return strings + "+").filter(item -> item.length() > 10).collect(Collectors.toList());
    
    // 正确的样例
    List<String> stringsNew = Arrays.stream(strings)
                .distinct()
                .map(item -> strings + "+")
                .filter(item -> item.length() > 10)
                .collect(Collectors.toList());

	// 样例【12】,间隔方案
	// 错误的样例
	if(userAge>18){
		youngMan = false;
	}else{
		youngMan = true;
	}
	for(int i=0;i<=10;i++){
		userAge++;
	}

	// 正确的样例
	if (userAge > 18) 
	{
		youngMan = false;
	} 
	else 
	{
		youngMan = true;
	}

	for (int i=0; i<=10; i++)
	{
		userAge++;
	}
3.注释

1、基本注释(必须加)

	(a)    类(接口)的注释。

	(b)    构造函数的注释。

	(c)     方法的注释。

	(d)    全局变量的注释。

2、特殊必加注释(必须加)

	(a)    典型算法必须有注释。

	(b)    在代码不明晰处必须有注释。

	(c)     在代码修改处加上修改标识的注释。

	(d)    在循环和逻辑分支组成的代码中加注释。

	(e)    为他人提供的接口必须加详细注释。
4.常用工具类
	/**
     * 通用工具类一般存放在,caiwei-common包的util下
     */
     // 工具类【1】,【BeanUtils】Bean 工具类,常用于对象拷贝。
     BeanUtils.copyBeanProp(目标对象,源对象);
     // 工具类【2】,【file】文件处理工具类,包含文件增删改、图片处理、文件上传。
     FileUtilsImageUtilsFileUploadUtils
     // 工具类【3】,【html】通用html工具封装,一般为系统放Xss拦截使用。
     // 工具类【4】,【http】通用http发送方法,包含通用Get、Post发送方法。
     // 发送Post请求 
     HttpResponse response = HttpUtils.doPost("请求地址", "请求接口", "请求方式", "请求header", "请求参数", bodys);
     System.out.println(response.toString());
	 // 发送Get请求
	 String rspStr = HttpUtils.sendGet("请求地址", "请求参数(xx=1&xx=2)", "编码类型(Constants.GBK)");
     // 工具类【5】,【ip】IpUtils可用于获取用户ip地址、AddressUtils根据用户ip地址获取地址。
     // 获取用户ip地址
     IpUtils.getIpAddr(request);
     // 根据用户ip地址,获取地址
     AddressUtils.getRealAddressByIP(ip);
     // 工具类【6】,【Excel】Excel文档处理可读、写文档。
     // 导出Excel
     ExcelUtil<实体> util = new ExcelUtil<实体>(实体.class);
     return util.exportExcel(列表数据, "文件名");
     // 工具类【7】,【sign】加密方法,包含Base64加解密与解密。
     // 加密
     Base64.encode
     // 解密
     Base64.decodeStr
     // 工具类【8】,【spring】方便在非spring管理环境中获取bean。
     // 获取当前的用户
     LoginUser loginUser = SpringUtils.getBean(TokenService.class).getLoginUser(ServletUtils.getRequest());
     // 工具类【9】,【uuid】包含两个id生成工具类。
     IdUtils.randomUUID();
     UUID.randomUUID();
     // 工具类【10】,【AesUtil】用于用户登录加密与解密。
	 AesUtil.encrypt("要加密的数据","加密key","加密iv");
	 AesUtil.desEncrypt("要解密的数据","解密key","解密iv");
     // 工具类【11】,【DateUtils】包含一些常用的时间处理方法。
     // 获取当前时间
     DateUtils.getNowDate();
     // 格式化时间
     DateUtils.parseDateToStr("格式化类型","时间");
     // 工具类【12】,【DictUtils】系统字典操作的工具类。
     DictUtils.getDictCache("字典key");
     // 工具类【13】,【JDBCUtils】数据库链接工具类。

你可能感兴趣的:(java,开发语言,后端)