单页网站模板 带在线订单,wordpress 完美搬家,易企秀h5,seo 海外1.接口命名规范–Restful API
原本格式是动词资源by传参#xff0c;后来进化为Restful API#xff0c;思想是以资源为中心。
动词用get,post,put,delete请求方法代替#xff0c;by后面的名词用传参代替。 并且GET方法传参资源ID采用路径传参#xff0c;除了资源ID外的GET…1.接口命名规范–Restful API
原本格式是动词资源by传参后来进化为Restful API思想是以资源为中心。
动词用get,post,put,delete请求方法代替by后面的名词用传参代替。 并且GET方法传参资源ID采用路径传参除了资源ID外的GET传参统一采用query参数而其他请求方法传参统一采用json参数。
原来
POST /getInfoByUserId
现在
GET /user/{id}/info另外在嵌套资源的 URL 中使用关系
获取指定订单中所有商品列表。
GET /order/{id}/products 获取指定订单中所有指定商品信息。
GET /order/{orderId}/product/{productId}其他细节:
【1】连接中多个不可分割的单词使用中划线拼接。
/user/verify-code【2】参数使用驼峰拼写
/order/{productId}【3】指向集合的复数名称
例如获取所有用户列表接口。
/users【4】如果有一个接口并不是 CRUD 操作这种情况可以使用动词。
例如向用户发送邮件接口。
/user/{id}/send-mail2.三层方法命名规范–具体参照阿里巴巴命名规范
基本格式动词资源by传参 3.领域模型命名规约
数据对象–表对应的对象
xxxDOxxx 即为数据表名。
数据传输对象–一般用于返回数据封装成类
xxxDTOxxx 为业务领域相关的名称
展示对象–一般用于接收的数据封装成类
xxxVOxxx 一般为网页名称。
注意事项
POJO 是 DO/DTO/BO/VO 的统称禁止命名成 xxxPOJO。
4.MybatisPlus条件构造器命名规范
动词query/update…Wrapper
5.Java代码中的空格–一般用IDEA格式化解决
java代码哪里需要空格
在运算符两侧需要空格例如int result a b;在逗号,分号,关键字后面需要空格 例如String[] names {Alice, Bob, Charlie}; 例如for (int i 0; i 10; i) { 例如if (condition) {在类名,方法名和左大括号之间需要空格 例如public class MyClass { 例如public void myMethod() {在类型转换时强制类型转换符号与类型之间需要空格例如(String) object空实现接口或类不允许存在空格。
// 正例
public interface AdapterThreadPoolMonitor extends ThreadPoolMonitor {
}// 反例
public interface AdapterThreadPoolMonitor extends ThreadPoolMonitor {}6.注释规范
【1】Class、Interface、Enum、interface 等文件类型类上注释仅需说明类的意图即可。不需要补充时间和创建人因为往往开发代码的不止是一个人容易造成信息干扰。需要的话查看提交记录即可。
/*** 适配第三方框架的线程池*/
public interface ThreadPoolAdapter {}【2】方法上需添加注释并说明清楚方法的意图接口实现类无需注释必要时描述 param return。
/*** 适配第三方框架的线程池*/
public interface ThreadPoolAdapter {/*** 修改框架线程池的核心参数** param threadPoolBaseInfo 修改线程池的基础参数* return 线程池核心参数修改结果*/boolean updateThreadPool(ThreadPoolBaseInfo threadPoolBaseInfo);
}如果方法为内部引用方法并且方法名称见名知意无需方法注释。私有方法尽量通过方法命名说明方法语义
【3】方法内部的注释应该新起一行而不是跟在代码后面除非是变量。
正例
// 刷新动态线程池参数
refreshDynamicPool(parameter, executor);反例
refreshDynamicPool(parameter, executor); // 刷新动态线程池参数7.其他
【1】静态变量使用大写多个单词使用下划线连接。示例MESSAGE_CENTER_SEND_TYPR。
【2】捕获的异常名称命名为 ex 捕获异常且不做任何事情异常名称命名为 ignored。
【3】返回值变量使用 result 命名循环中使用 each 命名循环变量map 中使用 entry 代替 each。
result 命名示范
private void parseDate(String data) {Result result JSONUtil.parseObject(data, Result.class);return result;
}
或采用 result 为前缀
private void parseDate(String data) {Result resultDate JSONUtil.parseObject(data, Result.class);return resultDate;
}each 命名示范
appNameLeaseMap.values().forEach(each - appNameLeaseList.add(each));
或是 for 循环
for (LeaseInstanceInfo each : appNameLeaseMap.values()) {appNameLeaseList.add(each);
}【4】业务系统中优先使用 Guava、HuTool、Common3 等工具类中的方法不存在指定方法时再创建自定义工具类禁止创建相同语义方法的工具类。
备注定义组件项目时尽量使用自定义工具类避免因版本问题导致不确定的异常。
【5】空实现接口或类不允许存在空格。
// 正例
public interface AdapterThreadPoolMonitor extends ThreadPoolMonitor {
}// 反例
public interface AdapterThreadPoolMonitor extends ThreadPoolMonitor {}【6】超过 3 层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、 状态模式 等来实现其中卫语句即代码逻辑先考虑失败、异常、中断、退出等直接返回的情况