工业软件不可能把所有能力都预先写进平台核心。客户的行业模型、设备协议、计算规则和特殊流程经常需要扩展;如果每次扩展都修改平台核心,升级、测试和客户隔离都会变得困难。
牧言使用 .myp 插件承载传统代码与领域能力。MES、EM、工艺仿真与授权管理都可以采用插件形态,在共享平台运行时的同时保持业务边界清晰。
插件应该承载什么
插件适合承载稳定、可测试、需要代码表达的领域能力,例如:
- 设备和工艺领域模型;
- OPC UA 或其他协议适配;
- 复杂计算、规则和数据转换;
- MES、EM 的业务对象和服务;
- 工艺仿真与授权校验;
- 对外 REST、Webhook 和事件处理。
平台通用能力则保留在运行时,例如租户、权限、元数据、动态逻辑、任务调度、文件和插件生命周期。
为什么不把所有代码放进平台核心
平台核心一旦和某个行业流程强耦合,就会出现三个问题:不同客户的需求互相影响,平台升级变得谨慎,领域代码难以单独测试和交付。插件把这些变化隔离出来,平台只依赖稳定的扩展契约。
插件解耦不意味着插件可以随意访问数据库或绕过权限。插件仍然需要遵循平台的租户边界、权限模型、序列和审计规则;涉及数据迁移和公共 API 的变更,也要有明确的版本策略。
配置、动态逻辑与插件如何分工
可以用一个简单的判断:变化频繁且需要业务人员调整的内容,优先使用元数据和动态逻辑;稳定且需要代码测试的领域能力,放入插件;涉及现场安全和实时控制的能力,留在专用控制系统。
这样既不会把低代码误用成任意代码执行环境,也不会把每个行业场景都硬编码进平台核心。
相关入口:AI 原生低代码平台