前端技能樹
🌲

前端技能樹

Published
Aug 12, 2021
Tags
Area
👨🏻‍💻程式

前端技術簡史

讓我們一起回顧前端歷史,了解不同技術如何影響前端世界, 理解為甚麼會有人喊:「前端進步太快,學習速度跟不上啊~」
網頁的進化史
  • 1990-1995 互聯網萌芽
    • HTML+CSS
      純靜態網頁,僅允許用戶瀏覽
  • 1996-1999 瀏覽器百家爭鳴
    • HTML+CSS+JavaScript 功能性網頁,可與網頁互動,但各家瀏覽器支援程度不同。
  • 2000-2004 Gmail 誕生 HTML+CSS+AJAX 可單獨刷新部分網頁區塊, 不用每次將整個頁面重新載入
  • 2005-2009 Chrome V8 誕生
  • 2010-2014 JavaScript 框架誕生
 
 
 
 
 
 
 
  • 2015-2018 尚無法確定哪個技術將重大影響後世
網頁技術演進
  • 1991 HTML Tag
  • 1994 CSS
  • 1995 LiveScript (=JavaScript)
  • 1999 HTTP Request/Response:網路傳輸
 
 
 
  • 2004 AJAX:以非同步的方式向後端要資料。
  • 2006 JQuery : 將 JavaScript 封裝,讓開發者少寫些程式碼。
  • 2009 Node.js:JavaScript可以用於後端。
  • 2010 JavaScript MVC - AngularJS:提供雙向數據綁定、依賴注入、路由包 ... 等等。
  • 2012 Webpack - 前端打包工具
  • 2013 JavaScript MVC - React:提供 Virtual DOM、單向數據流和 Flux模式 ... 等等。
  • 2014 輕量級框架 - Vue
  • 2014 Soket.io - Websocket
  • 2014 NPM - 前端套件管理工具
  • 2015 GraphQL API 資料查詢語言: 使用一個請求獲取多個資源的數據資料。

網頁代碼演進

當技術逐步被人所廣為認識後,逐步的影響各家公司內程式碼, 若有幸進到年代久遠的公司,甚至能在不同專案中,看到前端的演化呢~ 筆者就有幸(被迫)需要維護陳舊程式碼,因此不得不需要理解、接觸過往的技術。
  • 1990-1994 洪荒時期:靜態網頁 HTML+CSS。
  • 1995-2000 CGI後端動態生成頁面 :
    • 後端語言( PHP、JAVA、C# ... ) 加入,與前端程式大雜燴,形成 麵條式代碼單體式應用程式
      - 後端 CRUD 設計:僅需將資料傳給前端,其他的事由前端處理。
      - 分頁設計:避免用戶等待頁面顯示的時間太久。 由於頁面由伺服器產生,每次更新頁面都需要全畫面重新渲染。
  • 2000-2009 瀏覽器戰爭: - HTML、CSS、JavaScript 依據不同瀏覽器進行客製化調整。
    • - AJAX 回調地獄:讓網頁可以先渲染部分內容再向後端伺服器取資料更新頁面。
      - 非即時刷新/前端定時器:固定時間重新向後端取得資料刷新頁面。
      - iframe 實現頁面刷新。
  • 2009-2012 JQuery 時期:
    • - JQuery 鍊式操作 & 全局汙染。
  • 2012-2016 後端開發經驗轉至前端:Webpage → WebApp
    • - 前端庫管理工具:Npm、Yarn
      - 前端打包工具:Gulp、Grunt、Webpack ...
      - 前端模板: Express.js
      - 前端路由:統一進入點,依據URL路徑參數轉至不同代碼區塊。
  • 2016-至今 前後端分離:三大框架群雄割據 Angular、React、Vue
    • - 後端 RESTful API 設計:明確定義資料傳入傳出的規範。
      - 前端 MVC 設計:透過關注點分離,讓程式碼更容易尋找與閱讀。
       
技術是因為不同業務場景而被開發出來的,因此並不意味著陳舊的技術=不好,
而是應當為業務場景挑選適合的技術。
  • 靜態網頁:著重閱讀體驗、SEO、快速製作。 如: 公司介紹網頁、一頁式行銷頁面 ( Landing Page )、部落格 ...
  • 動態網頁:提供額外網頁功能插件 如: 留言板、金流、報名系統 ...
  • 資料庫管理:業務場景有 資料量大 搜索緩慢的困擾時。
  • 前後端分離:業務場景需要提供 高流量高穩定性高擴展性 時。
 
隨著技術的發展,技術只會越來越適應細分領域,可能無法見到單一技術走天下的未來。
走上資工這條路,就意味著永無止境的學習,哭吧 😥