代码
心中始终坚持:视代码质量为个人荣誉。
- 命名:包名、类名、局部变量、全局变量、常量需要严格考量,做到言简意赅,见名知义。
- 函数:内容要小,只做一件事。(行数不能超过30行)
- 注释:能用代码说明的不要写注释。
- 代码逻辑:简单直白、逻辑清晰。
- 禁止存在重复代码。
- 异常处理:用自定义异常代替错误码(涉及多模块项目,如果使用枚举类错误码造成编译问题)
- 写业务代码CRUD: 注意幂等性、是否物理删除、逻辑删除。代码通用性、效率、安全。
- 代码原子性要保证,避免出错;原子性情况下保证复用性;
- 设计表格字段要精简、干练,用最少的字段解决问题;
- 每行代码都要测试到,否则无论是测试重新发半年还是生产紧急bug,都远远比你测试要花的时间多;
- 做到时刻维护自己写的代码,将代码优化做到极致,无论是代码量的减少或者逻辑的优化都是进步;
// 更新或创建返回值为影响行数。
int create(); // 幂等性:相同的条件只会在数据库保存一条数据
int update(); // 存在更新,不存在抛出异常// 删除返回 void
void delete(); // 存在删除,不存在抛出异常// 查询单个实体,返回对应的实体
User get(); // 存在返回实体,不存在返回 null// 查询多个实体,返回 List<实体名称>
List<User> list(); // 存在返回List<实体名称> ,不存在返回 null
- 代码的可读性
- 函数:
9.1 要像报纸上的文章一样(首先有“吸引人(明确)”的标题,其次每一小段都讲述的内容(做什么事),互相衔接,有逻辑可寻,最终讲述(完成)了一件事情(功能))
9.2 调用函数在被调用函数之上. 例如:
private WikiPage page;
public void makeResponse(Request request){String pageNmae = getPageNameOrDefault(request,"FrontPage");loadPage(pageName);if(page == null){notFoundResponse(request);}else {makePageResponse();}
}public String getPageNameOrDefault(Request request,String defaultPageName){// 业务逻辑..return defaultPageName;
}public void loadPage(String pageName){// 业务逻辑..
}public void notFoundResponse(Request request){// 业务逻辑..
}public void makePageResponse(){// 业务逻辑..
}
9.3 函数形参数量要小于3个。
9.4 写函数中逻辑时,要先排除不需要的,最后处理需要的数据。
9.5 处理、抛出异常;必要日志的输出。
9.6 三层应该做哪些事情:
controller层: 接受并检查参数、调用 service.method(); 返回数据。
service层:业务逻辑校验、业务逻辑处理。
dao层: 操作数据库。
helper/converter: 完成实体的构建、查询数据库条件实体的构建。
更新姓名:依依更新时间:2021年6月11日
代码
心中始终坚持:视代码质量为个人荣誉。
- 命名:包名、类名、局部变量、全局变量、常量需要严格考量,做到言简意赅,见名知义。
- 函数:内容要小,只做一件事。(行数不能超过30行)
- 注释:能用代码说明的不要写注释。
- 代码逻辑:简单直白、逻辑清晰。
- 禁止存在重复代码。
- 异常处理:用自定义异常代替错误码(涉及多模块项目,如果使用枚举类错误码造成编译问题)
- 写业务代码CRUD: 注意幂等性、是否物理删除、逻辑删除。代码通用性、效率、安全。
- 代码原子性要保证,避免出错;原子性情况下保证复用性;
- 设计表格字段要精简、干练,用最少的字段解决问题;
- 每行代码都要测试到,否则无论是测试重新发半年还是生产紧急bug,都远远比你测试要花的时间多;
- 做到时刻维护自己写的代码,将代码优化做到极致,无论是代码量的减少或者逻辑的优化都是进步;
// 更新或创建返回值为影响行数。
int create(); // 幂等性:相同的条件只会在数据库保存一条数据
int update(); // 存在更新,不存在抛出异常// 删除返回 void
void delete(); // 存在删除,不存在抛出异常// 查询单个实体,返回对应的实体
User get(); // 存在返回实体,不存在返回 null// 查询多个实体,返回 List<实体名称>
List<User> list(); // 存在返回List<实体名称> ,不存在返回 null
- 代码的可读性
- 函数:
9.1 要像报纸上的文章一样(首先有“吸引人(明确)”的标题,其次每一小段都讲述的内容(做什么事),互相衔接,有逻辑可寻,最终讲述(完成)了一件事情(功能))
9.2 调用函数在被调用函数之上. 例如:
private WikiPage page;
public void makeResponse(Request request){String pageNmae = getPageNameOrDefault(request,"FrontPage");loadPage(pageName);if(page == null){notFoundResponse(request);}else {makePageResponse();}
}public String getPageNameOrDefault(Request request,String defaultPageName){// 业务逻辑..return defaultPageName;
}public void loadPage(String pageName){// 业务逻辑..
}public void notFoundResponse(Request request){// 业务逻辑..
}public void makePageResponse(){// 业务逻辑..
}
9.3 函数形参数量要小于3个。
9.4 写函数中逻辑时,要先排除不需要的,最后处理需要的数据。
9.5 处理、抛出异常;必要日志的输出。
9.6 三层应该做哪些事情:
controller层: 接受并检查参数、调用 service.method(); 返回数据。
service层:业务逻辑校验、业务逻辑处理。
dao层: 操作数据库。
helper/converter: 完成实体的构建、查询数据库条件实体的构建。
更新姓名:依依更新时间:2021年6月11日