新一代Web專案的開發,是一個非常複雜的構成,需要掌握許多技術。其中至少會包括後端開發、前端開發、介面設計、產品設計、資料庫、各種移動用戶端、多屏相容、RESTful API 設計等等。光是搞懂這些名詞,就夠讓人嚇出一身冷汗、壓力山大。
從「專業技能」的角度來看,全端開發(Full Stack Development)的概念是:具備 Frontend(前端) 與 Backend(後端) 開發的能力。
關於全端開發,可以參考下面這篇 blog 的說明
https://www.mokoversity.com/post/Full%20Stack%20Development%EF%BC%9A%E9%82%81%E5%90%91%E5%85%A8%E7%AB%AF%E9%96%8B%E7%99%BC
所謂前端,簡單的說就是凡是屬於給使用者(user) 操作的、有輸入或是查詢介面的程式,都屬於前端,
所以包括
一般的企業官網
e-commerce 電子商務網站
購物車
網站的後台管理程式
手機的 app
微信小程序等
都算是前端程式的範圍。
延續上面的說明,所謂的後端程式,主要指的是對資料庫的新增、刪除、查詢、修改等資料存取的程式,一般而言,通常都會配合前端的表單程式呼叫使用。
目前的後端主流技術,且經過多年實際的驗證,RESTful API 應該是當之無愧的扛壩子。在可預見的未來很長一段時間,應該都是後端存取之王,它只是一個技術規範,如何實作,存乎一心。我的後端框架作法,也是採用RESTful API 的概念來實作,只不過我的實作方式,和其他人的作法比起來有點離經叛道,往後看下去您就會知道我所指為何。
舉個大部分網站都會有的表單-加入會員,來實際說明前、後端的實際應用情境
通過這個簡單的範例,您應該可以理解,這是一個 [你泥中有我,我泥中有你] 的無法完全切割的世界。只是因為包含的技術太多,如果不適當的分割,實在是太為難了萬能的研發工程師。能夠掌握上述前、後端大部分技能的工程師,就能稱為全端工程師,只是這畢竟不是件容易的事,而且容易犯 [樣樣通、樣樣鬆] 的毛病。但是盡量多了解上面的技術,絕對有助於掌握資訊系統的開發,升職、加薪當然就不在話下。
一般而言,與其仰賴極稀缺的全端工程師,開發團隊還是建議分為前端組和後端組,只是產品經理要掌握好進度並作好平行溝通,否則很容易會發生進度相互卡住的不良效應。
如何才能掌握全端開發所包含的這麼多的技術呢? 筆者個人只是略通後端、前端小白,所以這個議題我沒有辦法給出答案,但是善用並整合好現有資源,應該是一條正確的道路。人生有限,不可能所有的事情都自己來,面對風起雲湧的 Opersource 風潮,浪裡淘沙(應該是淘黃金) 從而整合出一套開發框架。並以此為基礎,配套開發一套 Template 或是 Wizard (類似早期的程式產生器),應該是可行之道。
在構想中,一個完整的解決方案,應該包括
前端的表單產生程式
類 ORM 的通用架構,解決所有的基礎資料存取需求
容易自定義的 RESTful API (不需一直擴充修改 server 端程式)
透過一個規格設定的介面,定義表單的 Layout,然後透過 Wizard 程式自動產生表單,配合 類-ORM 的架構,一支基本的可以新增、刪除、修改、查詢的程式就快速地完成。這支程式,目前看來只是雛形,只能執行基礎的標準作業,還需要工程師手工增加一些程式才能完善。當然,這樣也已經解決了很多重複性的工作。然後,隨著使用經驗的不斷累積,總有一日,筆者在前一篇所想像的的 AI-zen 開發的情境,很快就會到來。
本系列文是以後端為討論的主軸,但是後端不可能單獨存在,所以還是無可避免要面對前端開發這座大山。只是前端我還真沒什麼發言權,只能簡要的闡述基本概念。在後面的章節,我會將上面的概念逐步實踐,希望您能耐著性子,繼續堅持看下去。