點閱率 | 896 次

前端工程的戰國時代

文/陳俊廷 圖/陳俊廷


 

Intel創始人之一的戈登.摩爾(Gordon Earle Moore)在1965年的一場會議中提出,每經過18個月晶片的效能將提高一倍,這就是後來知名的摩爾定律。50年後,在科技進度速度飛快的現代,摩爾定律已經開始無法符合當初自身的要求,然而「前端工程」市場卻漸漸的開始符合摩爾定律的規範。記得幾年前參加的一場研討會中,有一位講者在討論中提到未來每經過18個月,前端的技術就會難上一倍 ,這對前端的開發者而言實在不是個好消息,因為在技術進步的同時,也代表你將會有學不完的東西,這或許也是前端工程師必須面對的宿命吧。本編文章將以一個資訊工程師的角度,說明一下目前我所認知的前端,以及未來的發展。

 

 │什麼是前端?│

再進入本文之前,我想先說明一下什麼是「前端工程」,或許有些讀者曾經聽過前端或是後端這兩個名詞,如果讀者非從事資訊相關工作,可能會很難分辨兩者的差異,簡單的來說 前端就是你看到的東西 ,而後端就是你看不到的東西,舉個例子來說,我們連上一個e-Learning所看到的「網頁畫面」就屬於前端的範疇,而在背後運作的東西,像「伺服器」、「資料庫」就屬於後端範疇。

事實上從前端的定義中,我們也不難發現前端的範疇事實上很大,看得到的都能歸類為前端,所以純網頁、手機App、電腦應用程式等都能歸類到前端範疇,讀者們看到這邊是不是開始覺得搞前端的工程師,因為要學的東西很多,相較之下後端好像比較單純,其實,要架設一個網頁會需要伺服器,App也需要資料庫,所以可以說是前、後端缺一不可,而且後端除了性能的調教外,也需要注意到資料安全的問題,也有很多的學問在,不過因為本文主要介紹前端技術,後端技術就留待日後有機會時再來跟各位讀者介紹。

 

 │前端工程的戰國時代│ (*由於筆者主要為網站工程師,因此本文會以網站技術為主)

以網頁來說,前端工程的代表JavaScript如果稱第二,大概不會有人敢稱第一,JavaScript在前端的地位就是這樣的崇高,但也因為JavaScript的重要性,造成了現在前端工程的戰國時代,以及工程師們爆肝的年代。

 

JavaScript? CoffeeScript?TypeScript?

有人說工程師一輩子能寫的程式行數是差不多的,因此降低軟體開發時的難度以及錯誤率,就等同於提高了工程師產量,由於原生的JavaScript缺乏強力的程式結構,不易除錯,因此就有廠商針對這點,推出了新的程式語言CoffeeScript(Jeremy Ashkenas)、TypeScript(microsoft),繼承原有的JavaScript特性並加上自己的特色,但事情總是一體兩面,加快了開發速度的同時,苦命的前端工程師以前只要學會JavaScript,現在又必須多學一套語言,也等同變相的提高了進入的門檻。

 

JavaScript’s libraries

除此之外,今年前端市場又多了很多的新同伴,像 Vue.js、Aurelia.js發佈1.0版、jQuery發表3.0版,Angular2 終於到RC6等等,應該會有讀者想問Vue、jQuery、Angular是什麼?如果我跟大家說他們都是JavaScript的libraries,而且做的事大同小異,讀者們是不是會覺得「……你可以跟我講一個就好嗎?」事實上這也是現在前端工程師所面臨的一個問題框架太多,那個才是最好

 

表1. List of JavaScript libraries (參考wiki)

DOM (manipulation) oriented

jQuery

React.js

YUI Library

Prototype JavaScript Framework

Graphical

AnyChart

D3.js

Pixi.js

Processing.js

Three.js

GUI-related

Ext JS

AngularJS

Bootstrap

Dojo Widgets

jQuery UI

Vue.js

Web-application related

Angular2

Backbone.js

React.js

Knockout

事實上這個問題並沒有最佳解,每個框架或是函式庫都有其特色在,例如jQuery擅長DOM的操作、D3適合用來繪製報表、Angular有效的達成關注點分離,使得維護變得容易,當然你也可以使用標準javascript來處理,但或許會花掉許多的時間在處理一些別人已經幫你做好的事,能依不同需求選擇適當的工具,盡量縮短開發時間,並達成現階段最好的成果,才能被稱為專業人士。

 │這是個對前端工程師殘酷的時代,卻也是資訊快速進步的時代│

為了因應目前敏捷開發原則,各大廠商無不摩拳霍霍,準備要來荼毒工程師搶佔市場,就我個人一點拙見,短期內應該還無法出現像幾年前的jQuery一樣大家公認的框架,但是我相信未來的世界是美好的,完美的框架一定有完成的一天,就讓我們拭目以待吧!