一个应用程序的外观可能很漂亮,但如果内部架构很糟糕,它就会很慢、难以维护并且充满错误。 软件架构定义了代码的各个部分如何组织以及如何相互通信。它是建筑物的基础。
如果您正在开始或继承了一个遗留项目,请了解基础知识,这样您就不会建造一座纸牌屋。
什么是好的架构?
一个好的架构应该是:
- 可扩展:轻松添加新功能而不破坏旧功能。
- 可测试:易于编写[自动化测试0。
- 可维护:任何新开发人员都应该快速理解代码。
通用标准(字母汤)
MVC(模型-视图-控制器)
经典。
- 模型:数据。
- 视图:屏幕。
- 控制器:连接两者的逻辑。
- 问题:在移动应用程序中,控制器往往变得巨大(大规模视图控制器),集中了太多的责任。
MVVM(模型-视图-视图模型)
现代行业标准(Android Jetpack、iOS Swift UI)。
- ViewModel:专门为View准备数据来显示。视图“观察”ViewModel。如果数据发生变化,屏幕会自行更新(反应性)。
- 优点:它很好地将逻辑与界面分开。
干净的架构
由罗伯特·C·马丁(鲍勃叔叔)提议。将应用程序划分为多个层(洋葱)。
- 核心(域):纯粹的业务规则(他们不知道这是一个应用程序)。
- 数据:存储库、API、数据库。
- 演示:UI、ViewModel。 规则是:外面的层知道里面的层,但是里面的层不知道外面的层。 Core 不知道它是在 iPhone 还是微波炉上运行。
基本错误
- UI 中的逻辑:将业务规则(“如果余额 < 0,则将其设置为红色”)直接放置在屏幕文件中。这使得在不运行模拟器的情况下无法进行测试。
- 强耦合:如果你改变API库(Retrofit)并且必须重写屏幕,那么你的耦合是错误的。使用依赖注入。
- 上帝对象:做所有事情的类(调用API,保存在数据库中,格式化数据)。分成小班,承担单一责任(SOLID)。
结论
不存在“完美的架构”,只有适合项目规模的架构。对于 [MVP1],简单的 MVC 就可以了。对于超级应用程序来说,干净的架构是必须的。重要的是选择一个标准并始终遵循它。
另请阅读
- [应用后端:小团队不能犯错误的良好实践22
- [初创公司申请-日常清单3
- [面向初创公司的应用程序:扩展之前真正重要的事项清单4
- [如何扩展应用程序 - 与扩展的比较5
- [应用架构:可扩展系统完整指南6
- 【应用架构-企业最佳实践7
