diff --git a/assets/image_1732609526699_0.png b/assets/image_1732609526699_0.png new file mode 100644 index 0000000..1a78d55 Binary files /dev/null and b/assets/image_1732609526699_0.png differ diff --git a/assets/image_1732609874076_0.png b/assets/image_1732609874076_0.png new file mode 100644 index 0000000..a28db85 Binary files /dev/null and b/assets/image_1732609874076_0.png differ diff --git a/assets/image_1732609980192_0.png b/assets/image_1732609980192_0.png new file mode 100644 index 0000000..a28db85 Binary files /dev/null and b/assets/image_1732609980192_0.png differ diff --git a/journals/2024_11_26.md b/journals/2024_11_26.md index 4e1ab55..09e6f0e 100644 --- a/journals/2024_11_26.md +++ b/journals/2024_11_26.md @@ -1,2 +1,3 @@ - [[静态代码分析工具]] -- [[代码审查]] \ No newline at end of file +- [[代码审查]] +- [[程序员工作法则]] \ No newline at end of file diff --git a/pages/代码审查.md b/pages/代码审查.md new file mode 100644 index 0000000..1dfcacd --- /dev/null +++ b/pages/代码审查.md @@ -0,0 +1,54 @@ +- 审查清单 + - 代码结构 + - 超长代码 + - 代码层次嵌套过深 + - 函数入参是否过多 + - 循环条件需要有跳出点 + - if是否有对应else + - 是否有重复代码 + - 代码安全性 + - I/O流是否关闭 + - 资金计算使用Double + - 是否有超大临时对象 + - 线程池参数 + - 异常处理 + - 日志记录 + - 并发问题 + - 参数检查 + - 远程服务出入参实现Selialization并自定义serialVersionUUID + - 是否依赖SNAPSHOT版本类库 + - 代码性能 + - 长SQL + - SQL索引 + - 成熟类库替代自己实现的代码 + - 考虑单例模式 + - 考虑线程池 + - 考虑NIO + - 考虑锁优化 + - 代码注释 + - 类和方法注释 + - 注释是否表达准确 + - 是否存在FIXME和TODO + - 是否包含边界值及对异常情况说明 + - 单元测试 + - 是否有可测试性 + - 新代码单元测试 + - 单元测试是否覆盖所有场景 + - 代码优化 + - 枚举替代常量 + - 是否包含魔法值 + - 使用Option替代NPE检查 + - 用Stream替代for循环 + - 使用设计模式 + - 其他 + - 代码逻辑 + - 业务功能 + - 可读性、可测试性 +- 审查工具 + - Phabricator + - Gerrit + - Code Stiker +- 关注改动点 +- 日常审查 +- 一次审查代码量200-400 +- ![image.png](../assets/image_1732609526699_0.png) \ No newline at end of file diff --git a/pages/程序员工作法则.md b/pages/程序员工作法则.md new file mode 100644 index 0000000..077d7e8 --- /dev/null +++ b/pages/程序员工作法则.md @@ -0,0 +1,38 @@ +- 工具化 + - 针对不稳定系统,使用mock避免下游系统CI失败 + - 联调模拟RPC调用,打印历史请求工具,将打印的请求重发到指定服务器 + - 切流对比工具 + - ![image.png](../assets/image_1732609874076_0.png) +- 自动化 + - 查询定位自动化 + - Alfred + - 开发环境IDEA + - Web测试 Selenium + - 部署运维 + - 拉取代码pull.sh + - 编译build.sh + - 部署deploy.sh + - ./pull.sh&./build.sh&./deploy.sh + - 测试 + - 回归测试 + - 质量兜底 + - 单元测试 + - 接口测试 + - 线上自动录制回放 + - 组件测试 + - 端到端全链路测试 + - 录制引流回放 + - 线上影子验证 +- 文档 + - 关键文档 + - 需求 + - 系统分析 + - Core文档 + - 领域模型 + - 主题架构 + - 用例即文档 + - 活文档 + - Swagger接口文档 +- YAGNI + - You Ain't Gonna Need it + - \ No newline at end of file