寫給前端應(yīng)屆生的職業(yè)規(guī)劃建議(轉(zhuǎn)載)

前端的興起
前端真正興起和開始頻繁出現(xiàn)在大家的視線里,大概是在十年前伐脖。彼時(shí)的 Web 開發(fā)基本是由后端主導(dǎo)热幔,前端能做的只是校驗(yàn)一下數(shù)據(jù)、操作一下 DOM讼庇。(其中數(shù)據(jù)檢驗(yàn)是 JS 產(chǎn)生的根本原因:當(dāng)時(shí)網(wǎng)絡(luò)太慢绎巨,在服務(wù)端檢驗(yàn)數(shù)據(jù)并反饋給用戶,讓用戶知曉輸入錯(cuò)誤蠕啄,這個(gè)流程太長场勤、反應(yīng)太慢,因此通過腳本在用戶端完成第一步校驗(yàn)歼跟,既方便了用戶和媳,又減輕了帶寬的壓力。)即使 06 年 jQuery 發(fā)布并風(fēng)靡全球哈街,以及 XMLHttpRequest 被納入 W3C 標(biāo)準(zhǔn)留瞳,也沒有改變這種狀況。制約它進(jìn)度的原因很簡單骚秦,因?yàn)楹芏嗍虑榍岸?做不了 或者 做不好她倘。隨著時(shí)間的推移,近幾年作箍,Angular硬梁、Backbone、React胞得、Vue 等框架陸續(xù)發(fā)布荧止,讓前端越來越正規(guī)化、體系化。此時(shí)雖然仍有很多事罩息,前端 做不了 或者 做不好嗤详,但前端這個(gè)崗位卻已變得熱辣空前。那么瓷炮,是什么推動(dòng)著前端發(fā)展到如此大的規(guī)模和火熱的程度葱色?


也許,你可以列舉出很多各種各樣的原因娘香,但是綜其一點(diǎn)苍狰,就是 『用戶體驗(yàn)』 ,是由于所有人對用戶體驗(yàn)的重視烘绽,才讓前端發(fā)展得這么迅猛淋昭,這么快地興起。這里安接,可能要感謝 Apple翔忽,感謝 iPhone,感謝 Jobs盏檐,07 年第一代 iPhone 發(fā)布歇式,正式引發(fā)了幾乎所有人對用戶體驗(yàn)的重視,從『只要能用就好』胡野,變成『要好用我才買單』的心理材失。而,前端的先驅(qū)者們硫豆、瀏覽器的開發(fā)者們龙巨,也順應(yīng)了這個(gè)潮流,將一系列重要的能力加入了瀏覽器熊响,加入了前端旨别。
其中最重要的一項(xiàng)是 XMLHttpRequest,也就是 Ajax汗茄,它是富 Web 應(yīng)用的基礎(chǔ)昼榛,它讓前端可以脫離后端的掌控,不用通過跳轉(zhuǎn)的方式就能實(shí)現(xiàn)數(shù)據(jù)交互剔难。感謝微軟胆屿,感謝 IE,雖然被 IE 6~8 虐了無數(shù)遍偶宫,但是是它引入了 XMLHttpRequest 非迹,引入了 Ajax,開啟了富 Web 應(yīng)用的時(shí)代纯趋,讓用戶體驗(yàn)大幅提升憎兽。
而近幾年冷离,隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,多端多平臺的需求越來越多纯命,產(chǎn)品形態(tài)和數(shù)據(jù)分離西剥,是形勢所趨。而與此同時(shí)亿汞,移動(dòng)時(shí)代對產(chǎn)品形態(tài)跨端瞭空、跨平臺、多元化的用戶體驗(yàn)要求疗我,讓本身就有跨平臺特性的前端技術(shù)著實(shí)又火了一把咆畏,它讓開發(fā)者有更多的時(shí)間和精力關(guān)注用戶體驗(yàn),并很容易保持多平臺用戶體驗(yàn)的統(tǒng)一(不同平臺用不同技術(shù)實(shí)現(xiàn)吴裤,雖然可以旧找,但成本太高);除去上面的原因之外麦牺,前端技術(shù)自帶的熱發(fā)布钮蛛、熱更新特性,能在及時(shí)更新業(yè)務(wù)需求的同時(shí)快速修復(fù)用戶所遇到的問題剖膳,也是大家選擇它的一種原因魏颓。雖然另外還有很多零零總總、各種各樣的原因潮秘,再促使著前端成為當(dāng)前最火爆的幾個(gè)職位之一琼开,但是最根本的原因仍舊是大家對用戶體驗(yàn)的要求易结。
從上面可以看出枕荞,前端的興起源于所有人對 用戶體驗(yàn) 的重視,而火爆更是由于所有人對 多元化的用戶體驗(yàn) 的關(guān)注搞动。當(dāng)然躏精,用戶體驗(yàn)不只只是 UI 漂亮、好看鹦肿,它是多方面的矗烛,例如視圖的加載速度和流暢程度,這些取決于你選擇技術(shù)的編碼體積箩溃、運(yùn)行效率等多種因素瞭吃。說白了,前端的目的就是 讓用戶用得爽涣旨,那么 用戶體驗(yàn) 必須是重中之重歪架。

