TGViewer
开发者工具箱|编程·开发工具·资源 开发者工具箱|编程·开发工具·资源 @devtoolboxhub · 780 subscribers
Post #1609 6
逆向无文档 ERP:自学开发者的实战复盘

巴西餐厅运营经理 Luis Henrique Vasconcelos 分享了他逆向 TronSoft 餐厅 ERP 的经历。这套系统基于 Firebird 数据库,没有 API 参考、没有 schema 图、没有社区讨论,只有一份薄薄的操作手册。他靠观察生产数据库,最终梳理出约 40 个功能模块中的 390 张表和 514 个外键。

逆向过程中踩到的 Firebird 特性坑不少:SQL 方言用 FIRST 1 而非 LIMIT;主键由 GEN_ID 生成器驱动,不同步会产生静默冲突;复合主键在并发下才暴露问题;事务可见性也需摸清 autocommit 的具体行为。最难的并非 SQL 本身,而是复刻人工关闭 comanda 时的精确写入序列,让税务开票服务(NFC-e)认可自动化操作。他通过实时监控 MON$ 内部表、对比操作前后快照,逐步摸清黑盒规则。

第一版自动化用屏幕驱动鼠标键盘操作 UI,脆弱易断。转折点是放弃模拟界面、直接安全写入 COMANDA、ITEM_COMANDA 及税务相关表,复刻厂商软件预期的 NULL 模式和字段约定,自动化才从 hack 变成真正的集成,并已稳定运行在生产环境。


他的建议:无文档不是墙而是数据集,快照对比和查询日志比手册教得更多;在冷门系统里深耕是稀缺资产;生产环境才是真正的考验。他正把同样的方法用于评估 AI 编程代理。

#开发者 #工具 #逆向工程 #Firebird #TronSoft #数据库 #SQL #ERP #巴西
@DevToolboxHub
More from @devtoolboxhub
  1. Sep 26, 2026PostgreSQL 复制槽上限参数 max_replication_slots 解析 max_replication_slots 决定共享内存中复制槽数组的长度,仅此而已。它不决…
  2. Sep 26, 2026五仓库架构踩坑:Gitlink 与双 CI Flude 团队复盘了多仓库架构的实践代价。项目从第一分钟起就选择拆分成独立仓库,Pipeline、engine、design-docs…
  3. Sep 26, 2026Xeno Core:TypeScript 后端架构框架 Node.js 复杂系统的架构选型往往决定代码的长期命运。开发者常在两条路之间纠结:要么依赖重度使用实验性装饰器和反射(如…
  4. Sep 25, 2026用 SLO 给 AI Agent 的行为定个预算 Grafana Labs 提出把可靠性工程里的错误预算(error budget)思路用到 AI Agent 上。延迟、token…
  5. Sep 25, 2026Xcode 27.2 改用 JSON 项目格式 Xcode 27.2 用基于 JSON 的 project.xcproj 取代了沿用多年的 project.pbxproj。新建项目…
  6. Sep 25, 2026PostgreSQL 的 max_prepared_transactions 该不该开 prepared transaction 是脱离会话独立存在的两阶段提交事务。执行 PREP…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →