技能概述
iris-code-formatter 是专为 InterSystems IRIS/Cache 数据库环境设计的 ObjectScript 代码规范化工具,由资深医疗信息化开发者姚鑫维护。该技能深度针对 M 语言(MUMPS)衍生方言的语法特性,提供从命名规范到事务安全的全方位代码审查与自动修正能力。
核心能力
1. 多维规范检查体系
- 命名规范:覆盖变量(lowerCamelCase)、常量(全大写)、方法(UpperCamelCase)、Global(^CacheTemp 标准)等命名规则
- 事务安全:强制检测开放性事务,要求 ts/tc/tro 成对出现且在同一屏幕内,禁止跨方法提交
- 锁机制:验证加解锁成对性(+/-)、超时设置(:3)、避免死锁与死进程
- 陷阱处理:统一错误陷阱命名,内置 $zt=""、$tl>0 时的 tro 回滚等安全模板
2. 格式与可读性优化
- 运算符两侧强制空格、逗号后空格、方法大括号换行
- 命令缩写标准化(s/d/q/k 等),保留 for/while/if 全拼
- 系统函数缩写($e/$p/$l/$o 等)
- 关键特性:后置表达式格式校验——括号内运算符加空格、括号与 &&/|| 间不加空格,避免编译错误
3. 智能修正输出
- 完整保留原始代码结构,输出修正后完整代码(禁止省略)
- 逐行标记问题位置,引用具体规范条款
- 生成 Markdown 格式审查报告,含问题分级(严重/警告)
显著优势
- 领域专精:针对医疗信息化行业主流的 IRIS 平台深度定制,理解 ^global、&sql()、%Status 等特有概念
- 安全导向:内置事务完整性、锁超时、陷阱防死循环等企业级安全规则
- 工程实用:50 行方法长度限制、参数对象化重构建议等符合 Clean Code 实践
- 编译安全:后置表达式格式校验直接关联 IRIS 编译器行为,避免运行时错误
局限性与注意事项
- 平台绑定:仅适用于 InterSystems IRIS/Cache 环境,不兼容标准 MUMPS 或其他 M 语言实现
- 规范刚性:采用作者所在团队的编码规范,可能与用户组织现有规范冲突
- 版本依赖:部分规则(如 ^CacheTemp 命名)可能随 IRIS 版本演进变化
- 非语义分析:基于模式匹配进行格式化,不执行深度语义分析或逻辑错误检测
适用人群
- 医疗信息化开发者:使用 IRIS/Cache 开发医院信息系统(HIS、EMR、LIS 等)的工程团队
- 遗留系统维护者:需要统一老旧 ObjectScript 代码风格的技术负责人
- 代码审查人员:需要自动化工具辅助 CR 的资深开发者或架构师
- IRIS 新手上路:通过强制规范快速理解企业级 ObjectScript 编码标准
常规风险
- 自动化修正风险:复杂逻辑的后置表达式可能被误格式化,建议关键代码人工复核
- 注释覆盖:自动格式化可能调整注释位置,需确认文档注释(///)完整性
- Global 引用变更:临时 Global 命名修正可能影响跨进程数据依赖
- 事务边界:自动插入 ts/tc 需确认业务逻辑的原子性要求,避免过度事务化