說了這么多,其實(shí)有一個(gè)很重要的點(diǎn)沒有提到霹陡,那就是 CSS和蚪。注重用戶體驗(yàn)止状,首先你要用界面要有 UI,HTML + CSS 作為最簡單的 UI 構(gòu)建方式攒霹,讓前端的 UI 開發(fā)成本低到無與倫比怯疤,而開發(fā)成本低才會(huì)有更多的時(shí)間和精力去注重用戶體驗(yàn)。同時(shí)催束,現(xiàn)在 CSS 也有相應(yīng)的框架集峦,像 PostCss、Sass 等泣崩,更進(jìn)一步降低了開發(fā)成本少梁,釋放了開發(fā)者的時(shí)間和精力。
前端興起這十年矫付,也是用戶體驗(yàn)飛速增長的十年凯沪。不管是技術(shù)完善度還是從業(yè)人數(shù),前端這個(gè)方向受到了足夠多技術(shù)人員的關(guān)注买优,同時(shí)也受到了足夠多企業(yè)的重視妨马。經(jīng)過前端人不斷的努力,現(xiàn)在的情況又如何呢杀赢?
前端的現(xiàn)狀
提到現(xiàn)狀烘跺,必須先提到一個(gè)概念 大前端。由于近幾年互聯(lián)網(wǎng)的發(fā)展脂崔,尤其是移動(dòng)互聯(lián)網(wǎng)的發(fā)展滤淳,有的大前端概念將 Native 歸入前端的范疇,有的大前端概念將 Node 甚至只渲染頁面的 PHP 歸入前端范疇砌左,但不管怎么說脖咐,筆者認(rèn)為 大前端 是未來的一個(gè)趨勢,將最終目標(biāo)(提升用戶體驗(yàn))一致的技術(shù)歸類到一起汇歹,讓開發(fā)者清楚自己的最終目標(biāo)是什么屁擅,要怎么做。當(dāng)然产弹,也正因?yàn)檫@點(diǎn)派歌,作為一個(gè)前端工程師,如果你想更好的發(fā)展痰哨,你應(yīng)該有更廣的知識面胶果,包括移動(dòng)端知識、服務(wù)端知識斤斧。這些知識結(jié)合你的前端技術(shù)早抠,才能更好地實(shí)現(xiàn)優(yōu)秀的用戶體驗(yàn)。
拋開大前端折欠,單談前端贝或,從前端架構(gòu)層面談吼过,最近比較流行的有四個(gè):老牌勁旅 jQuery、最近火得不能再火的 React咪奖、Google 精品 Angular 以及 MVVM 框架 Vue〉脸溃現(xiàn)在幾乎所有的項(xiàng)目都會(huì)在這四種架構(gòu)方案中選擇其一作為基礎(chǔ),進(jìn)行業(yè)務(wù)開發(fā)羊赵。四種框架趟佃,四種不同的思想,簡單來說:jQuery Dom 驅(qū)動(dòng)的思想深入人心昧捷;React 則推崇組件化闲昭,萬物皆組件;Angular 則把 MVC 在前端領(lǐng)域發(fā)揚(yáng)光大靡挥;而 Vue 則是以數(shù)據(jù)驅(qū)動(dòng)為核心的 MVVM 架構(gòu)序矩。作為一個(gè)前端新人,不可能很快就理解所有知識和思想跋破,只能一步一步來簸淀,先把你在工作中所使用的框架理解透徹,再去思考和學(xué)習(xí)別的毒返。說實(shí)話租幕,會(huì)用和理解的差距很大。
在這里拧簸,可能會(huì)有個(gè)疑問劲绪,上述四個(gè)架構(gòu),都很火盆赤,但是哪里涉及到用戶體驗(yàn)了贾富?是的,這些架構(gòu)都沒有直接涉及到 UI弟劲。但是就像足球祷安,沒有勤奮的訓(xùn)練和優(yōu)秀的戰(zhàn)術(shù)姥芥,再好的11人也踢不出好的比賽一樣兔乞,這些架構(gòu)從開發(fā)成本和開發(fā)體驗(yàn)上,降低了開發(fā)者編碼和維護(hù)的難度凉唐,讓其在 UI 的用戶體驗(yàn)上的付出庸追,事半功倍。當(dāng)然台囱,框架在編碼體積淡溯、運(yùn)行效率等多個(gè)方面影響了最終的用戶體驗(yàn)。

