2020Android怎麼發展?談一下當下最合適的架構!
前言
今天我們的主題是架構,其實對架構的理解一定要宏觀一點,大到手機作業系統架構,小到程式碼邏輯設計的架構,一句老話講的好,也代表了我對架構的整體理解:沒有最好的架構,只有最合適的架構。下面我們聊聊,一個好的架構是什麼樣子的,該怎麼去判斷呢。
好的架構應該有的優勢
大道至簡
簡單直白、樸實無華、科學至真、人生至理、靈魂至美,簡單是一個架構好的靈魂。這是考驗一個架構師的終極指標,如何保證簡單的設計,來讓大部分人接受,用起來簡單,又可以保證架構的穩定性,保證不被破壞,很難很難。
萬變不離其宗
以不變應萬變,好的架構,總能抓住不變的部分,將變的部分做好抽象,滿足各類場景,在我們程式碼的世界裡就是做好介面和抽象。
抽絲剝繭
絲得一根一根地抽,繭得一層一層地剝,對的,一個好的架構絕對是層次分明,各司其職,做人做事一樣,做好自己不越界是門技術活。世間萬物,都是獨立的存在,可以很近,又可以很遠。程式碼架構的設計當然離不開層次的設計。
領域驅動
架構不是滿足所有領域,不是大雜燴,他是針對特定領域的最完美的總結,關注特定領域,保持初心。
Android架構演進
MVC > MVP > MVVM
我們先回顧一下google為我們做了什麼,一開始我們接觸android,大家都在用MVC,甚至可以說沒有架構,而且那個時候app是真的簡單,但隨著不斷的迭代,問題越來越多,google也發現了這個問題,於是github開源了MVP架構的示例,教我們如何整合框架,如何在架構設計上保證業務的發展需求,再到現在主推的MVVM,其實不難發現一個共性,WEB端大家都知道吧,你看現在最火的React、Vue,不都是MVVM的架構嗎(有人說不是,有人說是,這裡不多解釋,我們不應該糾結是不是,應該理解M-V 、 V-M 是資料繫結UI,無非是單向還是雙向的,都屬於一種理念吧,理解就行。)
原生 > React Native > Flutter
一個好的架構只是MVC到MVVM嗎?我不這麼認為,從一開始我們接觸到原生的Android開發,到後來大火的React Native,我們16年還專門整合了React Native模組,但做了幾個迭代後放棄了,我們發現為了適配Android、Ios 也花費了很多時間,倒不如用原生做的好用。目前最火的Flutter,也是Google主推的跨平臺框架,而且我們現在就在C端專案中整合了,效果還不錯,雖然也是有很多問題,但總體來看比React Native 要好,還有一點Google內部正在開發的另一個作業系統Fuchsia的UI layer採用的是Flutter,也就是說Flutter天然可以支援Android、IOS以及未來的Fuchsia。在大前端方向,對於跨平臺開發中一直在不斷迭代中尋找更好、更優的解決方案,目前來看Flutter還是更有優勢
Java > Kotlin,Dart
來說說語言,你說語言屬於架構嗎?我也不知道,但這是我架構的時候考慮的一個方向,語言是我們組織架構最基礎的單元,kotlin的普及,應該不僅僅是google認為語言不錯,讓我們廣大開發者使用,其實這裡面涉及了很多東西,我們知道最新的android引用的是open jdk,前幾年的官司打個不停,付出了不少人力財力,這肯定不是我們還要考慮的,但有一點可以肯定,kotlin語言確實是個趨勢,因為他有更合理的設計,更安全的效能表現,更加簡潔的程式碼,當然你可以用java寫android寫到老,我也不認為你用kotlin寫就一定比java寫的好,看個人選擇吧。再說說Dart,這個我就有點不理解,為啥Flutter一定要用Dart寫,好像Google工程師這麼回答:說Dart就在隔壁啊,好溝通。哈哈。
小總結
透過上面的閒扯,我們基本已經有了架構的雛形了吧
- MVVM + 原生 + Kotlin
或 - MVVM + 原生、Flutter + Kotlin、Dart
等等..
自己組合吧,我目前選擇第二種,相信很多人的專案都已經是這樣了。那麼接下來我們就要實現這樣的架構,架子有了,就該塞東西了,這樣就顯得飽滿一些。
結語
從Android的架構演進,不難看出未來的世界肯定是大前端的,所謂的大前端也許是大佬們一個概念,但從這幾年好多大統一的技術出現,感覺未來不遠,也許就是明天,
在這奉勸各位讀者,提升自己就在現在,分享一份整理好的學習合集,由於篇幅有限,這裡以圖片的形式給大家展示一部分。還有高階架構技術進階腦圖、Android開發面試專題資料,高階進階架構資料等等
幫助大家學習提階升,節省網上搜尋資料的時間來學習,也可以分享給身邊好友一起學習。
學習PDF+原始碼筆記+Flutter+Kotlin+進階影片+學習路線
【Flutter從入門到進階學習影片】
【 Android學習PDF 】
【Android高階架構影片學習資源】
現在都說網際網路寒冬,其實無非就是你上錯了車,且穿的少(技能),要是你上對車,自身技術能力夠強,公司換掉的代價大,怎麼可能會被裁掉,都是淘汰末端的業務Curd而已!
現如今市場上初級程式設計師氾濫,這套教程針對Android開發工程師1-6年的人員、正處於瓶頸期,想要突破自己漲薪的,進階Android中高階、架構師對你更是如魚得水,趕快領取吧!
【kotlin學習影片】【原始碼】等更多學習內容私信【安卓】檢視免費領取方式!
我們要學的東西有很多,而學到的知識點,都是錢(因為技術人員大部分情況是根據你的能力來定級、來發薪水的),所以不要猶豫,早學習早點升職加薪!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2681895/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 當下什麼樣的營銷模式適合商家?模式
- GO語言在當下發展前景怎麼樣?Go
- 活塞環埠位置怎麼裝配最合適?
- 談談資料倉儲架構的發展和分類架構
- 領跑最後一公里 青藤雲安全自適應架構瞭解一下?架構
- 2021年Java發展前景怎麼樣?還適合入行嗎?Java
- 盤點當下幾款主流的 Python IDE,哪款最適合你?PythonIDE
- 外貿怎麼做?最適合新手的外貿流程來了
- Android架構系列-基於MVP建立適合自己的架構Android架構MVP
- 淺談當下IDC發展的現狀與生存之道
- 最適合和最不適合新手使用的幾款 Linux 發行版Linux
- 當網站的發展遭遇瓶頸該怎麼辦?網站
- [原創]淺談大型網際網路架構發展架構
- 最適合初學者的語言是什麼?
- 談一下我們是如何開展code review的View
- 淺談一下“敏捷開發”敏捷
- 怎樣選擇最合適的Linux發行版?23個版本橫向對比,總有適合你的Linux
- 談談公司中研發體系的架構架構
- 最適合於初學者的 Linux 發行版Linux
- 阿里支付寶架構師:談談我眼中的高併發架構【好文】阿里架構
- 企業如何選擇合適的RPA部署架構架構
- 數倉架構發展史架構
- 什麼樣的人不適合當程式設計師?程式設計師
- 如何架構一個合適的企業API閘道器架構API
- 怎麼架構自己的網站架構網站
- 微服務架構下的鑑權,怎麼做更優雅?微服務架構
- SAP 技術架構的發展歷程架構
- 十個最適合 Web 和 APP 開發的 NodeJS 框架WebAPPNodeJS框架
- 10 個最適合 Web 和 APP 開發的 NodeJS 框架WebAPPNodeJS框架
- 總結一下基於 Lumen 框架的專案架構框架架構
- 哪個 Linux 發行版本最適合跑 OracleLinuxOracle
- 怎麼才能找到適合你的雲端計算方案
- 什麼樣的人不適合當程式設計師呢?程式設計師
- 介紹一下Spring Cloud微服務架構SpringCloud微服務架構
- 閒來無事畫了一下'架構'圖.架構
- 怎麼判斷Linux是否適合你?Linux
- AWS架構圖繪製軟體免費下載,怎麼畫AWS架構圖架構
- 從結親網 的架構談起,談什麼架構, 我理解的架構。我想很多人理解的架構應該可能比較 狹義架構