關于為什么學習React Native三點原因

React Native不到兩歲,兼容Android平臺剛剛1年。我學習React Native其實也就不到1年,不算長,也不算短。

Paul Graham在文章中寫過:大多數人真正注意到你的時候,不是第一眼看到你站在那里,而是發現了過了這么久你居然還在那里。

我就是Paul提到的"大多數人",當React Native剛出來的時候,我就通過CSDN等一些平臺了解了React Native,但是并沒有真正的關注它。

過了半年多,發現React Native不但還依然存在,而且還產生了不錯的React Native社區。從此開始逐漸關注React Native。

至于為什么深入學習React Native,有以下幾點原因。

一、開發React Native很少使用設計模式

對,你沒有看錯,確實是很少使用設計模式。有人會問我,這也算學習的理由?
我先擱置一下,先給大家講個絕大多數人都聽過的故事。

金庸小說中獨孤求敗的劍冢中,埋的是獨孤求敗一生幾個階段中用過的幾柄劍。


第一柄是一柄青光閃閃的無名利劍。凌厲剛猛,無堅不摧,弱冠前以之與河朔群雄爭鋒。
第二柄是紫薇軟劍,三十歲前所用,誤傷義士不祥,乃棄之深谷。
第三柄是玄鐵重劍,重劍無鋒,大巧不工,四十歲之前恃之橫行天下。
第四柄是柄已腐朽的木劍,原因是獨孤求敗「四十歲后,不滯于物,草木竹石均可為劍」

獨孤求敗一生境界階段分為利劍級、軟劍級、重劍級、木劍級,對應用不同的武器。

而程序員編程階段同樣分為幾個階段。

  1. 利劍級,利劍招式一般直接。剛入職場的程序員,技術有限,一般都是以實現功能為主要任務,不考慮性能,模式。
  2. 軟劍級,就是在招式已經發揮到極致的基礎上追求變化的極致;當程序員迭代過幾次項目,就會認識到程序存在的問題,代碼也會更加規范。
  3. 重劍級,相比于軟劍是一種質的飛躍;當程序員工作多年后,做過好多項目,慢慢就會了解各種模式,融會貫通,達到架構師的高度。
  4. 木劍級,基本上達到人劍合一的境界; 這也是我主要要講的境界,能夠回到程序的本質。

回到程序的本質,程序的形式應該僅僅反應它所要解決的問題。

當我們開發程序一段時間后,就會發現編程已經變得制度化了,尤其是使用面向對象的語言,我們大量聽到 模式(pattern)這個詞,但是我們應該想到模式并不應該存在的。
程序就是為了要解決問題,而在代碼中其它任何外加的形式都是在告訴我們,表明對問題的抽象不夠深,這些原本應該讓編程語言本身去實現。

當我使用原生代碼開發Android程序的時候,用到了大量設計模式——工廠設計模式,適配器設計模式,單例設計模式等等一大堆。一開始的時候自我感覺良好,認為自己很牛逼,面試別人或者自己去面試時都會顯擺下。后來我就想,Android框架為什么不提供更深的抽象,讓我直接實現具體的功能,而不用使用各種模式搭建各種框架呢?

當我接觸React Native時,雖然React Native也需要用到一些模式(現階段很難避免的),但是React Native整體設計架構要比Android強很多,非常直接。

舉個例子,在React Native開發中,我們要改的數據統一放在狀態機中,只要改動狀態機里的數據,界面上不管有多少處,只要和改動的數據相關聯都會發生改變。而在Android原生開發中,可能需要把多處要改變的封裝到一起,進行操作,無疑多了一步封裝。

代碼更加直接,就意味著程序更加好維護。程序更好維護,就意味著成本更低。

二、學習成本比較高

第二點讓我學習的理由就是React Native學習成本相對比較高,也許之前的理由你接受了,這個可能又會讓你抓狂,為什么學習成本高還要去學習啊?

往往學習成本高的才更加值得去學習!

React Native學習成本確實很高,
你首先肯定需要學習JSX語法,React知識,學習ES6,函數式編程思想。如果你想了解React Native構建的還需要學習nodejs。封裝原生組件還需要學習 java,object-c,swift, 也就是需要學習Android和ios原生開發。設計到通訊原理還需要了解C++。

有些程序員可能會因為想炫耀自己見多識廣,會告訴你“所有編程語言基本相似”,“語言不重要,重要的是理解”;其實上面說的是一派胡言,每種語言從語法到概念,都不一樣。你學會其中一門語言對你學另一門語言的好處就是你可以進行對比,加深學習的印象。

雖然學習成本很高,但是通過學習React Native而掌握這么多技術并不是什么壞事。React Native其實就把各種知識打成一個壓縮包,讓我們更有效率的學習。

React Native技術,同時具備可測量性和可放大性。

React Native既可以開發Android也可以開發IOS,尤其是寫界面的速度非常快。通過測量完成的程序,理論上你可以是一名普通的Android/IOS程序員的兩倍。

微軟也開發了Windows Phone的React Native版本。通過React知識,你可以輕松寫出Web端程序。甚至在微信小程序中都能找到React Native的影子。

我們這個世界,你向下沉淪或者向上奮進都取決于你自己,不能把原因推給外界。有些剛畢業的學生一聽到5%的人占社會50%的財富,往往認為是不公平的。從程序員的角度,我也認為是不公平的,因為5%的程序員寫出了全世界99%的優秀軟件,他們就應該占更高比例的收入。

一個React Native程序員就應該是一個普通的Android/iOS程序員工資的兩倍,并沒有什么問題。

三、React Native還不是很完善

React Native還有很多坑,并不完善,React Native幾乎每個月都有新的小版本發布,至今還沒有推出1.0正式版本。這也恰恰使我們學習React Native的理由!

前幾年,我在北京上班時經常聽到javaEE程序員抱怨自己開發了這么多年不如一個新入職的Android/iOS程序員工資高。
其實很好理解啊,難道不知道技術越新越值錢這個道理嗎?

程序員就像蚊子一樣,群體很多,在后廠村路上10個估計有7個是程序員,但是每個程序員個體壓力又很大,想生存必須吸取新鮮的血液。

目前使用React Native的公司不是很多,當你作為一個產品經理或CTO時,你肯定優先跟隨大多數人的選擇的做法,有個專業術語叫做“業界最佳實踐”。因為這個詞出現的原因就是為了產品經理/CTO 推卸責任。既然我選擇的是“業界最佳實踐”,如果不成功,不是我的問題,而是“業界”的問題。

但是如果你是一名程序員按照上面的做法你會死的很慘,因為“業界最佳實踐”會逐漸變化的,一旦你掌握的技能不是“業界最佳實踐”了,你就要想辦法讓你的房貸別斷供了。

React Native不會取代Android/iOS原生開發,但隨著React Native正式版推出,也許它就變成了“業界最佳實踐”了。

關于如何學習React Native

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

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

總結

沒有人有任何義務去看任何一篇文章,當您點擊我的文章時就已經很看得起我了,我非常感謝您,也許我的觀點并不是對的,但是我相信時刻保持一顆學習的心永遠是對的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容