鼎捷T100二次开发实战:从命名规则到高效协作的编码规范

鼎捷T100二次开发实战:从命名规则到高效协作的编码规范 1. 为什么命名规则在T100二次开发中如此重要第一次打开鼎捷T100的源码时我差点被满屏的imaa001和aimi100搞崩溃。这些看似随意的字母数字组合其实是经过精心设计的命名体系。在大型客制化项目中规范的命名就像城市的路牌系统——没有它开发者就像在迷宫里打转的快递员永远找不到正确的代码位置。去年我们接手一个制造业ERP改造项目客户原有的T100系统经过多轮开发出现了大量命名混乱的表格和函数。有个表格叫data_t里面200多个字段30%是废弃字段20%是重复字段。我们花了整整两周时间才理清这个垃圾场的实际业务逻辑。这段经历让我深刻认识到规范的命名不是形式主义而是团队协作的生命线。T100的命名体系有三个核心价值快速定位看到axmr402_g01.4rp就知道这是AIM模块的MRP报表避免冲突行业编码ic确保电子业定制代码不会与机械业混淆降低维护成本标准化的crtid/crtdt字段让所有表都有统一的创建记录追踪2. 表格命名的实战技巧与避坑指南2.1 标准表格的命名密码T100的标准表格命名就像乐高积木的拼接规则。以料件主表imaa_t为例前两位im代表AIM模块Inventory Management中间aa是流水号通常从aa开始递增后缀_t是表格固定标识这种结构在查询时特别高效。当需要查找所有库存相关表格时只需在SQL中过滤im%_t。我们团队开发了一个智能提示工具输入模块缩写就能自动带出所有关联表格效率提升40%。常见坑点流水号不连续某次我发现客户跳过了ab-ac-ad直接用了ae后来发现是开发人员觉得ac不吉利行业编码缺失有个电子业专属表格漏加ic后缀结果被机械业误修改导致数据错乱2.2 客制化表格的生存法则客户要求新增供应商评估表时必须遵守这条铁律永远不要在标准表上直接加字段。正确的做法是标准表扩展imaa ua 三码流水号如imaaua001全新客制表模块码 uc 流水号 _t如imuc001_t我们开发了一套自动化检查脚本会在代码提交时扫描# 检查是否直接修改标准表结构 grep -r ALTER TABLE.*_t ADD COLUMN $T100_SOURCE # 验证客制字段命名合规性 python check_custom_field.py imaauc*3. 程序命名的艺术从作业到函数3.1 主程序的分类编码T100的程序命名包含隐藏信息。以aimi100为例aim库存管理模块i建档类作业IInitialize100功能序列号我们团队总结了程序类型速查表类型码含义典型场景I基础数据建置物料主数据维护T事务处理入库单处理Q查询作业库存余额查询实用技巧在Genero开发环境中配置代码模板输入//newq自动生成查询作业框架代码确保命名规范从源头落实。3.2 函数命名的黄金法则看过最离谱的函数命名是do_something_important()。T100的规范要求函数名必须包含程序名和功能比如好的命名aimi100_insert()坏的命名save_data()我们制定了函数开发自查清单是否以主程序名开头功能描述是否准确_insert/_query相同功能是否已有现成函数是否添加了必要的注释头FUNCTION aimi100_insert() # 功能料件主档新增处理 # 作者张三 2023-08-20 # 修改记录 # 2023-09-01 李四 增加批次号校验 DEFINE l_ret INTEGER ... END FUNCTION4. 变量命名的战场生存手册4.1 前缀系统的实战应用T100的变量前缀不是装饰品而是类型声明g_全局变量Globall_局部变量Localp_参数变量Parameter曾经有个bug追踪两周最终发现是开发人员把g_user_id误写为l_user_id导致数据不一致。现在我们用IDE插件自动检查函数内修改了g_开头的变量会告警p_变量在函数内被重新赋值会报错未使用的l_变量提示清理4.2 数组变量的特殊规范屏幕数组变量s_detail1到s_detailN是T100的特殊结构。我们踩过的坑包括直接修改s_detail1_info导致界面绑定失效未初始化的s_browser数组引发内存泄漏解决方案是封装工具函数FUNCTION init_s_array(s_array) DEFINE s_array DYNAMIC ARRAY # 初始化数组结构 CALL ui.Interface.clearArray(s_array) LET s_array[1].field1 NULL ... END FUNCTION5. 高效协作的命名管理实践5.1 团队命名公约我们制定了三条铁律所有新资源必须在azzi900/azzi901注册每日构建时运行命名规范检查代码评审时命名规范一票否决配套工具链自动注册工具对接T100系统表命名冲突检测器行业编码校验插件5.2 重构旧代码的渐进策略面对历史遗留的混乱代码我们采用外科手术式重构第一阶段添加准确注释第二阶段创建别名函数保留旧函数调用新函数第三阶段逐步替换调用点例如改造模糊的calc()函数# 第一阶段添加注释 FUNCTION calc() # 原函数计算物料需求(MRP) ... # 第二阶段创建新函数 FUNCTION aimm200_calc_mrp() ... # 第三阶段旧函数转发 FUNCTION calc() CALL aimm200_calc_mrp() END FUNCTION在最近的电机制造业项目中这套规范使团队协作效率提升60%新成员上手时间从2周缩短到3天。当看到实习生能准确说出axmr402_g01_subrep01.4rp是电机绕线报表的子模板时我知道这些命名规则的价值真正得到了体现。