iT邦幫忙

2022 iThome 鐵人賽

DAY 24
0
Software Development

持續進化論系列 第 24

DAY24 - 層層把關

  • 分享至 

  • xImage
  •  

當後台已經完成之後就可以開始開 API 給前台用了,但在開始之前先介紹一下常見的分層方法,常見的分層會從 Route 、 Controller 、 Service 、 Repository、Model、Resource、Response 來組合而成。

Route:
負責將傳遞進來的 Request 解析後指向指定的 Controller 處理。

Controller:
商務邏輯的中樞,流程的控制,利用這個 Service 執行各式各樣的事件,或是取得所需資料,匯集全部的功能的資料後交給 Response 回覆給前台。

Service:
專業的匠人,負責處理專精的事情,例如金流、物流、商品等等專業邏輯,可以將其想為一個專門的套件都放在這裡,常常利用 composer require 使用的套件大致上都屬於這個層級的應用。

Repository:
實際撈取資料的物件、搭配各種條件搭配選擇,在小型專案中有時不會用到。

Model:
與 table 之間的各種設定,如果沒有使用 Repository 層的時候也會負責資料的撈取。

Resource:
通常使用 Model 或是 Repository 撈取出來的資料是沒有經過任何的修改的,但有時會需要做一些格式的變化會使用 Resource 這一層來做修改。

Response:
前後端討論好的回覆格式寫在這一層,常見的格式會有:自定義狀態、 資料、要揭露的特殊訊息,要揭露的特殊訊息常用在當發生 Exception 時,並不會想讓使用者看到 Error 及 Stack trace,但也不能只有顯示一個系統異常,要搭配一些處理方法顯示給使用者,例如系統維修中、信用卡過期,請聯繫客服人員等資訊。

當開始使用這些層級就代表已經開始進去物件導向的概念了,所謂物件導向的概念就是希望把每個功能細拆出來獨立運作,不要用所謂的義大利麵式的 function programming 來寫 Code ,如此來達到容易復用、後續修改邏輯容易的好處。


上一篇
DAY23 登出一下
下一篇
DAY25 - API架構
系列文
持續進化論30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言