丙午🐎年

acc8226 的博客

(一) 错误码

1.【强制】错误码的制定原则:快速溯源、沟通标准化。
说明:错误码想得过于完美和复杂,就像康熙字典的生僻字一样,用词似乎精准,但是字典不容易随身携带且简单易懂。
正例:错误码回答的问题是谁的错?错在哪?
1)错误码必须能够快速知晓错误来源,可快速判断是谁的问题。
2)错误码必须能够进行清晰地比对(代码中容易 equals)。
3)错误码有利于团队快速对错误原因达到一致认知。

2.【强制】错误码不体现版本号和错误等级信息。
说明:错误码以不断追加的方式进行兼容。错误等级由日志和错误码本身的释义来决定。

3.【强制】全部正常,但不得不填充错误码时返回五个零:00000。

4.【强制】错误码为字符串类型,共 5 位,分成两个部分:错误产生来源 + 四位数字编号。
说明:错误产生来源分为 A/B/C,A 表示错误来源于用户,比如参数错误,用户安装版本过低,用户支付超时等问题;
B 表示错误来源于当前系统,往往是业务逻辑出错,或程序健壮性差等问题;C 表示错误来源于第三方服务,比如 CDN 服务出错,消息投递超时等问题;四位数字编号从 0001 到 9999,大类之间的步长间距预留 100,参考文末附表 3。

阅读全文 »

1. 【强制】前后端交互的 API,需要明确协议、域名、路径、请求方法、请求内容、状态码、响应体。
说明:
1)协议:生产环境必须使用 HTTPS。
2)路径:每一个 API 需对应一个路径,表示 API 具体的请求地址:
 a)代表一种资源,只能为名词,推荐使用复数,不能为动词,请求方法已经表达动作意义。
 b)URL 路径不能使用大写,单词如果需要分隔,统一使用下划线。
 c)路径禁止携带表示请求内容类型的后缀,比如 “.json”,“.xml”,通过 accept 头表达即可。
3)请求方法:对具体操作的定义,常见的请求方法如下:
 a)GET:从服务器取出资源。
 b)POST:在服务器新建一个资源。
 c)PUT:在服务器更新资源。
 d)DELETE:从服务器删除资源。
4)请求内容:URL 带的参数必须无敏感信息或符合安全要求;body 里带参数时必须设置 Content-Type。
5)响应体:响应体 body 可放置多种数据类型,由 Content-Type 头来确定。

2. 【强制】前后端数据列表相关的接口返回,如果为空,则返回空数组[]或空集合{}。
说明:此条约定有利于数据层面上的协作更加高效,减少前端很多琐碎的 null 判断。

阅读全文 »

1. 【强制】日期格式化时,传入 pattern 中表示年份统一使用小写的 y。
说明:日期格式化时,yyyy 表示当天所在的年,而大写的 YYYY 代表是 week in which year(JDK7 之后引入的概念), 意思是当天所在的周属于的年份,一周从周日开始,周六结束,只要本周跨年,返回的 YYYY 就是下一年。
正例:表示日期和时间的格式如下所示: new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
反例:某程序员因使用 YYYY/MM/dd 进行日期格式化,2017/12/31 执行结果为 2018/12/31,造成线上故障。

2. 【强制】在日期格式中分清楚大写的 M 和小写的 m,大写的 H 和小写的 h 分别指代的意义。
说明:日期格式中的这两对字母表意如下:
1)表示月份是大写的 M
2)表示分钟则是小写的 m
3)24 小时制的是大写的 H
4)12 小时制的则是小写的 h

3. 【强制】获取当前毫秒数:System.currentTimeMillis();而不是 new Date().getTime()。

说明:获取纳秒级时间,则使用 System.nanoTime 的方式。在 JDK8 中,针对统计时间等场景,推荐使用 Instant 类。

阅读全文 »

1. 【强制】不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。
反例:

1
2
3
4
5
6
7
// 开发者 A 定义了缓存的 key。
String key = "Id#taobao_" + tradeId;
cache.put(key, value);

// 开发者 B 使用缓存时直接复制少了下划线,即 key 是"Id#taobao" + tradeId,导致出现故障。
String key = "Id#taobao" + tradeId;
cache.get(key);

2. 【强制】long 或 Long 赋值时,数值后使用大写 L,不能是小写 l,小写容易跟数字混淆,造成误解。

说明:public static final Long NUM = 2l; 写的是数字的 21,还是 Long 型的 2?

3. 【强制】浮点数类型的数值后缀统一为大写的 D 或 F。

正例:public static final double HEIGHT = 175.5D;
public static final float WEIGHT = 150.3F;

阅读全文 »

作为一款开箱即用的产物,基本上不用进行过多额外配置呢。

统一 vscode 换行符 (\n)

直接搜索 files:eol 进行设置。

设置自动换行

搜索框输入: word warp 然后将值改成 on

我的必装插件

0%