上面所說的是簿训,當(dāng)前前端的一大現(xiàn)狀 —— 框架橫行咱娶,現(xiàn)在很少有公司米间、有工程師用純原始的方式擼代碼了。而前端另一大現(xiàn)狀就是 —— 移動(dòng)為先膘侮。原因很簡單屈糊,隨著移動(dòng)互聯(lián)網(wǎng)用戶的暴漲,各個(gè)公司的產(chǎn)品都是移動(dòng)為先琼了,技術(shù)跟隨著產(chǎn)品的步伐逻锐,也必須移動(dòng)為先。這時(shí)雕薪,為了解決多平臺的問題昧诱,Hybrid 方案脫穎而出,包括傳統(tǒng)的基于 WebView 的 Hybrid 方案(例如 Cordova)和 React-Native 等一系列技術(shù)方案所袁。在這里我就不多說了盏档,關(guān)于移動(dòng)前端的內(nèi)容最近充斥著各種技術(shù)論壇、交流群燥爷、公共號妆丘,具體的,大家可以自己親身去了解局劲。
最后勺拣,對于現(xiàn)狀,我想大家可能最關(guān)心的其實(shí)是職業(yè)形勢鱼填。由于前端的興起药有,前端人才市場相當(dāng)活躍,平均薪金水平也是名列前茅苹丸。與此同時(shí)愤惰,前端的技術(shù)入門比較容易,造成另一個(gè)極端情況:人員泛濫赘理、人才稀缺宦言。這種情況,一方面由于前端發(fā)展太快商模,很難短時(shí)間掌握全部知識奠旺;另一方面,高等院校并沒有開設(shè)專門的前端專業(yè)施流,大家更多是自學(xué)响疚,野路子很多。所謂亂世出英雄瞪醋,這樣的前端大環(huán)境或許對一個(gè)新入行的同學(xué)更有利忿晕。當(dāng)然,在如此『亂世』中银受,一個(gè)好的職業(yè)規(guī)劃践盼,才能避免『誤入歧途』鸦采,保證自身順利地成長。
如何做一個(gè)職業(yè)規(guī)劃
上面講述了前端如何興起和前端的現(xiàn)狀咕幻,下面將基于上述兩點(diǎn)赖淤,分幾個(gè)方面為大家提供一些有關(guān)職業(yè)規(guī)劃的觀點(diǎn),希望對大家有幫助谅河。
確定方向
做職業(yè)規(guī)劃的目的是避免迷茫咱旱,而避免迷茫最有效的方式就是確定明確的方向和目標(biāo)。

