编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

Java编程

(二)二方库依赖
Java编程

(二)二方库依赖

阅读(1892)

1. 【强制】定义 GAV 遵从以下规则:1) GroupID 格式: com.{公司/BU }.业务线 [.子业务线],最多 4 级。说明: {公司/BU} 例如: alibaba/taobao/tmall/aliexpress 等 BU 一级; 子业务线可选。正例: com.taobao.jstorm 或 com.alibaba.dubbo.register2) ArtifactID 格式:产品线名-模块名。语义不重复不遗漏,先到中央仓库去查证一下。正...

elasticsearch启动报错:Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:log4j-api-2.11.1.jar!/] for annotations
Java编程

elasticsearch启动报错:Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:log4j-api-2.11.1.jar!/] for annotations

阅读(10160)

从字面上来说,就是无法处理log4j-api-2.11.1.jar的注解,就是说在当前的开发环境下,elasticsearch包含的log4j-api-2.11.1.jar版本过高了。再贴下相信的报错吧:严重: Unable to process Jar entry [META-INF/versions/9/module-info.class] from Jar [jar:file:/F:/Repository/org/apache/log...

(一)应用分层
Java编程

(一)应用分层

阅读(1394)

【推荐】图中默认上层依赖于下层,箭头关系表示可直接依赖,如:开放接口层可以依赖于Web 层,也可以直接依赖于 Service 层,依此类推:开放接口层:可直接封装 Service 方法暴露成 RPC 接口; 通过 Web 封装成 http 接口; 进行网关安全控制、 流量控制等。终端显示层:各个端的模板渲染并执行显示的层。 当前主要是 velocity 渲染, JS 渲染...

(四)ORM 映射
Java编程

(四)ORM 映射

阅读(2327)

1. 【强制】在表查询中,一律不要使用 * 作为查询的字段列表,需要哪些字段必须明确写明。说明: 1) 增加查询分析器解析成本。  2) 增减字段容易与 resultMap 配置不一致。  3)无用字段增加网络消耗,尤其是 text 类型的字段。2. 【强制】 POJO 类的布尔属性不能加 is,而数据库字段必须加 is_,要求在 resultMa...

(三)SQL 语句
Java编程

(三)SQL 语句

阅读(946)

1. 【强制】不要使用 count(列名)或 count(常量)来替代 count(*), count(*)是 SQL92 定义的标准统计行数的语法,跟数据库无关,跟 NULL 和非 NULL 无关。说明: count(*)会统计值为 NULL 的行,而 count(列名)不会统计此列为 NULL 值的行。2. 【强制】 count(distinct col) 计算该列除 NULL 之外的不重复行数, 注意 count(distinctcol1, col...

(二)索引规约
Java编程

(二)索引规约

阅读(1725)

1. 【强制】业务上具有唯一特性的字段,即使是多个字段的组合,也必须建成唯一索引。说明: 不要以为唯一索引影响了 insert 速度,这个速度损耗可以忽略,但提高查找速度是明显的; 另外,即使在应用层做了非常完善的校验控制,只要没有唯一索引,根据墨菲定律,必然有脏数据产生。2. 【强制】超过三个表禁止 join。需要 join 的字段,数据类...

(一)建表规约
Java编程

(一)建表规约

阅读(1880)

1. 【强制】表达是与否概念的字段,必须使用 is_xxx 的方式命名,数据类型是 unsigned tinyint(1 表示是, 0 表示否)。说明: 任何字段如果为非负数,必须是 unsigned。注意: POJO 类中的任何布尔类型的变量,都不要加 is 前缀,所以,需要在<resultMap>设置从 is_xxx 到 Xxx 的映射关系。数据库表示是与否的值,使用 tinyint 类型,...

四、安全规约
Java编程

四、安全规约

阅读(1612)

1. 【强制】 隶属于用户个人的页面或者功能必须进行权限控制校验。说明: 防止没有做水平权限校验就可随意访问、 修改、删除别人的数据,比如查看他人的私信内容、修改他人的订单。2. 【强制】用户敏感数据禁止直接展示,必须对展示数据进行脱敏。说明: 中国大陆个人手机号码显示为:158****9119,隐藏中间 4 位,防止隐私泄露。3. 【强制】用...

三、单元测试
Java编程

三、单元测试

阅读(1524)

1. 【强制】好的单元测试必须遵守 AIR 原则。说明: 单元测试在线上运行时,感觉像空气(AIR) 一样并不存在,但在测试质量的保障上,却是非常关键的。好的单元测试宏观上来说,具有自动化、独立性、可重复执行的特点。A: Automatic(自动化)I: Independent(独立性)R: Repeatable(可重复)2. 【强制】单元测试应该是全自动执行的,并且...

(二)日志规约
Java编程

(二)日志规约

阅读(1310)

1. 【强制】应用中不可直接使用日志系统(Log4j、 Logback) 中的 API,而应依赖使用日志框架SLF4J 中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。import org.slf4j.Logger; import org.slf4j.LoggerFactory; private static final Logger logger = LoggerFactory.getLo...