1.架構無關語言與平臺
架構是基于編程原則而來的。這些指導原則有SOILD原則或者設計模式,它們很穩(wěn)定并且能應用于不同的語言和平臺。投入時間學習架構是非常值得的。它不僅幫助我們設計更好的架構同時也能提高我們的編程技巧。
2.關于MVP/MVVM的困惑
MVP和MVVM的職責就是為啦將UI與邏輯分離。我們使用Presenter/ViewModel將邏輯代碼從View(Activity/Fragment)中分離出來。剩下的Model(M)的任務便是提供數據給Presenter、ViewModel.
我經常看到開發(fā)者費勁地使用interfaces和observers來實現Presenter或者ViewModel,過多了則是一種干擾。我認為把VP/VVM當做整個app的架構是錯誤的。MVP/MVVM作為一種架構模式扮演啦很重要的角色,但是作為一個app的架構卻不僅僅是ui分離。
3.架構是重要的但不是必要的
在一個Android開發(fā)者的進化之旅中,架構學習是在后期才開始的。其中一個原因便是沒有架構的情況下我們的應用依然能很好地工作,所以我們?yōu)槭裁催€要學花時間呢?
當我們經歷幾個版本處于一團糟的時候才去想架構,此時已經太遲啦。我們繼續(xù)任由這種混亂的情況,我們才開始認識到架構的必要性。
4.架構提高可變性
誠然我們無法預見我們應用未來的樣子,但是一個好的架構會提供足夠的靈活性來適應未知的變化。
5.架構不需要特殊的知識
一個好的開發(fā)者自然而然地會去設計架構,和第一點有些類似,在此重申一下。
6.架構需要紀律和耐心
架構就像一棵樹,我們不能再種植的當天收獲果實,我們需要時間和努力去設計架構,這也是個持續(xù)的過程。應用的每一個變更都需要我們在實現之前深思一下。
對應用架構危害最大就是我們開始走捷徑的時候。我們許下的承諾將會一次又一次地被放棄。
7.Google Architecture components
8.我們不用努力去成為一個軟件架構師
每一個軟件架構師都是一個開發(fā),反過來則不一樣。
9.架構的好處
其中一個優(yōu)點便是可變性。如果我們合理分離各個組件,并且規(guī)范組件之間的通信,那么增加新特性或者改變需求將會變得容易和快速。
翻譯自:10 things every Android app developer should know about Architecture