對于任何一個(gè)技術(shù)崗位绷耍,都有固定的兩個(gè)方向:技術(shù)專家(架構(gòu)師)和 開發(fā)經(jīng)理吐限。前者偏重技術(shù),需要你在當(dāng)前領(lǐng)域鉆研得很深褂始;后者偏向管理诸典,需要你在對技術(shù)有很深掌握的同時(shí),可以帶領(lǐng)團(tuán)隊(duì)完成項(xiàng)目的開發(fā)崎苗。當(dāng)然狐粱,兩者并不是魚與熊掌的關(guān)系,你可以同時(shí)成為技術(shù)專家和開發(fā)經(jīng)理胆数。
對于技術(shù)專家和開發(fā)經(jīng)理兩個(gè)方向的選擇肌蜻,更多取決于你自身在工作中多巴胺的分泌情況。當(dāng)你專研技術(shù)時(shí)必尼,多巴胺分泌得更多蒋搜,感到更興奮,或許你會(huì)很容易成為技術(shù)專家判莉;反之豆挽,當(dāng)你跟團(tuán)隊(duì)一起做業(yè)務(wù)時(shí),多巴胺分泌得更多券盅,更有獲得感帮哈,那么你可以嘗試向開發(fā)經(jīng)理方向發(fā)展。當(dāng)然锰镀,你也可能做什么都沒有分泌太多的多巴胺娘侍,那么,你可以在嘗試一段時(shí)間后互站,轉(zhuǎn)型其他職業(yè)私蕾,例如產(chǎn)品經(jīng)理僵缺。前端作為核心是用戶體驗(yàn)胡桃,與用戶最近的工程師,轉(zhuǎn)型產(chǎn)品經(jīng)理磕潮,阻礙會(huì)小一些翠胰。況且容贝,文藝型前端布道人豆瓣前端負(fù)責(zé)人張克軍認(rèn)為,前端工程師正慢慢演變?yōu)楫a(chǎn)品工程師之景,前端和產(chǎn)品離得確實(shí)很近斤富。
當(dāng)你選擇好一個(gè)方向后,你就要朝著這個(gè)方向一步一步進(jìn)發(fā)锻狗。丹尼爾在《一萬小時(shí)天才理論》提出一萬小時(shí)定律满力,即要成為某個(gè)領(lǐng)域的專家,需要積累一萬小時(shí)轻纪。當(dāng)然這只是個(gè)概數(shù)油额,不過每天花更多的時(shí)間去學(xué)習(xí)和實(shí)踐,肯定是最有效的刻帚。這里潦嘶,成為技術(shù)專家和開發(fā)經(jīng)理過程中,關(guān)注的點(diǎn)略有差別崇众。成長為技術(shù)專家掂僵,要更多關(guān)注技術(shù)本身的實(shí)現(xiàn),包括邏輯顷歌、架構(gòu)锰蓬、設(shè)計(jì)模式、方法論等眯漩;而成長為技術(shù)經(jīng)理互妓,則要更多關(guān)注技術(shù)開發(fā)的過程,考慮如何提高開發(fā)效率坤塞、降低開發(fā)成本冯勉、優(yōu)化開發(fā)質(zhì)量等等。不同的人摹芙,精力是有限的灼狰,選擇性關(guān)注一些必要的方面,對自身快速的成長是很有必要的浮禾。
做業(yè)務(wù)還是做架構(gòu)
做業(yè)務(wù)交胚,時(shí)間要求比較緊,代碼質(zhì)量要求高盈电,可參考的代碼比較多蝴簇,業(yè)務(wù)知識需要學(xué)習(xí)。做架構(gòu)匆帚,時(shí)間稍微自由熬词,對經(jīng)驗(yàn)要求比較高,無可參考代碼,專業(yè)基礎(chǔ)知識需要深刻理解互拾;最主要的歪今,做架構(gòu)的你既是開發(fā),又是用戶颜矿,還是 PM 寄猩,只有 80% – 90% 的明確目標(biāo),并在開發(fā)過程中不斷微調(diào)最終的目標(biāo)骑疆。
對于一個(gè)新人田篇,其實(shí)不用糾結(jié),做業(yè)務(wù)才是好的選擇箍铭,而且做 技術(shù)含量高陌选、使用流行技術(shù) 的業(yè)務(wù)才是最好的毫深。原因很簡單找田,架構(gòu)的最終的目的是解決業(yè)務(wù)當(dāng)中的問題灵妨,你沒做過業(yè)務(wù),哪能知道業(yè)務(wù)的問題在哪柄瑰,你都不知道要解決什么問題闸氮,如何做好架構(gòu)。所以教沾,從業(yè)務(wù)做起蒲跨,是新人最好的選擇,也是唯一可行的選擇授翻。而選擇有技術(shù)含量或悲、使用流行技術(shù)的業(yè)務(wù)的原因更多在于成長,這樣你的成長可能會(huì)更快堪唐、成長道路可能會(huì)更直巡语。當(dāng)然,這只是『可能』淮菠,不同的人適合不同的業(yè)務(wù)男公,所以不要強(qiáng)求一定『技術(shù)含量高、使用流行技術(shù)』的業(yè)務(wù)合陵,更多的而是改變自己枢赔,去 適應(yīng)團(tuán)隊(duì)適應(yīng)業(yè)務(wù)拥知,這樣才能 更快地成長踏拜。
事實(shí)上,很多時(shí)候低剔,你會(huì)遇到很業(yè)務(wù)工作很繁重沒有額外時(shí)間學(xué)習(xí)的情況速梗。而如何在這樣環(huán)境中更快地成長呢肮塞?說白了就是『抄』,不不镀琉,是 參考峦嗤。將學(xué)習(xí)融入到工作中蕊唐,是最好的方法屋摔。做新項(xiàng)目,參考老項(xiàng)目代碼替梨;做新需求钓试,參考老需求的代碼;沒有同類型的代碼副瀑,參考別的業(yè)務(wù)的代碼弓熏。參考前人的經(jīng)驗(yàn),在巨人的肩膀上糠睡,成長才會(huì)變得更快挽鞠。同時(shí),你的導(dǎo)師和你的伙伴狈孔,也會(huì)在業(yè)務(wù)中給你指點(diǎn)信认,幫你快速解決成長路上的問題。

