生成器曾是捷径,如今成了瓶颈。
GeneXus 帮您快速建成了大量软件。多年之后,当初让您加速的模式,正是拖慢每一次修改的原因。
每次修改都要经过生成器
一个字段、一条规则、一个界面:在知识库中建模、重新生成、编译、部署。在现代技术栈里几分钟的事,这里要花好几天,而且离不开专家。
业务藏在少数人能读懂的知识库里
知识库是您业务规则唯一完整的地图,而能读懂它的人每年都在减少。招人又慢又贵,每一次人员离职都是风险。
难以测试,难以集成
自动化测试、CI/CD、现代 API、响应式界面、AI 功能:这些都在和生成的代码较劲,而不是与之配合。
升级要看别人的日程
生成器每次升级版本都是一个独立项目,只要还有一个界面依赖它,授权费用就得继续付。
不凭记忆重写。不做盲目一跃。
现代化项目之所以失败,是因为新系统依据的是人们记得旧系统做什么。我们依据的是旧系统实际做什么,并在它旁边、基于同一份数据构建。
并行运行,共用同一数据库
新系统与 GeneXus 并行运行在同一个 SQL Server 上。先以只读方式起步,新界面直接读取真实数据,然后逐个模块接管。没有数据迁移,没有周末切换,原系统从不停机。
知识库就是需求规格
每一条业务规则都取自导出的 GeneXus 源码,并在新代码中注明文件和行号。不重新诠释,不凭猜测,知识库也终于变得可读。
以原系统的界面为准
做任何决定之前,我们先在运行中的系统上测量:标签、校验、每个下拉框的行为。源码与界面不一致时,以界面为准。
写入绝不重复
写入通过我们自己的存储过程完成,放在独立的 schema 中:幂等(重试绝不产生重复)、记录谁做了什么、删除前先备份,并按租户隔离。
每一处差异都有书面说明
我们照搬原系统,除非照搬会显示错误数据。任何差异在上线前都会写明原因,您始终知道改了什么、为什么改。
基于真实数据的数千个测试
测试直接针对您自己的测试数据库运行,每个都预埋一个错误用例:不可能失败的测试不算数。每日金丝雀测试会在两个系统上运行参考操作并对比结果。
逐个模块,按您的节奏。
您的团队全程照常交付。每个模块何时离开 GeneXus,由您决定。
阅读
我们拿到您的知识库导出和数据库结构,梳理每一个对象、规则和集成。您会得到计划:模块、顺序、风险。
镜像
新界面在您的真实数据上以只读方式上线,与 GeneXus 并行。您的用户可以零风险开始使用。
对等
逐个模块开放写入。每个模块都针对您的数据测试,每处差异都书面说明,并由您的用户验证。
下线
某个模块达到对等后,您就可以在 GeneXus 中将其下线。最后一个模块完成后,您就不再需要生成器。
- React + Vite
- .NET API
- 您现有的 SQL Server
- 沿用原有用户(GAM),之后接入您的身份提供商
- 带测试门禁的 CI/CD
- 您的云,您的代码仓库
六年的 GeneXus,一个月达到对等。
一个多租户保险平台,用 GeneXus 开发了约六年、投入约 30 万美元:多保险公司报价、保单、理赔、出单、导入工具、用户与权限。以下是第一个月的进展。
- 第 1 天
只读镜像上线:新界面直接从真实数据库读取。
- 第 2 天
使用原系统的用户登录,从知识库梳理出数据模型,并依据源码重建核心引擎及其集成。
- 第 1 周
首批模块开放写入,通过我们自己的存储过程完成,GeneXus 同时继续在同一份数据上工作。
- 第 1 个月
核心模块达到功能对等。目前正与客户共同验证,与原系统并行运行。
团队最先问的问题。
我们需要迁移数据吗?
不需要。新系统直接基于您现有的数据库工作。它自己的对象放在独立的 schema 中,原系统的任何内容都不会被改动,两个系统始终看到同一份数据。
开发期间我们还能继续在 GeneXus 里交付吗?
可以。两个系统在同一份数据上并行运行。尚未迁移的模块会继续在 GeneXus 中修改,直到轮到它们。
用户和权限怎么办?
新系统使用原系统同一套用户库(GAM)进行认证。大家用现有账号登录,每个租户只能看到自己的数据。之后您可以切换到自己的身份提供商。
集成和 Web 服务怎么处理?
每个集成都依据原始源码重建,并在承载真实流量之前,先在服务商的测试环境中验证。
一定要用 React 和 .NET 吗?
对于使用 GeneXus .NET 生成器的团队,这是我们的推荐:团队熟悉这个平台,SQL Server 也保持不变。如果您的团队使用其他技术栈,我们会在第一次通话时一起规划。
我们的系统需要多长时间?
取决于知识库的规模和集成数量。作为参考:约 4,900 个对象和十个外部集成,一个月达到了功能对等。通话时我们看看您的数据,再给出估算。
成果归谁所有?
归您。代码在您的代码仓库里,基础设施在您的云账户里。我们随时可以提供支持,但您不会离不开我们。
带上您的知识库,我们带上计划。
一次 30 分钟的通话。告诉我们系统规模、模块和集成情况,我们会告诉您并行重建是什么样子、需要多久、花费多少。