iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 3
2
Software Development

以資料庫為開發核心,利用通用 API 玩轉後端資料存取的概念與實作系列 第 3

Day3:全端開發架構說明(一)

新一代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 的概念來實作,只不過我的實作方式,和其他人的作法比起來有點離經叛道,往後看下去您就會知道我所指為何。

舉個大部分網站都會有的表單-加入會員,來實際說明前、後端的實際應用情境

  • 會員註冊的表單程式,當然是屬於前端的程式範圍,包括畫面的安排、配色、底圖、字體的大小等。
  • 當某些必填欄位(如 email) 沒有輸入資料,此時表單會提示 [ email 不能空白],基本上,這是屬於前端的程式。
  • 當使用者輸入全部的註冊資料後,按下 [確認] 時,此時會先檢查輸入的 email 資料是否已存在?
    雖然看起來和檢查空白看起來很像,都是資料的檢查,但是因為與資料庫有關,通常此時會寫一支後端的 API 判斷 email 是否重複,所以這個檢查動作,是屬於後端程式的範疇。
  • 當資料檢查無誤,將資料寫到資料庫的程式,當然也是後端程式。

通過這個簡單的範例,您應該可以理解,這是一個 [你泥中有我,我泥中有你] 的無法完全切割的世界。只是因為包含的技術太多,如果不適當的分割,實在是太為難了萬能的研發工程師。能夠掌握上述前、後端大部分技能的工程師,就能稱為全端工程師,只是這畢竟不是件容易的事,而且容易犯 [樣樣通、樣樣鬆] 的毛病。但是盡量多了解上面的技術,絕對有助於掌握資訊系統的開發,升職、加薪當然就不在話下。

一般而言,與其仰賴極稀缺的全端工程師,開發團隊還是建議分為前端組和後端組,只是產品經理要掌握好進度並作好平行溝通,否則很容易會發生進度相互卡住的不良效應。

如何才能掌握全端開發所包含的這麼多的技術呢? 筆者個人只是略通後端、前端小白,所以這個議題我沒有辦法給出答案,但是善用並整合好現有資源,應該是一條正確的道路。人生有限,不可能所有的事情都自己來,面對風起雲湧的 Opersource 風潮,浪裡淘沙(應該是淘黃金) 從而整合出一套開發框架。並以此為基礎,配套開發一套 Template 或是 Wizard (類似早期的程式產生器),應該是可行之道。

在構想中,一個完整的解決方案,應該包括

前端的表單產生程式
類 ORM 的通用架構,解決所有的基礎資料存取需求
容易自定義的 RESTful API (不需一直擴充修改 server 端程式)

透過一個規格設定的介面,定義表單的 Layout,然後透過 Wizard 程式自動產生表單,配合 類-ORM 的架構,一支基本的可以新增、刪除、修改、查詢的程式就快速地完成。這支程式,目前看來只是雛形,只能執行基礎的標準作業,還需要工程師手工增加一些程式才能完善。當然,這樣也已經解決了很多重複性的工作。然後,隨著使用經驗的不斷累積,總有一日,筆者在前一篇所想像的的 AI-zen 開發的情境,很快就會到來。

本系列文是以後端為討論的主軸,但是後端不可能單獨存在,所以還是無可避免要面對前端開發這座大山。只是前端我還真沒什麼發言權,只能簡要的闡述基本概念。在後面的章節,我會將上面的概念逐步實踐,希望您能耐著性子,繼續堅持看下去。


上一篇
Day2:大道至簡
下一篇
Day4:全端開發架構說明(二) - 第一支 API 實作
系列文
以資料庫為開發核心,利用通用 API 玩轉後端資料存取的概念與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言