在這里均抽,總結(jié)一下嫁赏,在繁重的業(yè)務(wù)環(huán)境下快速成長,你需要 很優(yōu)秀的學(xué)習(xí)能力油挥、很持久的耐心 以及 很好的導(dǎo)師和伙伴潦蝇,這樣才能在技術(shù)成長的路上事半功倍。
技術(shù)的學(xué)習(xí)
說了半天深寥,到了最核心的問題了攘乒,對于一個(gè)新人如何學(xué)習(xí)技術(shù)?筆者給的建議是:千萬不要囫圇吞棗惋鹅,先把當(dāng)前使用的技術(shù)學(xué)透用熟持灰,才是最重要的;千萬不要在還沒把當(dāng)前使用的技術(shù)吃透之前负饲,去學(xué)新的東西堤魁,不管新的東西有多火。就像上文所說返十,不同的框架妥泉,有不同的核心,有不同的思想洞坑。兩個(gè)框架代碼相似之處的思想不一定相似盲链,例如 Angular 和 Vue 都有雙向綁定,雖然效果相似,但是實(shí)現(xiàn)思想和內(nèi)部實(shí)現(xiàn)方式是截然不同的刽沾。還在入門階段的你本慕,會(huì)被各種思想充斥頭腦,反而會(huì)更不清楚侧漓。
一定的時(shí)間后锅尘,當(dāng)你理解透一個(gè)架構(gòu)體系后,你可以 類比地去看 更多的架構(gòu)體系布蔗。這時(shí)候藤违,你會(huì)發(fā)現(xiàn)不同架構(gòu)很多東西都是殊途同歸,理解得很快纵揍。

