实习日志day6--实习日志day6--title命名规范化&businessType纠正&补充缺失的@Log注解&报警与通信模块补充&产出阶段总结文档

日期:2026.7.8


今日任务

  • 对照着Qoderwork刷算法题
  • 制定 title 命名规范:统一为"模块名+操作描述"格式,如"用户管理-列表查询"、"设备管理-新增"
  • 修改系统模块 Controller 的 title:

SysUserController.java:将 12 处 title 统一为"用户管理-XXX"格式

SysRoleController.java:将 7 处 title 统一为"角色管理-XXX"格式

SysMenuController.java:将 11 处 title 统一为"菜单管理-XXX"格式

  • 修改设备模块 Controller 的 title:

InstrumentsController.java:将 24 处 title 统一为"设备管理-XXX"格式

InsTypeController.java:将 11 处 title 统一为"设备类型-XXX"格式

InsPointController.java:将 11 处 title 统一为"测点管理-XXX"格式

InsLayoutController.java:将 7 处 title 统一为"设备布局-XXX"格式

  • 修改报警模块 Controller 的 title:

InsAlarmLogController.java:7 处,统一为"报警日志-XXX"

InsAlarmFalseController.java:9 处,统一为"误报管理-XXX"

InsAlarmEventCenterController.java:4 处,统一为"报警事件-XXX"

InsAlarmRuleSnapshotController.java:3 处,统一为"报警规则-XXX"

  • 修改网关模块 Controller 的 title:

GatewayOnlineLogController.java:1 处,统一为"网关日志-导出"

GatewayCommandExecutionLogController.java:1 处,统一为"网关指令日志-XXX"

  • 修改通信模块 Controller 的 title:

MqttController.java:6 处,统一为"MQTT通信-XXX"

SerialPortController.java:14 处,统一为"串口通信-XXX"

SerialPortAlarmBindingConfigController.java:7 处,统一为"串口报警绑定-XXX"

SerialPortCommandConfigController.java:7 处,统一为"串口指令配置-XXX"

SerialPortProfileController.java:7 处,统一为"串口配置-XXX"

  • 修改其他模块 Controller 的 title(剩余的约 30 处)
  • 检查所有使用 BusinessTypeEnum.OTHER 的接口,判断是否应该改为更精确的类型,例如:

MqttController 中 "MQTT消息视图清空" 应改为 DELETE 而非 OTHER

"MQTT主题订阅/取消订阅" 可以保持 OTHER(确实属于特殊操作)

  • 检查所有使用 BusinessTypeEnum.SELECT 的接口,确认是否真的是查询操作,有没有把增删改误标为 SELECT 的情况
  • 检查 "新增或修改" 类接口的 businessType,确认是否统一用 UPDATE 还是 INSERT
  • 为查询大数据量的接口设置 isSaveResponseData = false,避免日志表膨胀,例如:

设备列表分页查询(返回数据量大)

报警日志分页查询

操作日志分页查询

  • 为文件上传/下载接口设置合理的 isSaveRequestData 和 isSaveResponseData
  • 为敏感操作(重置密码、强制退出等)确认 isSaveRequestData = true 确保审计完整
  • 为以下 Controller 的所有接口补充 @Log 注解(这些是确认没有 @Log 的关键业务 Controller):

InsDataHistoryController.java:设备历史数据查询,title="设备历史数据-XXX"

InstrumentsControlController.java:设备控制操作,title="设备控制-XXX",businessType 用 OPERATING

DeviceRealtimeController.java:实时数据查询,title="实时数据-XXX"

DeviceLinkDiagnosisController.java:链路诊断,title="链路诊断-XXX"

DataQualityDashboardController.java:数据质量看板,title="数据质量-XXX"

  • 为网关模块缺失 @Log 的 Controller 补充注解:

GatewayInfoController.java:title="网关管理-XXX"

GatewayConfigController.java:title="网关配置-XXX"

GatewayDeviceRelationController.java:title="网关设备关联-XXX"

GatewayCommandFieldController.java:title="网关指令字段-XXX"

GatewayCommandTemplateController.java:title="网关指令模板-XXX"

  • 为摄像头模块缺失 @Log 的 Controller 补充注解:

AvCameraInstrumentsController.java:title="摄像头管理-XXX"

