扩展Slack的移动代码库。现代化
In the first two posts about the Duplo initiative, we described why we decided to revamp our mobile codebases, the initial phase to clean up tech debt, and our efforts to modularize our iOS and Android codebases (post 1, post 2). In this final post, we will discuss the last theme of the Duplo initiative, Modernization, and look at the overall results and impact on developers.
在关于Duplo计划的前两篇文章中,我们描述了为什么我们决定改造我们的移动代码库,清理技术债务的初始阶段,以及我们对iOS和Android代码库进行模块化的努力(文章1,文章2)。在最后一篇文章中,我们将讨论Duplo计划的最后一个主题--现代化,并看看总体结果和对开发人员的影响。
Modernization
现代化
In addition to modularizing our codebase as part of Duplo, we also wanted to improve our overall app architecture, ensure we were keeping up with industry trends, and adopt more forward-looking design patterns and technologies. On each platform, we decided on particular areas of focus which we thought would both improve the experience of building features for our mobile developers and put our mobile codebases on better footing.
除了将我们的代码库模块化作为Duplo的一部分外,我们还希望改善我们的整体应用架构,确保我们紧跟行业趋势,并采用更具前瞻性的设计模式和技术。在每个平台上,我们都决定了特定的重点领域,我们认为这将改善我们的移动开发者的功能建设经验,并使我们的移动代码库有更好的基础。
But we also knew that the effort to modernize our code wouldn’t stop with Duplo, and that after the initiative finished there would still be more new technologies and design patterns we wanted to adopt. We wanted to set ourselves up for future innovation as well. For example: On iOS we decided to not adopt SwiftUI as part of Duplo for a number of reasons (iOS version restrictions, the stability of SwiftUI at that time, difficulty integrating it into the product), but we wanted to put ourselves in a position where we could adopt it in future, and where we would be able to explore using SwiftUI in parts of the app without having to use it everywhere.
但我们也知道,使我们的代码现代化的努力不会因为Duplo而停止,在这个计划结束后,仍然有更多的新技术和设计模式需要我们去采用。我们也想为未来的创新做好准备。比如说。在iOS上,我们决定不采用SwiftUI作为Duplo的一部分,原因有很多(iOS版本的限制,SwiftUI当时的稳定性,将其集成到产品中的困难),但我们希望把自己放在一个可以在未来采用它的位置上,我们将能够探索在应用程序的某些部分使用SwiftUI,而不必到处使用它。
iOS Modernization
iOS的现代化
Feature architecture
特征架构
The most ambitious g...