2019,全棧開發者應該學些什麼?
人生苦短,因此儘可能少作無用功。若是你但願保持最新狀態併成爲全棧開發者,你須要瞭解如下的 2019 年趨勢。前端
HTML、CSS 和 JavaScript 是必須掌握的,你還須要學習 React、Vue 或 Angular 等前端框架或庫。可是,你應該選擇哪個?對於一個真正的全棧開發者,你能夠在 2019 年選擇這三個框架中的任何一個。webpack
Vue 3.0
2018 年,Vue 持續得到開發者的青睞,2019 年將會繼續增加……但它是否足以超越其餘兩大玩家?咱們拭目以待。git
Vue 生態系統正在不斷髮展,並且,隨着 Vue 3.0 的發佈極其改進的 Vue CLI,2019 年的開發者體驗將比以往更好。web
開發者可使用 Vue Native 進行跨平臺開發(就像 React Native 那樣),咱們已經很接近 React 那樣的大型生態系統,但仍是有一大段距離。數據庫
Vue 有一個很是有趣的趨勢,它將在 2019 年繼續增加:阿里巴巴、百度、騰訊、小米和 DJI 等中國科技巨頭更喜歡 Vue。預計中國市場將繼續保持快速增加,由於 Vue 是一個獨立的開源庫,與西方的大型科技巨頭無關。編程
-------------前端框架
你應該使用的 NPM 包服務器
Prettier——讓你能夠專一於你正在寫的代碼,而不是去關心代碼的格式;babel
eslint——保持代碼整潔;
date-fns——moment.js 的輕量級替代品;
lodash——主要用於 throttle() 和 debounce() 函數;
rambda——若是你真的喜歡函數式編程。
TypeScript:能夠編譯爲 JavaScript 的 JavaScript 超集。
Flow:JavaScript 的靜態類型檢查器。
Reason:利用了 JavaScript 和 OCaml 生態系統的類型語言。
PureScript:一種強類型語言,能夠編譯爲 JavaScript,使用 Haskell 開發。
Elm:純粹的函數式編程語言,能夠編譯成 JavaScript。
關於靜態與動態類型語言的討論由來已久,不會很快就得出結論。以上這些都不會取代 JavaScript 做爲 Web 主要編程語言的主導地位。可是,Angular 和 Vue 都採用了 TypeScript,並將其做爲開發者社區的標準,所以,TypeScript 可能會繼續增加,並超越上述其餘語言。
你須要學習 TypeScript 的基礎知識及其原理(以及靜態類型的好處),但要注意,它並不是寫出好代碼的惟一方法。要寫出好代碼,能夠先關注如何寫出好的單元測試。
CLI 將會風靡
你必須使用 babel、webpack、eslint、測試庫和其餘工具搭建項目腳手架的日子已經一去不復返了。個人意思是,咱們仍然能夠這麼作,但 CLI 確實讓這種體驗變得更好了。
Angular CLI;
Create React App 2;
Vue CLI。
2019 年,咱們將在 CLI 中看到愈來愈多的改進體驗。
狀態管理
Vue 將繼續使用 Vuex 進行狀態管理。
Angular 將繼續主要使用 RxJS。
隨着新的 Context API 的問世和 GraphQL + Apollo 的普及,React 今年則遭遇了一點危機。很長一段時間以來,Redux 第一次被認爲不是狀態管理的明智選擇。你仍然須要學習 Redux,由於你能夠從 Redux 中學到一些有用的計算機科學原理,如事件溯源和 CQRS。
服務器端渲染
服務器端渲染在 JavaScript 領域仍然是一個待解決的問題。咱們知道,單頁應用程序和客戶端渲染很容易讓項目出現代碼膨脹,並且須要向客戶端發送太多的 JavaScript 代碼,並且可能會影響你的 SEO(但可能沒有你想象的那麼多)。
有一些方法能夠解決這個問題,例如:PRPL 模式、prerender.io,或者你能夠這麼想,其實谷歌機器人在抓取單頁應用程序時沒有那麼糟糕。
目前,若是要進行服務器端渲染,可使用:
用於 React 的 Next.js;
用於 Vue 的 Nuxt.js;
用於 Angular 的 Angular Universal。
靜態頁面正在從新颳起一陣流行風,你能夠看看 JAM Stack:
https://www.netlify.com/blog/2017/06/06/jamstack-vs-isomorphic-server-side-rendering/
它的主要思想是:預構建標記(靜態頁面),經過利用服務器的 API 在客戶端成爲動態單頁面應用程序。這將在 2019 年真正改變服務器端渲染,我預測會有更多人使用像 GatsbyJS 這樣的工具,而不是本身構建複雜的服務器端渲染邏輯。
HTTPS 無處不在
須要將用戶輸入的數據發送到服務器的網站必須使用 HTTPS。若是你沒有使用 HTTPS,谷歌將會懲罰你。
幸運的是,HTTPS Everywhere 或 Gaddy 讓遷移到 HTTPS 變得更容易。
REST 與 GraphQL
RESTful API 在 2019 年還會存在,你須要學習如何實現和設計這些 API。你應該學會使用 Node.js 和 Express.js 來建立 API 服務器,在 2019 年,這兩個框架的組合仍然會佔主導地位。
如今出現了不少有關 GraphQL 的炒做,但它還不是能夠贏得全部市場的大贏家。瞭解 GraphQL 能夠解決哪些問題,以及如何在 RESTful API 中用它來進行路由優化。這將是 2019 年最重要的趨勢:不是如何單獨使用 GraphQL,而是如何在極少數狀況下使用 GraphQL 優化一些 RESTful API 路由。
HTTP2
HTTP2 變得愈來愈廣泛,你須要知道如何使用這個協議來優化內容的傳輸。此外,HTTP3 正在開發當中,你能夠關注它,但它並非你在 2019 年須要過度關注的東西。
基礎設施即服務
須要本身構建和管理服務器的場景愈來愈少,如下是 2019 年的主要選擇。
Digital Ocean——用於簡單的服務器。
Heroku——用於簡單和集成的服務器和部署。
Now——用於超級簡單的部署。
Firebase——用於託管基礎設施和數據庫。
AWS——幾乎任何你想要的東西,你能夠永遠不須要考慮本身管理服務器。