编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!
(三)服务器
Java编程

(三)服务器

阅读(1792)

1. 【推荐】 高并发服务器建议调小 TCP 协议的 time_wait 超时时间。说明: 操作系统默认 240 秒后,才会关闭处于 time_wait 状态的连接,在高并发访问下,服务器端会因为处于 time_wait 的连接数太多,可能无法建立新的连接,所以需要在服务器上调小此等待值。正例: 在 linux 服务器上请通过变更/etc/sysctl.conf 文件去修改该缺省值(秒) ...

(二)二方库依赖
Java编程

(二)二方库依赖

阅读(1731)

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

阅读(9889)

从字面上来说,就是无法处理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编程

(一)应用分层

阅读(1210)

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

(四)ORM 映射
Java编程

(四)ORM 映射

阅读(2171)

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

(三)SQL 语句
Java编程

(三)SQL 语句

阅读(786)

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

(二)索引规约
Java编程

(二)索引规约

阅读(1615)

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

(一)建表规约
Java编程

(一)建表规约

阅读(1732)

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

四、安全规约
Java编程

四、安全规约

阅读(1468)

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

三、单元测试
Java编程

三、单元测试

阅读(1384)

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

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