在软件开发环节,项目架构的杂乱无章对团队的发展构成了重大障碍。项目中的包结构混乱、架构不完整等问题常常让人感到困扰,同时也容易引起对开发效率及业务成长的疑虑。
初期分层架构的运用
最初,这种分层的架构是业务项目建设的基石,其本身并无明显缺陷。众多项目都选择了这种架构。比如,我们公司的业务项目就是以此为基础搭建的。在过往的战略规划和规模下,这种架构基本能满足需求。然而,随着业务的发展,它开始遇到挑战。在我们不断更新业务的过程中,虽然分层架构有所调整,但其整体局限性也逐渐显现。
业务扩张导致旧架构在适应新情境时效能逐渐下降。面对新兴业务领域或繁复逻辑的拓展,原有的分层结构显得力不从心。
非标准MVC架构的弊端
团队在采用非标准的MVC架构进行业务层开发时,遇到了不少效率问题。随着业务持续更新,这一架构的不足之处就像水下礁石一样,逐渐显现出来。特别是在代码维护方面,随着业务功能的增加,代码的复杂性也随之增长,变得杂乱无章。
在新功能研发过程中,架构上的不足使得开发团队不得不投入大量精力去整理旧代码,这直接导致了开发进度的缓慢,延长了开发周期。这种情况无疑加大了项目的成本,也提高了管理的复杂性。
引入MVP架构
经过对实际情况的深入分析,我们认识到MVP架构对于解决现有问题非常有效。在仔细研究过MVP架构的示例之后,我们决定将其应用到项目中。这样一来,之前业务逻辑中那些复杂的视图和数据交互问题,在MVP架构的指导下,变得一目了然,条理清晰。
这一过程并不容易,我们根据项目的特性进行了一些改动。这些改动迅速显现出成效,显著提高了业务功能的开发速度,并且让开发流程变得更加规范。
引入新成员解决回调及逻辑问题
项目改进过程中,我们加入了特定要素,有效克服了嵌套回调的难题。业务逻辑一旦复杂,过去的嵌套回调导致代码层次过深,非常糟糕。如今,这一要素的加入使得复杂场景下的代码逻辑变得更加简洁。此外,它还有诸多优点,比如提高了代码的可读性,以及提升了后续维护人员的工作效率。
技术小组推动组件化和模块化
技术小组的组建是推动变革的关键。在组件化方面,其重要性不言而喻,主要是为了防止不必要的重复开发,实现资源的重复利用。比如,不同业务团队常常会开发出类似的功能,若不采用组件化,则可能导致资源的浪费。
模块化是业务难题与行业灵感相互影响的结果。目前,它正处在开发设计的阶段。尽管在这一过程中会遇到不少困难,但一旦顺利完成,将带来显著的好处。
插件化的未竟之路和模块化的过渡意义
回望15年在安居客的日子,我们开发的插件化框架因为那时的公司规模而未能落实。如今,采用模块化作为过渡手段显得尤为重要。我们将项目拆分成一个个模块,使业务模块之间相互独立。比如,不同的业务模块可以独立进行开发和迭代,这在开发流程和发布过程中都带来了新变化。模块化也为未来的插件化打下了基础,待时机成熟,若转向插件化,过程会更加顺畅。
开发者们,在你们编程过程中,有没有碰到过系统结构杂乱无章,导致工作效率降低的情况?期待大家能交流一下自己的体会和观点。
if(isBuildModule.toBoolean()){
apply plugin: 'com.android.application'
}else{
apply plugin: 'com.android.library'
}