旧系统现代化改造:挑战与应对策略
在软件开发领域,旧系统的现代化改造是一项极具挑战性的任务。随着技术的不断发展,曾经看似简单的系统可能隐藏着多年迭代积累的复杂性,尤其是当系统具有多层抽象,且这些抽象超出应用边界,涉及操作系统 API 或硬件接口时。
1. 过度生长问题
过度生长是软件与其运行平台抽象层之间的一种特殊耦合。对于旧系统而言,依赖管理不仅仅是包管理器安装的问题,系统越旧,其运行的平台本身越可能成为一种依赖。大多数现代化项目往往没有充分考虑到这一点,导致后续出现意外问题。
例如,在数据库迁移时,不仅要移动数据,还可能需要用不同语言或 SQL 实现重写查询,重新思考钩子或存储过程。在 Web 开发中,很多项目运行在 Linux 机器上,代码库中常包含 shell 脚本。若未来 Linux 被其他操作系统取代,迁移这些应用时就需要重写所有 shell 脚本并迁移应用。
过度生长通常在以下几种转换场景中出现:
- 垂直转换 :在软件、硬件和操作系统这三个基本层之间转换时,过度生长常表现为专有标准。如旧大型机的软件通常使用特定于制造商和机器型号的汇编变体编写。
- 水平转换 :当两个应用通过具有专有协议的机器或网络设备交换数据时,连接周围可能出现过度生长。Web 开发受此影响较小,因为互联网推动了标准协议的使用,但在其他软件开发领域,专有协议的影响更大。
- 从客户端到服务器的转换 :这种转换可能表现为特定工具和集成的软件开发工具包(SDK)、特定数据库连接的驱动程序或前端到后端的移动。例如,一些内部 Web 应用依赖
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



