架構是什麼
其實對于架構,以前我也是一知半解,但工作了這些年,加上讀了許多關于架構相關的文章,結合實際項目經曆,有了自己的一些了解。
關于架構的概念,我們可以顧名思義地去看,架構=架+構,也就是在一個整體架子上和各個元件之間的組合結構。
架構離我們并不遠,反而在我們的實際開發中無處不在,它是一個很籠統的概念,上至架構選型,元件化等,下至業務代碼,設計模式都能稱為架構的一部分。對于架構學習而言,我覺得首先得對面向對象(抽象,繼承,多态等)及設計原則有一定的了解,進而結合 Android 常用的一些架構如MVVM, MVP, MVI等思想,基礎與理論了解清楚了,架構就在日常的開發中,多思考,多結合理論與實際,一點一點地積累起來了。
對于很多新入行的程式員來說,這部分人碰到垃圾代碼很多都會想着去重構,但經驗豐富的老人(老油子)早就知道能不動别人的代碼就不動的(doge),shit都是互相的,你來我往才能生生不息!寫代碼就講究一個禮尚往來~
對于程式員來說,在寫代碼的時候要記得三思而後行,想一想你寫的代碼是不是在它該在的位置,是不是以該有的形式存在的。
架構不是一蹴而就的,能夠從自己寫的代碼中找到架構的成就感是非常爽的! 如果各位對于架構有迷茫不知從何學起的或者剛入行想要從頭開始學習架構,大家可以看看參考一下我整理的這份 《Android 開發架構必備開發文檔》。
強調一下:【因篇幅問題:文中隻放部分内容,此文檔需要的可找作者擷取。】
架構設計核心技能:注解與泛型
知識點 :(注解、泛型、政策模式、元件化)
架構動态程式設計技術原理
知識點 :(動态代理、反射、編譯時處理)
Android虛拟機指令
知識點 :(指令集、Android記憶體管理、類加載機制)
Android虛拟機垃圾回收
知識點 :(垃圾收集算法、垃圾收集算法分類、垃圾收集器、垃圾收集器分類、實體記憶體與虛拟記憶體、GC root算法)
Android虛拟機類和對象的結構
知識點 :(對象記憶體結構、Object堆内管理政策、逃逸分析、Minor GC、Major GC和Full GC對比與GC日志分析)
并發記憶體模型
知識點 :(JMM并發記憶體模型、無鎖并發政策--CAS、AQS)
Synchronize機制
知識點 :(Synchronize修飾代碼塊、鎖、同步原理、鎖的優化)
深入并發原理之線程池
知識點 :(線程池、線程池工作原理、自定義線程池)
高效IO與資料序列化
知識點 :(高效IO、資料序列化、I/O多路複用機制詳解、其他序列化方式)