WEB开发网
开发学院WEB开发ASP.NET Rails系统重构:从单一复杂系统到多个小应用集群 阅读

Rails系统重构:从单一复杂系统到多个小应用集群

 2010-10-09 08:15:34 来源:WEB开发网   
核心提示: 难以测试与部署复杂的业务代码不仅会增加写测试代码的难度,运行测试的时间也必然会随之增加,Rails系统重构:从单一复杂系统到多个小应用集群(2),大量的fixtures不仅难以管理,还经常会造成互相干扰,由于每一个应用都是独立的Rails程序,而一个较为复杂的业务流程可能要在多个应用间跳转,复杂

难以测试与部署

复杂的业务代码不仅会增加写测试代码的难度,运行测试的时间也必然会随之增加。大量的fixtures不仅难以管理,还经常会造成互相干扰。

复杂的系统也增加了部署的风险,一个小错误可能会导致整个系统的崩溃。为了降低这种风险,需要延长系统部署的周期,只在特定的时间或系统有重大更新时才部署,这样就在一定程度上弱化了Rails系统根据用户需求快速升级迭代的优点。

影响团队建设

除了技术上的问题,复杂的Rails系统对团队建设也会产生不利影响。首先如果某个开发人员提交了测试无法通过的代码,会对其他人的工作产生影响,降低开发效率;其次对于复杂的系统,增加新功能或修复bug都变得比较困难,久而久之程序员就会产生惰性,代码能少改的就少改,严重阻碍了系统的快速进化;最后在团队有新人加入时,会担心由于其不熟悉系统造成系统崩溃,而不敢放手让他真正参与进来,这样对新人的成长是十分不利的。

轻量级应用集群

为解决复杂的Rails系统产生的一系列问题,我们将单一系统按照业务功能进行划分,每一部分用一个独立的Rails应用来实现,从而形成若干个轻量Rails应用集群,这些应用相互协作,共同实现整体业务逻辑。

拆分后每一个Rails应用具有如下特征:

有独立的数据库,可以独立运行;

程序代码量比较小,一般情况下只需要一到两个程序员开发与维护;

高内聚、低耦合。

系统进行拆分后,需要解决一系列关键的问题,例如:如何保持用户体验的一致性、应用之间如何交互、如何共享用户等。下面将逐一针对这些问题介绍解决方案。

用户体验一致性

系统进行拆分后,由若干个轻量级应用共同协作来完成某项业务操作。由于每一个应用都是独立的Rails程序,而一个较为复杂的业务流程可能要在多个应用间跳转,所以首先要解决用户体验的一致性问题。

上一页  1 2 3 4 5 6 7  下一页

Tags:Rails 重构

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接