當(dāng)然顿乒,理解透一個(gè)架構(gòu)體系,有人需要一年泽谨,有人需要三年璧榄,還有人可能需要更長時(shí)間。為什么有這么大的區(qū)別呢吧雹?因?yàn)橛行┤嗽陂_發(fā)中骨杂,并不認(rèn)為完成就可以了,會(huì)在開發(fā)中吮炕,追求代碼的優(yōu)美腊脱,會(huì)不斷優(yōu)化自己的代碼,讓自己的代碼性能更好龙亲、可讀性更高陕凹,并通過長時(shí)間的積累,達(dá)到 量變導(dǎo)致質(zhì)變 的程度鳄炉。即使一個(gè)特別聰明的人杜耙,沒有『量』也不可能『質(zhì)變』的,只不過他的量可能比其他人少而已拂盯。
要提醒的一點(diǎn)是佑女,學(xué)技術(shù),一定要結(jié)合你所在公司谈竿、團(tuán)隊(duì)的技術(shù)棧团驱。例如,去哪兒前端應(yīng)屆生會(huì)在進(jìn)入業(yè)務(wù)線前空凸,進(jìn)行3個(gè)月的脫產(chǎn)培訓(xùn)嚎花,2017年的前端培訓(xùn)課程內(nèi)容中涉及的技術(shù)主要是 React 和 React Native,而去哪兒業(yè)務(wù)的技術(shù)棧也大多是 React呀洲,那么作為去哪兒的前端應(yīng)屆生紊选,你優(yōu)先學(xué)習(xí) React 的技術(shù)體系是事半功倍的啼止,既有前人可以問,又有項(xiàng)目可以實(shí)踐兵罢。
當(dāng)然献烦,在學(xué)習(xí)架構(gòu)的同時(shí),不要忽略兩樣最基本的東西卖词,一個(gè)是 技術(shù)基礎(chǔ)巩那,一個(gè)是 開發(fā)規(guī)范
技術(shù)基礎(chǔ)是一切開發(fā)坏平、架構(gòu)的前提拢操,沒有一個(gè)好的基礎(chǔ)锦亦,是無法讓你自身的技術(shù)水平達(dá)到足夠高的維度舶替。例如你對于繼承理解的并不透徹,你很難理解清晰 React 的內(nèi)部實(shí)現(xiàn)杠园。
對于開發(fā)規(guī)范顾瞪,筆者在帶應(yīng)屆生時(shí)特別注意讓他們遵守。代碼規(guī)范比比皆是抛蚁,但是很少有人嚴(yán)格遵守陈醒。究其原因,多是在代碼規(guī)范制定之前瞧甩,已經(jīng)有自己的一套代碼習(xí)慣钉跷,很難短時(shí)間改變自己的習(xí)慣。而應(yīng)屆生肚逸,一般來說代碼并不多爷辙,還沒有形成自己的編碼習(xí)慣。這時(shí)候朦促,開始遵守一定的規(guī)范膝晾,會(huì)促使他們養(yǎng)成一個(gè)較好的編碼習(xí)慣,為后續(xù)的成長打好基礎(chǔ)务冕。下面血当,列舉一下開發(fā)規(guī)范的幾點(diǎn)好處,讓大家明白代碼規(guī)范的重要性:
規(guī)范的代碼可以促進(jìn)團(tuán)隊(duì)合作禀忆。
規(guī)范的代碼可以減少 Bug 處理臊旭。
規(guī)范的代碼可以降低維護(hù)成本。
規(guī)范的代碼有助于代碼審查箩退。
養(yǎng)成代碼規(guī)范的習(xí)慣离熏,有助于程序員自身的成長。


這部分最后乏德,推薦一些學(xué)習(xí)技術(shù)的好地方撤奸,例如情封大大三年不停更的《前端早讀課》吠昭、阿里大漠(不是大漠窮秋)的 w3cplus.com、微信公眾號《前端圈》胧瓜、《前端之巔》矢棚、《Node 全棧》府喳,當(dāng)然還有公司內(nèi)的 《Qunar 技術(shù)沙龍》微信公眾號蒲肋,筆者所在團(tuán)隊(duì) YMFE 的博客 blog.ymfe.org 等,都是學(xué)習(xí)技術(shù)的好地方钝满。
主戰(zhàn)場 —— 移動(dòng)混合開發(fā)
隨著移動(dòng)浪潮的興起兜粘,業(yè)務(wù)在移動(dòng)端App 的需求量迅速擴(kuò)大,應(yīng)用迭代更新的頻率也隨之極速攀升弯蚜,但與此同時(shí)純 Native 的開發(fā)和更新成本成為了業(yè)務(wù)增長難以逾越的瓶頸孔轴。因此,引入一種開發(fā)更高效碎捺、成本更低的解決方案勢在必行路鹰。



