關(guān)于為什么學(xué)習(xí)React Native三點(diǎn)原因

React Native不到兩歲,兼容Android平臺(tái)剛剛1年。我學(xué)習(xí)React Native其實(shí)也就不到1年茫船,不算長(zhǎng),也不算短扭屁。

Paul Graham在文章中寫(xiě)過(guò):大多數(shù)人真正注意到你的時(shí)候算谈,不是第一眼看到你站在那里,而是發(fā)現(xiàn)了過(guò)了這么久你居然還在那里料滥。

我就是Paul提到的"大多數(shù)人"然眼,當(dāng)React Native剛出來(lái)的時(shí)候,我就通過(guò)CSDN等一些平臺(tái)了解了React Native葵腹,但是并沒(méi)有真正的關(guān)注它高每。

過(guò)了半年多屿岂,發(fā)現(xiàn)React Native不但還依然存在,而且還產(chǎn)生了不錯(cuò)的React Native社區(qū)鲸匿。從此開(kāi)始逐漸關(guān)注React Native爷怀。

至于為什么深入學(xué)習(xí)React Native,有以下幾點(diǎn)原因带欢。

一运授、開(kāi)發(fā)React Native很少使用設(shè)計(jì)模式

對(duì),你沒(méi)有看錯(cuò)洪囤,確實(shí)是很少使用設(shè)計(jì)模式徒坡。有人會(huì)問(wèn)我,這也算學(xué)習(xí)的理由瘤缩?
我先擱置一下喇完,先給大家講個(gè)絕大多數(shù)人都聽(tīng)過(guò)的故事。

金庸小說(shuō)中獨(dú)孤求敗的劍冢中剥啤,埋的是獨(dú)孤求敗一生幾個(gè)階段中用過(guò)的幾柄劍锦溪。


第一柄是一柄青光閃閃的無(wú)名利劍。凌厲剛猛府怯,無(wú)堅(jiān)不摧刻诊,弱冠前以之與河朔群雄爭(zhēng)鋒。
第二柄是紫薇軟劍牺丙,三十歲前所用则涯,誤傷義士不祥,乃棄之深谷冲簿。
第三柄是玄鐵重劍粟判,重劍無(wú)鋒,大巧不工峦剔,四十歲之前恃之橫行天下档礁。
第四柄是柄已腐朽的木劍,原因是獨(dú)孤求敗「四十歲后吝沫,不滯于物呻澜,草木竹石均可為劍」

獨(dú)孤求敗一生境界階段分為利劍級(jí)、軟劍級(jí)惨险、重劍級(jí)羹幸、木劍級(jí),對(duì)應(yīng)用不同的武器辫愉。

而程序員編程階段同樣分為幾個(gè)階段栅受。

  1. 利劍級(jí),利劍招式一般直接。剛?cè)肼殘?chǎng)的程序員窘疮,技術(shù)有限,一般都是以實(shí)現(xiàn)功能為主要任務(wù)冀墨,不考慮性能闸衫,模式。
  2. 軟劍級(jí)诽嘉,就是在招式已經(jīng)發(fā)揮到極致的基礎(chǔ)上追求變化的極致蔚出;當(dāng)程序員迭代過(guò)幾次項(xiàng)目,就會(huì)認(rèn)識(shí)到程序存在的問(wèn)題虫腋,代碼也會(huì)更加規(guī)范骄酗。
  3. 重劍級(jí),相比于軟劍是一種質(zhì)的飛躍悦冀;當(dāng)程序員工作多年后趋翻,做過(guò)好多項(xiàng)目,慢慢就會(huì)了解各種模式盒蟆,融會(huì)貫通踏烙,達(dá)到架構(gòu)師的高度。
  4. 木劍級(jí)历等,基本上達(dá)到人劍合一的境界; 這也是我主要要講的境界讨惩,能夠回到程序的本質(zhì)。

回到程序的本質(zhì)寒屯,程序的形式應(yīng)該僅僅反應(yīng)它所要解決的問(wèn)題荐捻。

當(dāng)我們開(kāi)發(fā)程序一段時(shí)間后,就會(huì)發(fā)現(xiàn)編程已經(jīng)變得制度化了寡夹,尤其是使用面向?qū)ο蟮恼Z(yǔ)言处面,我們大量聽(tīng)到 模式(pattern)這個(gè)詞,但是我們應(yīng)該想到模式并不應(yīng)該存在的要出。
程序就是為了要解決問(wèn)題鸳君,而在代碼中其它任何外加的形式都是在告訴我們,表明對(duì)問(wèn)題的抽象不夠深患蹂,這些原本應(yīng)該讓編程語(yǔ)言本身去實(shí)現(xiàn)或颊。

