前端技術簡史
讓我們一起回顧前端歷史,了解不同技術如何影響前端世界,
理解為甚麼會有人喊:「前端進步太快,學習速度跟不上啊~」
網頁的進化史
- 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 )、部落格 ...
- 動態網頁:提供額外網頁功能插件 如: 留言板、金流、報名系統 ...
- 資料庫管理:業務場景有
資料量大
搜索緩慢的困擾時。
- 前後端分離:業務場景需要提供
高流量
、高穩定性
、高擴展性
時。
隨著技術的發展,技術只會越來越適應細分領域,可能無法見到單一技術走天下的未來。
走上資工這條路,就意味著永無止境的學習,哭吧 😥