在當(dāng)前的移動(dòng)互聯(lián)網(wǎng)環(huán)境下,iOS 和 Android 上的 App 已經(jīng)成了每個(gè)互聯(lián)網(wǎng)產(chǎn)品的標(biāo)配收厨。如果一個(gè)用戶端產(chǎn)品并不提供相應(yīng) App 版本晋柱,幾乎會(huì)直接定義成一個(gè)不完整的產(chǎn)品。而被互聯(lián)網(wǎng)人尊為鐵律的『唯快不破』—— 快速開發(fā)诵叁、高速迭代雁竞、低成本上線,同時(shí)也是移動(dòng)時(shí)代每個(gè)開發(fā)團(tuán)隊(duì)所追求的目標(biāo)拧额。綜合以上兩點(diǎn)原因碑诉,『Native 搭臺,Web 唱戲』的 Hybrid 開發(fā)模式势腮,以『快』的特點(diǎn)贏得了大家的青睞联贩,并紛紛投入大量開發(fā)力量,使這種開發(fā)模式迅速走紅捎拯。當(dāng)前最常見的技術(shù)架構(gòu)方案有以下三種:
基于 Web 的 Hybrid 解決方案:例如微信瀏覽器泪幌、各公司的 Hybrid 方案
非基于 Web UI 但業(yè)務(wù)邏輯基于 JavaScript 的解決方案:例如 React-Native
基于 Web UI,但是為了追求運(yùn)行效率署照,對 UI 展現(xiàn)邏輯和業(yè)務(wù)邏輯的 JavaScript 進(jìn)行了隔離的解決方案:微信小程序

對于一個(gè)前端祸泪,筆者感覺每個(gè)人必須了解這三種常見方案的實(shí)現(xiàn)方式和優(yōu)缺點(diǎn),這樣才能在開發(fā)移動(dòng)端業(yè)務(wù)的時(shí)候建芙,更為清楚自己所要注意没隘、所要學(xué)習(xí)的地方。當(dāng)然禁荸,僅僅了解實(shí)現(xiàn)方式是不夠的右蒲,你要有環(huán)境去實(shí)踐你學(xué)習(xí)的東西阀湿。再拿去哪兒為例,去哪兒現(xiàn)在大多數(shù)業(yè)務(wù)都是移動(dòng)端的瑰妄,Hybrid 和 RN 方案都在被使用陷嘴。所以,作為一個(gè)應(yīng)屆生间坐,你很有可能去做一些 Hybrid 或者 RN 的項(xiàng)目灾挨。做 Hybrid 項(xiàng)目時(shí),你更多要考慮的是『如何高效地操作 Dom』竹宋;反之劳澄,做 RN 項(xiàng)目,你更多要考慮的則是『如何減少和 Native 的通信』蜈七。這兩點(diǎn)秒拔,最終都會(huì)反應(yīng)在項(xiàng)目的用戶體驗(yàn)上。
前端中的『另類』—— Node
對于 Node宪潮,作為一個(gè)前端溯警,應(yīng)該并不陌生趣苏。Node 最大的賣點(diǎn)在于完全異步的 I/O 模型狡相,相比于阻塞 I/O ,異步 I/O 模型極大提高 Web 服務(wù)的并發(fā)性食磕。因此尽棕,前端都可以自己開發(fā)服務(wù)端了?
這樣認(rèn)為的同學(xué)彬伦,筆者只能說滔悉,你想多了。Node 是可以開發(fā)服務(wù)端单绑,但是不代表所有前端都可以使用 Node 去開發(fā)一個(gè)龐大業(yè)務(wù)的服務(wù)端回官。你去知乎搜索使用 Node 開發(fā)服務(wù)端的相關(guān)問題,一部分人會(huì)說 Node 不能替代之前的服務(wù)端語言搂橙,另一部分人會(huì)說什么也阻擋不了 Node 在服務(wù)端的腳步歉提;同時(shí)有很多諸如 Paypal、阿里這樣大公司大規(guī)模使用 Node区转,也很多公司在落入 Node 深坑而不起苔巨。不論爭論如何,筆者認(rèn)為废离,Node 是否能寫服務(wù)端侄泽,主要在于使用 Node 的人是否有服務(wù)端的思想。開發(fā)服務(wù)端和開發(fā)前端是完全不同的思想蜻韭,服務(wù)端更注重效率悼尾、更注重穩(wěn)定柿扣、更注重高并發(fā)情況下數(shù)據(jù)的處理,用前端的思想去開發(fā)服務(wù)端顯然是不行的闺魏。當(dāng)然窄刘,成功的案例中,Node 也更多運(yùn)用在頁面渲染這一層舷胜,配合前端更快的渲染頁面娩践,提高用戶體驗(yàn);而復(fù)雜的數(shù)據(jù)邏輯烹骨,還是用傳統(tǒng)的服務(wù)端語言進(jìn)行開發(fā)翻伺,畢竟技術(shù)成熟、運(yùn)維成本低沮焕。