當(dāng)我使用原生代碼開(kāi)發(fā)Android程序的時(shí)候,用到了大量設(shè)計(jì)模式——工廠設(shè)計(jì)模式传于,適配器設(shè)計(jì)模式囱挑,單例設(shè)計(jì)模式等等一大堆。一開(kāi)始的時(shí)候自我感覺(jué)良好沼溜,認(rèn)為自己很牛逼平挑,面試別人或者自己去面試時(shí)都會(huì)顯擺下。后來(lái)我就想,Android框架為什么不提供更深的抽象通熄,讓我直接實(shí)現(xiàn)具體的功能唆涝,而不用使用各種模式搭建各種框架呢?

當(dāng)我接觸React Native時(shí)唇辨,雖然React Native也需要用到一些模式(現(xiàn)階段很難避免的)廊酣,但是React Native整體設(shè)計(jì)架構(gòu)要比Android強(qiáng)很多,非常直接赏枚。

舉個(gè)例子亡驰,在React Native開(kāi)發(fā)中,我們要改的數(shù)據(jù)統(tǒng)一放在狀態(tài)機(jī)中饿幅,只要改動(dòng)狀態(tài)機(jī)里的數(shù)據(jù)凡辱,界面上不管有多少處,只要和改動(dòng)的數(shù)據(jù)相關(guān)聯(lián)都會(huì)發(fā)生改變栗恩。而在Android原生開(kāi)發(fā)中透乾,可能需要把多處要改變的封裝到一起,進(jìn)行操作磕秤,無(wú)疑多了一步封裝续徽。

代碼更加直接,就意味著程序更加好維護(hù)亲澡。程序更好維護(hù)钦扭,就意味著成本更低。

二床绪、學(xué)習(xí)成本比較高

第二點(diǎn)讓我學(xué)習(xí)的理由就是React Native學(xué)習(xí)成本相對(duì)比較高客情,也許之前的理由你接受了,這個(gè)可能又會(huì)讓你抓狂癞己,為什么學(xué)習(xí)成本高還要去學(xué)習(xí)鞍蛘?

往往學(xué)習(xí)成本高的才更加值得去學(xué)習(xí)痹雅!

React Native學(xué)習(xí)成本確實(shí)很高,
你首先肯定需要學(xué)習(xí)JSX語(yǔ)法仰担,React知識(shí),學(xué)習(xí)ES6绩社,函數(shù)式編程思想摔蓝。如果你想了解React Native構(gòu)建的還需要學(xué)習(xí)nodejs。封裝原生組件還需要學(xué)習(xí) java愉耙,object-c贮尉,swift, 也就是需要學(xué)習(xí)Android和ios原生開(kāi)發(fā)朴沿。設(shè)計(jì)到通訊原理還需要了解C++猜谚。

有些程序員可能會(huì)因?yàn)橄腱乓约阂?jiàn)多識(shí)廣败砂,會(huì)告訴你“所有編程語(yǔ)言基本相似”,“語(yǔ)言不重要魏铅,重要的是理解”昌犹;其實(shí)上面說(shuō)的是一派胡言,每種語(yǔ)言從語(yǔ)法到概念览芳,都不一樣祭隔。你學(xué)會(huì)其中一門(mén)語(yǔ)言對(duì)你學(xué)另一門(mén)語(yǔ)言的好處就是你可以進(jìn)行對(duì)比,加深學(xué)習(xí)的印象路操。

雖然學(xué)習(xí)成本很高,但是通過(guò)學(xué)習(xí)React Native而掌握這么多技術(shù)并不是什么壞事千贯。React Native其實(shí)就把各種知識(shí)打成一個(gè)壓縮包屯仗,讓我們更有效率的學(xué)習(xí)。

React Native技術(shù)搔谴,同時(shí)具備可測(cè)量性和可放大性魁袜。

React Native既可以開(kāi)發(fā)Android也可以開(kāi)發(fā)IOS,尤其是寫(xiě)界面的速度非常快敦第。通過(guò)測(cè)量完成的程序峰弹,理論上你可以是一名普通的Android/IOS程序員的兩倍。

微軟也開(kāi)發(fā)了Windows Phone的React Native版本芜果。通過(guò)React知識(shí)鞠呈,你可以輕松寫(xiě)出Web端程序。甚至在微信小程序中都能找到React Native的影子右钾。

我們這個(gè)世界蚁吝,你向下沉淪或者向上奮進(jìn)都取決于你自己,不能把原因推給外界舀射。有些剛畢業(yè)的學(xué)生一聽(tīng)到5%的人占社會(huì)50%的財(cái)富窘茁,往往認(rèn)為是不公平的。從程序員的角度脆烟,我也認(rèn)為是不公平的山林,因?yàn)?%的程序員寫(xiě)出了全世界99%的優(yōu)秀軟件,他們就應(yīng)該占更高比例的收入邢羔。

一個(gè)React Native程序員就應(yīng)該是一個(gè)普通的Android/iOS程序員工資的兩倍驼抹,并沒(méi)有什么問(wèn)題。

