首頁>技術>

架構設計在現今已經成為軟體開發必不可少的環節,而架構學習和架構選型往往是一個困難的“工程”。若有一天我們想要改善現有軟體的架構模式,或對架構的選擇感到迷茫,我們應該如何找尋方向,選擇合適的架構呢?

本文幫你認清團隊規模和目前存在的問題,並分別針對大、中小團隊及創業公司給出推薦架構選型方案。

選擇合適的架構需要認清團隊規模的原因在於:

團隊規模代表著新技術的學習成本。團隊規模與軟體規模有一定關聯。團隊規模強調開發效率和軟體可維護性的重要性。

現在敏捷開發盛行,越來越多的公司傾向於從大型團隊中剝離出幾個小團隊,管理不同的業務模組。一般,每個小團隊由4~6人組成,這樣的模式更能提高軟體問題的解決效率,這也是一些管理者認為的最佳團隊規模。如果你在大公司,那麼很有可能你就處於這種流行的、類似分治思想的團隊之中。

你也有可能處在中小型技術團隊之中,這種團隊可能會負責一般規模的軟體系統,但是這裡的開發人員或許要比大型技術團隊中的開發人員掌握更多的技術,而且其忙碌程度也可能更高。所以,團隊規模並不能代表團隊中開發人員的工作任務難度和技術學習成本。

還有一種可能是你處在創業公司,或是非科技公司的“團隊”,即獨立開發者。你一個人要負責整個App的維護。App規模或小或大,對於開發者來說,在掌握業務的基礎上,他可能還需要關心App的構建與釋出等問題。獨立開發者如圖16.7所示。

後面將針對大型技術團隊、中小型技術團隊和獨立開發者,提供架構選型的建議。

在認清團隊規模後,你還需要找出團隊目前存在的問題,即系統內部問題和系統外部條件。

系統的一部分問題可能是由於外界帶來的需求而產生,一部分問題可能是內部團隊的規則定製所帶來的,在架構選型之前,我們可以通過內部和外部的調研,找出系統目前存在的問題,再選擇最有利的架構模型。

在MVX系列架構模型中,MVC架構的Massive View Controller問題已經被太多的開發者所不能接受,選擇MVC架構模式對於軟體需求變化的快速響應,並不是十分有利。

而MVP架構是移動開發現階段比較流行的架構模式之一。使用MVP進行面向介面程式設計,在大型技術團隊的大型軟體專案中,非常有利於業務元件之間的解耦,MVP架構是大型技術團隊的適用架構模式。

MVP的Presenter具有複用性問題,我們可以選擇使用The Clean Architecture系列架構來解決這一問題,將業務邏輯劃分為更小的類,在大型軟體專案中更利於業務邏輯的維護和程式碼的抽象設計。

MVVM架構同樣是推薦的架構之一,但是在移動開發中,開發者對MVVM架構的理解與使用並沒有像MVP架構這樣普遍,使用MVVM架構會增加學習成本。使用MVVM架構的同時,可以引入Google官方推薦的架構元件AAC。

對於大型技術團隊而言,若將團隊劃分為多個小型業務團隊,那麼模組化系列架構是尤其推薦的架構模式,元件化架構可以將專案分而治之,這與團隊組成形式的特點有著相同之處,外掛化架構可以根據團隊的業務需求而進行選擇。

所以,對於大型技術團隊維護的大型軟體專案,非常推薦MVP架構,可以考慮The Clean Architecture系列架構,同時推薦使用元件化技術將架構進行元件劃分。而對於可以接受學習成本的團隊,也推薦使用MVVM架構和Android Architecture Components系列元件。

在中小型技術團隊中,技術選型有著更高的靈活性,團隊成員對技術的學習成本的重視程度相對而言更低一些。

在中小型技術團隊中,使用MVVM架構設計和Google官方推薦的Android Architecture Components系列元件是非常不錯的選擇。大多數時候,中小型技術團隊人員擴增可能並沒有大型技術團隊那樣迅速,所以,技術的學習成本並不是一個非常棘手的問題,進而提高了選擇MVVM架構的可能性,在此基礎上使用Dagger2實現依賴注入,使用RxJava2進行函式響應式程式設計也是不錯的選擇。

而MVP架構同樣是推薦的架構模式之一。元件化設計在中小型技術團隊是一個備選方案,在軟體業務規模並不是很大的時候,可以選擇後期再考慮重構。

獨立開發者的架構選型具有更高的靈活性,架構選型在外部受業務需求的影響,在內部受團隊開發者的技術掌握程度的影響。

由於MVP架構涉及更多的面向介面程式設計,對於獨立開發者而言,可能在某種程度上提高了開發的複雜度,所以,相比MVP架構,MVC架構和MVVM架構是更推薦的方案。

而函式響應式程式設計相關框架RxJava2也可以用來為獨立開發者提供優雅的程式設計模式,獨立開發者在維護規模並不大的移動應用系統時,可能並不需要處理非常複雜的依賴關係,所以,可以在需要的時候再考慮Dagger2。


在現今的技術盛世中,各種架構模式“百花齊放”,然而每種架構模式的概念都比較晦澀難懂,這不僅使得一部分初學者“從入門到放棄”,也讓進階人員耗費了太多的學習成本。

傳世經典《程式設計師修煉之道》作者 Andy Hunt 等專業人士力薦,幫助入門開發者了解架構模式,進階開發者掌握架構模式,技術領導者進行架構選型,並填補移動端或Android架構實戰書籍的空白。


█ 本 書 特 色

專注:50+實戰案例。填補移動開發架構設計書籍空白

全面:10+架構模式。流行移動端架構全面囊括

實戰:10+系統設計實戰。程式碼註釋豐富,易於理解

易讀:學習門檻低。內容精練,語言通俗易懂

█ 關 於 作 譯 者

李雲鵬

網易新聞架構技術組工程師,沐暄網創始人Oracle、Adobe等企業認證專家10年網際網路經驗,曾就職於世界500強企業核心技術實驗室擅長移動端架構設計、專案重構與Intellij外掛開發參與網易新聞元件化架構設計,視訊模組、統計模組等多模組重構喜歡創新和研究

█ 大 咖 推 薦

傳世經典《程式設計師修煉之道》一書作者 Andy Hunt 對本書讚譽道:

Congratulations to Leo on the publication of this book. Most people don't realize how much hard work and care goes into a book, but I can tell you it is quite a lot. Read this book and take advantage of Leo's hard work and experience. After all, the person who does not read books has no advantage over a person who can not.

此外,眾多國內外行業大咖同樣力薦:

何青 / 網易資深Android工程師、前百度貼吧工程師,作者導師劉望舒 / 《Android進階之光》《Android進階解密》作者,無線技術專家Yury Camacho / GDG發起人,著名國際演講者,谷歌技術專家(GDE)朱金鵬 / 谷歌技術專家(GDE)

█ 本 書 主 要 內 容

——————————

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • docker的安裝與專案的部署