1.架构无关语言与平台
架构是基于编程原则而来的。这些指导原则有SOILD原则或者设计模式,它们很稳定并且能应用于不同的语言和平台。投入时间学习架构是非常值得的。它不仅帮助我们设计更好的架构同时也能提高我们的编程技巧。
2.关于MVP/MVVM的困惑
MVP和MVVM的职责就是为啦将UI与逻辑分离。我们使用Presenter/ViewModel将逻辑代码从View(Activity/Fragment)中分离出来。剩下的Model(M)的任务便是提供数据给Presenter、ViewModel.
我经常看到开发者费劲地使用interfaces和observers来实现Presenter或者ViewModel,过多了则是一种干扰。我认为把VP/VVM当做整个app的架构是错误的。MVP/MVVM作为一种架构模式扮演啦很重要的角色,但是作为一个app的架构却不仅仅是ui分离。
3.架构是重要的但不是必要的
在一个Android开发者的进化之旅中,架构学习是在后期才开始的。其中一个原因便是没有架构的情况下我们的应用依然能很好地工作,所以我们为什么还要学花时间呢?
当我们经历几个版本处于一团糟的时候才去想架构,此时已经太迟啦。我们继续任由这种混乱的情况,我们才开始认识到架构的必要性。
4.架构提高可变性
诚然我们无法预见我们应用未来的样子,但是一个好的架构会提供足够的灵活性来适应未知的变化。
5.架构不需要特殊的知识
一个好的开发者自然而然地会去设计架构,和第一点有些类似,在此重申一下。
6.架构需要纪律和耐心
架构就像一棵树,我们不能再种植的当天收获果实,我们需要时间和努力去设计架构,这也是个持续的过程。应用的每一个变更都需要我们在实现之前深思一下。
对应用架构危害最大就是我们开始走捷径的时候。我们许下的承诺将会一次又一次地被放弃。
7.Google Architecture components
8.我们不用努力去成为一个软件架构师
每一个软件架构师都是一个开发,反过来则不一样。
9.架构的好处
其中一个优点便是可变性。如果我们合理分离各个组件,并且规范组件之间的通信,那么增加新特性或者改变需求将会变得容易和快速。
翻译自:10 things every Android app developer should know about Architecture
网友评论