Java 与 Kotlin 后端开发
修改 JVM 后端时,保留业务依赖的规则
现有 Java 或 Kotlin 服务的难点常在正常路径之外:来自 Java 的空值、未完成的数据库更新,或依赖升级后改变的序列化行为。我们先明确这些契约,再修改实现。
服务说明
Wavect 在 JVM 上实施明确范围的 Java 与 Kotlin 后端变更,进行契约、持久化和构建兼容性检查。框架支持与升级范围以实际代码库评估为准。
适合的情况
- 有明确变更需求的现有 Java 或 Kotlin 后端
- 需要处理 JVM 依赖或互操作风险的团队
其他需求
- 原生 Android 应用开发
- 预先假定需要完整重写
确认服务操作以及它的调用方
我们梳理受影响的接口或任务、身份验证、序列化、错误响应以及依赖这些行为的调用方。既有行为与目标变更会转化为明确验收条件。评估包括实际使用的框架和库;Java 或 Kotlin 并不自动代表采用 Spring。
本页负责 JVM 后端。原生 Android 界面与设备行为属于移动应用开发。
在 Java 与 Kotlin 的交界处检查空值
Kotlin 类型有助于表达值的缺失,但来自 Java 的平台类型仍需审查。Kotlin 互操作文档说明了这个边界。我们检查受影响代码中的 DTO、集合、注解和异常行为。序列化与校验测试明确缺失、null 和非法值会怎样到达调用方。
让事务边界对应业务操作
我们确认哪些数据库变更必须一起完成、何时提交以及如何报告失败。范围可以包括查询修改、数据结构演进、事务测试和连接管理。隔离与重试行为取决于实际数据库、驱动和框架。数据库事务不会自动包含外部 API 调用,组合副作用需要单独的一致性设计。
示例:更新失败时仍保留约定的数据规则
一项测试在两次相关数据库更新之间中断操作。预期事务行为应保留有效状态、返回约定错误,并允许安全的后续尝试。样本还会覆盖从 Java 进入的可能为空的值。这些是说明方法的检查,并非客户项目成果。
升级时会记录 JDK、编译器、构建工具和依赖兼容性,并在目标配置执行相同的服务契约测试。整个系统的替换属于旧系统现代化。
用可追溯的工程范围交付增量变更
开始前的常见问题
框架支持会在检查应用及所需专业能力后确认。Java/Kotlin 服务并不等于声称熟悉所有 JVM 框架。
不需要。混合代码库可能仍然适用。转换需要具体收益,并检查调用方、空值、构建和维护影响,不是默认交付项。
有时是,但必须验证。编译目标、已移除的 API、构建插件和库行为都可能影响范围。我们先确定受支持的版本路径和必要回归检查。
不会自动撤销。数据和结构变更需要各自的兼容性与恢复计划。交接会说明可回退的部分、需要向前修复的部分以及批准人。