這里吨岭,會(huì)出現(xiàn)一個(gè)問題,我只是前端峦树,需不需要去學(xué)習(xí) Node辣辫?筆者的答案是 需要。前端興起已經(jīng)很多年魁巩,已經(jīng)從游擊隊(duì)亂槍打鳥的階段逐漸變?yōu)橐?guī)募泵穑化、工程化的時(shí)代谷遂。在這個(gè)時(shí)代中葬馋,尤其是在工具和流程方面,Node 起到了很大的作用肾扰,扮演很重要的角色畴嘶。諸如 Webpack、Gulp集晚、NPM 這些工具窗悯,他們被運(yùn)用在各個(gè)公司的各類前端項(xiàng)目中。學(xué)習(xí) Node 其實(shí)就是去學(xué)習(xí)前端的工具偷拔,去學(xué)習(xí)前端的工程化蒋院。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市条摸,隨后出現(xiàn)的幾起案子悦污,更是在濱河造成了極大的恐慌,老刑警劉巖钉蒲,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件切端,死亡現(xiàn)場離奇詭異,居然都是意外死亡顷啼,警方通過查閱死者的電腦和手機(jī)踏枣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門昌屉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人茵瀑,你說我怎么就攤上這事间驮。” “怎么了马昨?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵竞帽,是天一觀的道長。 經(jīng)常有香客問我鸿捧,道長屹篓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任匙奴,我火速辦了婚禮堆巧,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘泼菌。我一直安慰自己谍肤,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布哗伯。 她就那樣靜靜地躺著荒揣,像睡著了一般。 火紅的嫁衣襯著肌膚如雪笋颤。 梳的紋絲不亂的頭發(fā)上乳附,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天,我揣著相機(jī)與錄音伴澄,去河邊找鬼。 笑死阱缓,一個(gè)胖子當(dāng)著我的面吹牛非凌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播荆针,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼敞嗡,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了航背?” 一聲冷哼從身側(cè)響起喉悴,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玖媚,沒想到半個(gè)月后箕肃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡今魔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年勺像,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了障贸。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡吟宦,死狀恐怖篮洁,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情殃姓,我是刑警寧澤袁波,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站蜗侈,受9級特大地震影響锋叨,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宛篇,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一娃磺、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧叫倍,春花似錦偷卧、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蚕泽,卻和暖如春晌梨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背须妻。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工仔蝌, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人荒吏。 一個(gè)月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓敛惊,卻偏偏與公主長得像,于是被迫代替她去往敵國和親绰更。 傳聞我的和親對象是個(gè)殘疾皇子瞧挤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350

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