RxJava為什么深受大廠面試官青睞?
RxJava作為目前Android開發(fā)主流的異步操作庫(kù),能幫我們實(shí)現(xiàn)用簡(jiǎn)潔的邏輯去處理繁瑣而復(fù)雜的異步任務(wù)。但也有部分Android開發(fā)者認(rèn)為RxJava并不“友好”,因?yàn)橐冻鲆欢ǖ膶W(xué)習(xí)成本,作為有經(jīng)驗(yàn)的開發(fā)者,往往會(huì)使用自己最熟悉的編程方式處理業(yè)務(wù)請(qǐng)求。那RxJava就不適用了??
真相并非如此,用了RxJava就逃離不了真香定律。

想要徹底理解RxJava確實(shí)需要花費(fèi)一定的學(xué)習(xí)成本。但這種學(xué)習(xí)成本是值得的,因?yàn)镽xJava涉及的設(shè)計(jì)思想每個(gè)開發(fā)者都應(yīng)該掌握。而欲了解RxJava首先得搞清楚什么是響應(yīng)式編程?
什么是響應(yīng)式編程呢?它其實(shí)就是一種基于事件驅(qū)動(dòng)的機(jī)制。通俗來(lái)講就是,有事件的時(shí)候根據(jù)事件做出反應(yīng),沒(méi)有事件則啥事不干。
除了理解響應(yīng)式編程外,還需要理解一個(gè)設(shè)計(jì)模式-觀察者模式。相信大家對(duì)觀察者模式早有所耳聞,甚至還動(dòng)手實(shí)現(xiàn)過(guò)相關(guān)例子,但往往這種例子只能讓開發(fā)者在當(dāng)時(shí)感覺(jué)理解,事后卻發(fā)現(xiàn)無(wú)法將學(xué)習(xí)到的知識(shí)融入到平常工作中。這又是為什么呢?
要回答這個(gè)問(wèn)題,我們可以從另外一個(gè)大家關(guān)心的例子來(lái)談起:為什么大廠面試是造航母,而工作卻是擰螺絲?
對(duì)于一個(gè)成熟,用戶數(shù)龐大的app來(lái)說(shuō),就像是一艘航母,你在擰螺絲的時(shí)候,必須要知道這顆螺絲擰下去是為什么,知道如果沒(méi)有找到合適的螺絲,選擇不符合規(guī)格的螺絲強(qiáng)行擰進(jìn)去可能會(huì)造成什么后果。

同樣,一個(gè)龐大的app可能由N多個(gè)模塊組成,而你負(fù)責(zé)的模塊會(huì)不會(huì)對(duì)其他模塊造成什么影響應(yīng)該要知道。在這種大前提之下,就自然而然要了解在這個(gè)app中涉及的架構(gòu)思想,設(shè)計(jì)思路以及存在的設(shè)計(jì)模式。了解了這些,寫出來(lái)的代碼才能達(dá)到了然于心,而不是上線之時(shí)轉(zhuǎn)發(fā)錦鯉祈求bug大魔王不出現(xiàn)。
而大廠的開發(fā)者都會(huì)付出一定的學(xué)習(xí)成本去學(xué)習(xí)新的架構(gòu)和設(shè)計(jì)思路,如果你現(xiàn)在正處在中小型公司,開發(fā)的項(xiàng)目也是中小型項(xiàng)目,沒(méi)有時(shí)間好好學(xué)習(xí)RxJava,這堂直播課一定不能錯(cuò)過(guò)!

