前言
前前后后經(jīng)歷過大項(xiàng)目、小項(xiàng)目,跨平臺(tái),小程序,Nodejs服務(wù)等等,目前在做的Rom開發(fā),定制各種手機(jī)中的奇葩需求,從應(yīng)用層到Framework層,再到C++層,再到驅(qū)動(dòng),最終到Linux,研究過java虛擬機(jī),雖然沒研究過ART或者老牌的Dalvik虛擬機(jī),但原理都差不多,并不影響我對(duì)android有一個(gè)全局的認(rèn)識(shí),今天我們的主題是架構(gòu),其實(shí)對(duì)架構(gòu)的理解一定要宏觀一點(diǎn),大到手機(jī)操作系統(tǒng)架構(gòu),小到代碼邏輯設(shè)計(jì)的架構(gòu),一句老話講的好,也代表了我對(duì)架構(gòu)的整體理解:沒有最好的架構(gòu),只有最合適的架構(gòu)。下面我們聊聊,一個(gè)好的架構(gòu)是什么樣子的,該怎么去判斷呢。
好的架構(gòu)應(yīng)該有的優(yōu)勢(shì)
大道至簡(jiǎn)
簡(jiǎn)單直白、樸實(shí)無華、科學(xué)至真、人生至理、靈魂至美,簡(jiǎn)單是一個(gè)架構(gòu)好的靈魂。這是考驗(yàn)一個(gè)架構(gòu)師的終極指標(biāo),如何保證簡(jiǎn)單的設(shè)計(jì),來讓大部分人接受,用起來簡(jiǎn)單,又可以保證架構(gòu)的穩(wěn)定性,保證不被破壞,很難很難。
萬變不離其宗
以不變應(yīng)萬變,好的架構(gòu),總能抓住不變的部分,將變的部分做好抽象,滿足各類場(chǎng)景,在我們代碼的世界里就是做好接口和抽象。
抽絲剝繭
絲得一根一根地抽,繭得一層一層地剝,對(duì)的,一個(gè)好的架構(gòu)絕對(duì)是層次分明,各司其職,做人做事一樣,做好自己不越界是門技術(shù)活。世間萬物,都是獨(dú)立的存在,可以很近,又可以很遠(yuǎn)。代碼架構(gòu)的設(shè)計(jì)當(dāng)然離不開層次的設(shè)計(jì)。
領(lǐng)域驅(qū)動(dòng)
架構(gòu)不是滿足所有領(lǐng)域,不是大雜燴,他是針對(duì)特定領(lǐng)域的最完美的總結(jié),關(guān)注特定領(lǐng)域,保持初心。
小總結(jié)
很宏觀的概括,會(huì)當(dāng)凌絕頂,一覽眾山小,對(duì)吧,只有站在巨人的肩膀上,我們才能爬的更高,看的更遠(yuǎn),今天討論的都是大道理,下期我們來看如何對(duì)Android的項(xiàng)目做架構(gòu),在架構(gòu)上面搞架構(gòu),還真是挺有意思。期待ing.....