AvCameraCfgController.java:title="摄像头配置-XXX"

  • 为通信模块缺失 @Log 的 Controller 补充注解:

ProtocolTemplateController.java:title="协议模板-XXX"

SysMessageController.java:title="消息管理-XXX"

SmsController.java:title="短信通知-XXX",businessType 用 SEND_DATA

WeChatController.java:title="微信通知-XXX",businessType 用 SEND_DATA

  • 为 AI 模块缺失 @Log 的 Controller 补充注解:

AiSmartAlarmController.java:title="AI智能报警-XXX"

AiChatController.java:title="AI对话-XXX"

AiModelConfigController.java:title="AI模型配置-XXX"

  • 整理所有修改的代码,形成代码变更清单
  • 撰写《操作日志注解使用规范》文档,包括:

title 命名规范("模块名-操作描述")

businessType 选择指南(什么操作用什么枚举)

isSaveRequestData/isSaveResponseData 使用建议

新增接口 @Log 注解添加模板


今日完成

  • 完成多个业务模块 Controller 的 title 命名规范统一,覆盖系统管理、设备管理、报警管理、网关管理、通信管理及其他业务模块,共涉及 180+ 处接口 ,统一采用 "模块名-操作描述" 的命名格式,提高日志可读性和维护性。
  • 全面检查项目中 BusinessTypeEnum 的使用情况,对误用 OTHERSELECT 等枚举的接口进行修正,使业务操作类型与实际功能保持一致,提高日志统计及审计准确性。
  • 对新增、修改等业务接口进行了统一规范,保证同类接口使用一致的业务类型枚举。
  • 针对分页查询、历史数据查询、操作日志查询等大数据量接口,合理配置 isSaveResponseData=false,减少日志表冗余数据存储,降低数据库存储压力。
  • 对文件上传、下载以及敏感操作接口(如重置密码、强制退出等)重新评估日志记录策略,合理设置请求参数及响应数据保存配置,提高系统审计能力。
  • 为多个缺失 @Log 注解的重要业务 Controller 补充日志埋点,覆盖设备管理、网关管理、通信管理、摄像头管理、AI 模块等核心业务,提高系统操作日志覆盖率。
  • 整理全部代码修改内容,形成完整的代码变更清单。
  • 编写《操作日志注解使用规范》文档,统一团队后续开发过程中 @Log 注解的使用标准。

学到的新知识

1. 企业项目中的操作日志不仅用于记录,更承担审计职责

企业级项目中的 @Log 注解不仅仅是为了方便开发人员查看日志,更重要的是满足系统的审计需求。合理记录操作人、操作时间、请求参数、操作类型等信息,可以帮助后续定位问题、分析用户行为以及满足安全合规要求。


2. 一个优秀的日志系统需要统一规范

今天最大的收获不是修改代码,而是理解了为什么需要制定统一规范。

例如:

  • title 统一采用 "模块名-操作描述"
  • BusinessType 使用统一标准
  • 查询接口统一标记为 SELECT
  • 删除接口统一标记 DELETE
  • 导出统一 EXPORT

统一规范之后:

  • 日志查询更加直观
  • 后续统计分析更加方便
  • 新人开发不会出现命名混乱的问题

3. 日志并不是记录得越多越好

今天了解到:

很多分页接口、历史数据接口返回的数据量非常大。

如果仍然保存完整 Response:

  • 日志表会快速膨胀
  • 数据库存储压力增大
  • 查询日志效率下降

因此对于大数据量查询,应合理关闭

plain 复制代码
isSaveResponseData = false

这是一种典型的企业级性能优化思想。


4. BusinessTypeEnum 的设计思想

以前认为只是一个普通枚举。

今天了解到它实际上承担着:

  • 日志分类
  • 操作统计
  • 权限审计
  • 数据分析

因此不同操作应该对应不同业务类型,例如:

  • INSERT
  • UPDATE
  • DELETE
  • EXPORT
  • IMPORT
  • SEND_DATA
  • OPERATING
  • SELECT

而不是全部使用 OTHER。


今日Bug

Bug:项目中部分接口存在日志注解配置不规范的问题,例如:

  • BusinessType 使用错误;
  • 查询接口误标为 OTHER
  • 特殊操作未使用更准确的业务类型;
  • 部分核心 Controller 缺少 @Log 注解。

原因:

