大前端領域,具備哪些核心能力的人最喫香?| InfoQ 編程語言 4 月排行榜

{"type":"doc","content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"提起大前端,總會有人抱怨“學不動了”,因爲技術更新太快。那大前端的風會吹向何方?是跨端、Flutter、Serverless,還是小程序?爲回答上述問題,結合 InfoQ 編程語言 4 月排行榜的調查結果,我們採訪了大前端領域的三名程序員,試圖瞭解這個領域的程序員們。"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"發現 1:Web 開發依然是大前端領域的主流"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/03\/03460fe21f6772b4f4d627d81f8d869c.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於投票數據,我們發現 Web 開發得票率爲 68%,由此可見它依然是大前端領域的主流。iOS 開發得票率爲 16%,排名第二,而 Android 開發則以 5% 的得票率排名第四。同時,我們注意到,小程序開發以 6% 的得票率超過 Android 開發的 5%。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在採訪中,網名叫月熊的程序員表示,自己在大前端領域最關心的技術方向是跨端開發、微前端和數據可視化 \/ 交互。而他所在公司的業務是面向小批量製造領域的數字化工廠和智能製造行業,主要工作涉及基於 Web 的跨端應用開發,包括 Web 端、移動端、桌面端、小程序端,以及部分 3D 數據展示和模型處理。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"而在某銀行信息科技部基礎技術板塊擔任前端負責人的英楠同樣也在關注跨端框架,他說:“最想學習和實戰 Flutter。“"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"發現 2:JavaScript 在大前端領域“獨霸天下”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/1f\/1fc8929afb795f2620c3421c2278cbec.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於投票數據,我們發現在大前端領域編程語言使用情況上,JavaScript 以 78.5% 的得票率,排名第一。而 TypeScript 得票率爲 42.9%,排名第二。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"考慮到這兩門編程語言都屬於 JavaScript 生態,JavaScript 在大前端堪稱“獨霸天下”。前端程序員英楠在採訪中稱,使用最多的編程語言還是 JavaScript,因爲工作主要還是面向 B 端,幾乎全部項目都是用 JavaScript,公共組件則是用 TypeScript 開發。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"另一位前端程序員月熊則表示,自己在工作中使用最多的編程語言是 TypeScript,“相比 JavaScript,它有靜態語法特性,更符合大規模、跨端協作項目的開發”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"前端程序員小吳說:“使用最多的編程語言是 JavaScript。自從有了 node.js 後,JavaScript 幾乎可以處理任何業務邏輯,包含後端的數據增刪查改、前端頁面渲染和用戶交互操作等。阿特伍德定律說,任何可以用 JavaScript 來寫的應用,最終都將用 JavaScript 來寫。”"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"發現 3:選擇編程語言最看重的是語言生態"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/62\/624400e43fc54c0ad6aae900b517c426.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"在選擇編程語言時,最看重的因素是什麼?答案是語言生態。語言生態得票率爲 63.4%,排名第一。對前端開發者來說,語言生態是最看重的,它包括工具鏈的完備程度,庫、框架等完善程度。生產效率得票率爲 22.2%,排名第二,而語言的功能特性則排名第三。"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"發現 4:Vue 和 React 是最流行的前端開發框架"}]},{"type":"image","attrs":{"src":"https:\/\/static001.geekbang.org\/infoq\/63\/63eb062ba29e911950261ffadf2b2ca7.jpeg","alt":null,"title":null,"style":[{"key":"width","value":"75%"},{"key":"bordertype","value":"none"}],"href":null,"fromPaste":true,"pastePass":true}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"基於投票數據,我們發現 Vue.js 以 46.5% 的得票率排名第一,被視爲最流行的前端開發框架。而 React 緊隨其後,以 31.5% 的得票率排名第二。Flutter 排名第三,得票率爲 8.5%。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"月熊在採訪中表示,最常用的前端開發框架是 React,其生態圈較爲完善,“編程習慣上更易於貼合工程化的需求”。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"英楠同樣是 React 的忠實用戶,他說:“最常用的是 React。React 生態非常完善,滿足了我們項目的一切需求,市面上能與抗衡的就只有 Vue 了。”"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"對前端程序員來說,編程語言或框架對他們的工作非常重要。月熊認爲,不同編程語言或框架幾乎決定了不同的生態圈,這會極大地影響到項目組織、團隊組織以及第三方庫的使用。他自述,他們團隊早年間選用過 Angular 1,但後面在性能和升級上都碰到較大的困難。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"英楠稱,在 React 這類數據驅動試圖的前端框架前,一個項目使用的是 JSP 渲染前端頁面,前後端完全耦合,連開發一個簡單的需求都非常痛苦,”後來,2018 年使用 Vue 將老項目進行了漸進式遷移,開發效率提升至少 5 倍“。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"小吳說:“React 和 Vue 各佔一半。比較嚴謹的業務邏輯,使用 React 和 TypeScript。要快速開發的小項目則使用 Vue 2。此前還重度使用過 Angular.js。”"}]},{"type":"heading","attrs":{"align":null,"level":4},"content":[{"type":"text","text":"前端程序員應具備的核心能力"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"由國內業界發明的技術名詞“大前端”如今逐漸成爲前端領域的大趨勢。而前端未來會如何發展?在月熊看來,隨着前端項目的不斷增大,前端在未來應具備更強大的運行能力,可以提供更復雜的交互,也期待 VR\/AR 時代的到來。英楠則表示,近些年,前端井噴式增長得到緩和,但人才缺口仍然巨大,希望在 AI+ 前端領域有更多突破,解決絕大多數的重複勞動,解放前端人員的生產力。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"當然,大前端的變化反過來也會影響前端程序員。現在的大前端有點“全棧”的味道,並且以前的膠水代碼越來越行不通,前端程序員也會強化自己的工程思維,具備體系化知識,並且能熟練使用各種框架。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"英楠表示,未來最看重的前端程序員核心能力就是工程師能力。“我認爲前端程序員未來的核心能力,除了前端專業技能外,工程化思維、分析問題和解決問題的能力以及學習能力都非常關鍵。“他說。"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"而月熊認爲,前端程序員未來要具備的核心能力分三部分:"}]},{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null}},{"type":"bulletedlist","content":[{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第一,編程基本素養,包括但不限於編程範式、設計模式、數據結構與算法等;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第二,工程化能力,能從編寫簡單的頁面到 Hold 住大型項目;"}]}]},{"type":"listitem","attrs":{"listStyle":null},"content":[{"type":"paragraph","attrs":{"indent":0,"number":0,"align":null,"origin":null},"content":[{"type":"text","text":"第三,產品 \/ 交互的感知能力,能理解產品設計,能自覺踐行某些交互優化的原則 \/ 範式,爲用戶提供更好的交互體驗。"}]}]}]}]}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章