華云數(shù)據(jù)技術分享:2019前端戰(zhàn)略規(guī)劃之技術布局
程序猿們都知道前端技術變化很快,隨著2019年到來,前端技術又會迎來哪些變化,我們應該學些什么?華云數(shù)據(jù)“智匯華云”專欄將為您奉上“2019前端戰(zhàn)略規(guī)劃”系列文章,本期將為您講解2019前端戰(zhàn)略規(guī)劃之技術布局。
布局一:基礎知識
可能在大家多開發(fā)眼里,前端基礎知識,就是html+css+javascript。但是在我看來,基礎的范圍現(xiàn)在不止這些,還需要多加一項nodejs,各種調查,nodejs也已經(jīng)作為一個必備技能,而不是拔高技能了。
對于新加入公司的實習生,在走上前端開發(fā)這條道路的時候,更應該重視基礎知識的學習。
布局二:框架
VUE、React、Angualar在2018年已趨于平衡,要會一個,當然React用戶最多,滿意度也高,也符合公司需求。
布局三:Web組件化
這里說的組件化是Web組件(Web Compoonents)。Html+Css+Js結構表現(xiàn)行為分離確實是一個好想法,但也帶來了一些問題,比如狀態(tài)管理和數(shù)據(jù)同步。
組件的特性:
1、高內聚性,組件功能必須是完整的,如我要實現(xiàn)下拉菜單功能,那在下拉菜單這個組件中,就把下拉菜單所需要的所有功能全部實現(xiàn);
2、低耦合性,通俗點說,代碼獨立不會和項目中的其他代碼發(fā)生沖突!在實際工程中,我們經(jīng)常會涉及到團隊協(xié)作,傳統(tǒng)按照業(yè)務線去編寫代碼的方式,就很容易相互沖突,所以運用組件化方式就可大大避免這種沖突的存在。
3、每一個組件都有自己清晰的職責,完整的功能,較低的耦合便于單元測試和重復利用;
為什么大家會這種熱衷組件化,看下組件化給我們帶來的好處,其必要性就不言而喻:
- 提高的開發(fā)效率
- 方便重復使用
- 簡化調試步驟
- 提升整個項目的可維護性
- 便于協(xié)同開發(fā)
布局四:PWA
漸進式網(wǎng)絡應用程序(簡稱PWA)是一種帶有一些額外功能的Web應用程序,是一種編寫Web應用程序的新方式。
太陽底下沒有什么新鮮事,2005年左右其實數(shù)據(jù)交互形式很多,這個時候google大張旗鼓地使用ajax,一舉讓ajax成為了數(shù)據(jù)交互事實的標準。
10年之后情況類似,各種WebApp開發(fā)亂七八糟,google又說了,PWA才是下一代Web 應用。
- 2005年 ajax->數(shù)據(jù)交互;
- 2015年 PWA->Web App開發(fā)。
布局五:GraphQL
1、GraphQL 是 REST API 的替代品,搞數(shù)據(jù)接口用的。
2、如果你是創(chuàng)業(yè)公司或者小公司,沒有以前的技術負擔,用GraphQL會很爽。
3、如果你想成為全棧,GraphQL是你工資突破50K+的***機會。
布局六:Serverless Services
用了它,你們公司再也不用自己去買服務器,做負載均衡各種事兒了。目前典型的應用就是圖床,你上傳一堆圖片,根據(jù)你的需求,別人家的服務器把各種尺寸給你做好,而且還做好防盜鏈和負載均衡。性能安全沒的說。
這種方式將會徹底改變前端和后臺扯皮的工作方式(因為根本就不需要后臺了)。
布局七:網(wǎng)站靜態(tài)化
推薦給大家一個技術棧JAMStack
https://jamstack.org/
JAMstack是指使用JavaScript、API和Markup構建的技術堆棧,JAMstack一種基于客戶端JavaScript,可重用API和預構建Markup的現(xiàn)代Web開發(fā)架構.
什么時候用?我們這里用排除法
1、使用服務器端CMS構建的站點,如WordPress、Drupal、Joomla或Squarespace。
2、一個單片服務器運行的Web應用程序,它依賴于Ruby,Node或其他后端語言。
3、單頁應用程序,使用同構呈現(xiàn)在運行時在服務器上構建視圖。
除了上面這三種情況下不用,其它情況下隨便造。
為什么用它?
作為網(wǎng)站肯定希望快點好。用JAMstack就是一個字-快。開發(fā)也快,上線也快。
布局八:Javasctipt AI
了解JavaScript構建的各種AI模型和機器學習模型。為什么?
目前發(fā)展速度太快,沒準哪天商用的切圖和寫特效的AI就出來了。到時候設計師出來效果圖,上傳到我上面說的無服務器服務上面,直接就把圖切出來了,js特效都寫好了,重點是一點兼容性都沒有。這個不是科幻,是很貼近現(xiàn)實的,目前已經(jīng)有AI摳圖,效果還不錯,如果經(jīng)過大量的訓練精準度達到商用的話,那些摳圖為主要工作的設計師可能就下崗了。同理,到時候會大量的前端人員下崗,這不是危言聳聽。大家想一想,現(xiàn)在還有打字員這個職位嗎?
但是兩類人不會下崗。
1、熟練掌握javascript和AI結合,操作AI讓webApp和網(wǎng)站更貼合公司業(yè)務的人員。
2、通過js構建自己公司工作流的人員。
這兩類人不僅僅不會下崗,反而會更加重要。
為什么?以前10個人團隊的工作,現(xiàn)在你一個人操作AI就做了。
布局九:Javascript物聯(lián)網(wǎng)(IOT)
Nodejs將 javascript推進了服務器端,而不是桎梏與瀏覽器。同理iot,將js推進到了更廣泛的設備。
從簡單的語音控制臺燈,到復雜的javascript+物聯(lián)網(wǎng)智能家居,js的應用范圍越來越廣。而每一次設備疆域的開拓都伴隨著巨大的技術核心。
從客戶端到服務器,從pc端到智能手機,同理從智能手機到智能設備也必將掀起新一輪的技術和高薪浪潮。
布局十:知識挖掘技術
全球范圍內數(shù)據(jù)庫中存儲的數(shù)據(jù)量急劇增加,人們的需求已經(jīng)不只是簡單的查詢和維護,而是希望能夠對這些數(shù)據(jù)進行較高層次的處理和分析以得到關于數(shù)據(jù)總體特征和對發(fā)展趨勢的預測。因此,知識挖掘這個技術也便非常有用,目前的技術發(fā)展,趨勢越來越明顯的。
前端世界,瞬息萬變,誰也無法準確地預測明天,連巴菲特也沒辦法算出來,蘋果公司明天的股價是多少,但趨勢是越來越明顯的,市場也會給我們足夠的時間,跟上浪花的潮流。讓自己的事業(yè)更上一個臺階,也許并不需要懸梁刺股、嘔心瀝血,只要我們把眼界放開,提前規(guī)劃,按照定好的路線一步一個腳印,即便爬不上世界之巔,也足以一覽眾山小了,希望這篇文章,能變成幫助大家攀登的繩索。