数据库
表设计规范:表创建SQL请给每个字段提供备注,不能为null,且必须有默认值,下列类似的字段优先选中以下类型
1.时间戳 BIGINT(11)
2.操作人 VARCHAR(20) DEFAULT ''
3.JSON数据 text
4.自增ID int(11) NOT NULL AUTO_INCREMENT
5.状态 TINYINT(1) DEFAULT 0
6.删除标识is_deleted DEFAULT 0 COMMENT '0未删除/1已删除'
7.用户id bigint(20)
8.新表增加排序规则:COLLATE=utf8mb4_general_ci
代码编写
Store层
写法参考:helper/sql.go封装的方法
Router层
有接口文档约束时,接收参数和响应参数实现时尽量不要改动,若觉得有问题可以统一提出来和我对一下再行动
参数传递可以使用helper定义的结构体接收,像helper.Rangetime,helper.Pagenation。
router响应使用serialize 包,如 serialize.GinServerErrorResponse,serialize.GinBadParamsResponse,serialize.GinOkResponse(c, data)
打日志
对提交内容进行cr,并进行下面优化,对于逻辑改动较大的只提出修改建议
# 判断逻辑错误,隐患问题
# 优化日志输出:
1. 如果函数中多处日志打点处filed相同,可提取logCtx
2. 避免重复输出日志,如果调用函数内包含了日志,可以考虑不要日志
3. 日志需要看严重程度使用Info/warn/error
4. msg信息必须以函数名为开头,如果某一个函数调用了另外一个函数的日志需要都列出msg
5. 对于redis或sql查询,如果返回err为空行错误,则不要打印error日志
6.需要在关键的位置增加info日志,如涉及到:风控结果、AI生成结果
代码实现
结构体和参数定义不要使用int32,尽量都使用int,除非时间和id可以使用int64
新功能实现必须遵循:单一职责、开闭原则、接口隔离、最少知识
如果参数不到三个以上,方法不要传结构体
自定义err,err的msg,不要用英文,用成中文