随着项目不断迭代,不同开发人员的编码习惯不同,缺乏统一的日志规范,导致日志注解配置存在不一致的情况。

解决:逐个检查所有 Controller,对日志注解进行统一规范,包括:

  • 统一 title 命名
  • 修正 BusinessType
  • 补充缺失日志
  • 优化请求、响应数据保存策略

总结:

企业项目中的代码规范不仅体现在编码风格,更体现在统一的设计规范上。提前制定规范,可以有效降低后续维护成本,提高整个团队的开发效率。


今日技术总结

今天主要围绕企业级项目中的 操作日志设计 进行了深入学习,对 @Log 注解的使用有了更加系统的认识。

总结下来,一套优秀的操作日志需要重点考虑以下几个方面:

  • 统一命名规范 :所有接口采用统一的 title 命名格式,保证日志易于检索和统计。
  • 合理选择业务类型 :根据业务行为选择合适的 BusinessTypeEnum,提高日志分析价值。
  • 控制日志存储粒度:针对大数据量接口关闭响应数据保存,兼顾系统性能和审计需求。
  • 完善日志覆盖范围 :核心业务接口应全部补充 @Log 注解,确保关键操作均可追踪。
  • 形成团队开发规范:通过编写《操作日志注解使用规范》文档,将个人实践沉淀为团队规范,提升项目整体代码质量和一致性。

可写进简历

  • 参与企业级物联网平台操作日志模块规范化建设,统一 180+ 个接口 的操作日志命名规范及业务类型配置,提高日志一致性和可维护性。
  • 完善多个核心业务模块(设备管理、报警管理、网关管理、通信管理、AI 模块等)的 @Log 日志埋点,实现关键业务操作全链路日志覆盖。
  • 优化操作日志存储策略,针对大数据量查询接口关闭响应数据记录,降低日志表存储压力,提升系统运行效率。
  • 编写《操作日志注解使用规范》文档,沉淀团队开发规范,为后续功能开发提供统一标准。

STAR素材

Situation:

项目中大量 Controller 的操作日志注解配置不统一,不同模块存在命名混乱、业务类型使用不规范、部分接口缺失日志等问题,影响日志查询、统计分析以及系统审计。

Task:

负责统一整个项目的操作日志规范,完善日志埋点,并形成团队统一的开发规范。

Action:

  • 制定统一的 title 命名规则;
  • 全面检查并修正 BusinessTypeEnum 使用;
  • 优化请求、响应数据保存策略;
  • 为多个核心业务模块补充 @Log 注解;
  • 编写《操作日志注解使用规范》文档,沉淀最佳实践。

Result:

完成全项目 180+ 个接口 的日志规范化改造,实现核心业务日志全覆盖,提高了日志可读性、系统审计能力和团队开发一致性,同时形成了可持续复用的日志开发规范。


今日成长一句话(个人复盘)

今天最大的收获不是完成了大量接口的修改,而是理解了企业级开发中的"规范"比"功能"更重要。统一的日志设计能够显著提升系统的可维护性、可审计性和团队协作效率,这也是从"会写代码"迈向"会做项目"的重要一步。

相关推荐
ZZZMMM.zip1 小时前
基于鸿蒙HarmonyOS NEXT开发AI英语口语应用:智能口语练习新体验与鸿蒙Flutter框架跨端实
人工智能·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
程序喵大人1 小时前
【AI专栏】图解Transformer - 第05章:LLM 推理工程
人工智能·深度学习·llm·transformer
甲维斯1 小时前
差距太大了!GPT5.6Sol 正面战 Fable5,啥也不是!
人工智能·ai编程
江华森1 小时前
Python 实现高德地图找房(一):环境搭建与数据爬虫
开发语言·爬虫·python
杜子不疼.1 小时前
【Qt初识】信号槽(三):机制意义、断开连接与 Lambda 表达式
开发语言·数据库·qt
编程(变成)小辣鸡1 小时前
Spring事务失效场景
java·后端·spring
Eloudy1 小时前
LLM 公司提供的 token api 服务输出内容的特点
人工智能
DeepAgent2 小时前
AI Agent 工程实践(03):Memory 设计——Agent 到底应该记住什么?
人工智能
懂懂笔记2 小时前
老龄化加速下的中国答案:东软用AI思维重构“人生下半场”
人工智能·智慧养老