三拜鹤、React Native還不是很完善

React Native還有很多坑砂蔽,并不完善,React Native幾乎每個(gè)月都有新的小版本發(fā)布署惯,至今還沒(méi)有推出1.0正式版本左驾。這也恰恰使我們學(xué)習(xí)React Native的理由!

前幾年,我在北京上班時(shí)經(jīng)常聽(tīng)到j(luò)avaEE程序員抱怨自己開(kāi)發(fā)了這么多年不如一個(gè)新入職的Android/iOS程序員工資高诡右。
其實(shí)很好理解啊安岂,難道不知道技術(shù)越新越值錢(qián)這個(gè)道理嗎?

程序員就像蚊子一樣帆吻,群體很多域那,在后廠村路上10個(gè)估計(jì)有7個(gè)是程序員,但是每個(gè)程序員個(gè)體壓力又很大猜煮,想生存必須吸取新鮮的血液次员。

目前使用React Native的公司不是很多,當(dāng)你作為一個(gè)產(chǎn)品經(jīng)理或CTO時(shí)王带,你肯定優(yōu)先跟隨大多數(shù)人的選擇的做法淑蔚,有個(gè)專業(yè)術(shù)語(yǔ)叫做“業(yè)界最佳實(shí)踐”。因?yàn)檫@個(gè)詞出現(xiàn)的原因就是為了產(chǎn)品經(jīng)理/CTO 推卸責(zé)任愕撰。既然我選擇的是“業(yè)界最佳實(shí)踐”刹衫,如果不成功,不是我的問(wèn)題搞挣,而是“業(yè)界”的問(wèn)題带迟。

但是如果你是一名程序員按照上面的做法你會(huì)死的很慘,因?yàn)椤皹I(yè)界最佳實(shí)踐”會(huì)逐漸變化的囱桨,一旦你掌握的技能不是“業(yè)界最佳實(shí)踐”了仓犬,你就要想辦法讓你的房貸別斷供了。

React Native不會(huì)取代Android/iOS原生開(kāi)發(fā)舍肠,但隨著React Native正式版推出婶肩,也許它就變成了“業(yè)界最佳實(shí)踐”了。

關(guān)于如何學(xué)習(xí)React Native

如果想快速入門(mén)React Native貌夕,官方Api是肯定需要看的律歼。里面不但有文檔而且有例子,涵蓋了絕大多數(shù)知識(shí)啡专。
http://facebook.github.io/react-native/docs/getting-started.html
英文不好的話,可以參考react-native中文文檔(建議也要對(duì)比英文文檔)
http://react-native.cn/docs/getting-started.html

FaceBook官方也提供了演示App,可以作為參考
https://github.com/facebook/react-native/tree/master/Examples
facebook開(kāi)源的f8項(xiàng)目也是蠻不錯(cuò)的
https://github.com/fbsamples/f8app

總結(jié)

沒(méi)有人有任何義務(wù)去看任何一篇文章险毁,當(dāng)您點(diǎn)擊我的文章時(shí)就已經(jīng)很看得起我了,我非常感謝您们童,也許我的觀點(diǎn)并不是對(duì)的畔况,但是我相信時(shí)刻保持一顆學(xué)習(xí)的心永遠(yuǎn)是對(duì)的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末慧库,一起剝皮案震驚了整個(gè)濱河市跷跪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌齐板,老刑警劉巖吵瞻,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件葛菇,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡橡羞,警方通過(guò)查閱死者的電腦和手機(jī)眯停,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)卿泽,“玉大人莺债,你說(shuō)我怎么就攤上這事∏┴玻” “怎么了齐邦?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)第租。 經(jīng)常有香客問(wèn)我措拇,道長(zhǎng),這世上最難降的妖魔是什么煌妈? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮宣羊,結(jié)果婚禮上璧诵,老公的妹妹穿的比我還像新娘。我一直安慰自己仇冯,他們只是感情好之宿,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著苛坚,像睡著了一般比被。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上泼舱,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天等缀,我揣著相機(jī)與錄音,去河邊找鬼娇昙。 笑死尺迂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的冒掌。 我是一名探鬼主播噪裕,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼股毫!你這毒婦竟也來(lái)了膳音?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤铃诬,失蹤者是張志新(化名)和其女友劉穎祭陷,沒(méi)想到半個(gè)月后苍凛,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡颗胡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年毫深,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片毒姨。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡哑蔫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出弧呐,到底是詐尸還是另有隱情闸迷,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布俘枫,位于F島的核電站腥沽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鸠蚪。R本人自食惡果不足惜今阳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望茅信。 院中可真熱鬧盾舌,春花似錦、人聲如沸蘸鲸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)酌摇。三九已至膝舅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窑多,已是汗流浹背仍稀。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留埂息,地道東北人琳轿。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像耿芹,于是被迫代替她去往敵國(guó)和親崭篡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容