今天我們要將架構給建造出來,為什麼要有架構呢? 因為有架構我們才能比較容易地進行擴展與更動,就像是蛋糕一樣,如果有分層,就可以看得很仔細裡面有什麼口味囉~
我們目前的架構只有一層Controller層,我們今天要來講一下分層的概念。
Controller層是應用程序的入口點,負責接收和處理來自外部的request。通常Controller層包含路由和請求處理邏輯,它將請求轉發給Sevice層進行處理,然後將結果返回給外部。
Service層是app的業務邏輯的核心,它包含了實際要處理的核心邏輯、具體業務邏輯。包括各種業務邏輯,如數據處理、計算、驗證、轉換等。
服務層的設計應該是獨立的,這樣它可以被不同的Controller使用,同時也應該容易測試。
寫的越好的Service,可以讓我們輕鬆共用,瞬間(? 找到想要的業務邏輯。
Repository層,簡稱:Repo層,用於與DB互動,或是與外部系統互動,它主要處理數據的讀取、寫入和操作。這一層抽象了底層的細節,為Service層提供了方法,來訪問DB。
這層就是要保護我們髒髒的DB,讓Service可以乾乾淨淨。以Clean architeture來說,它就有點像是Adapter的腳色,介於DB跟Service之間。
Service表示:你不要靠近我~你這髒髒的DB
透過這三種分層,我們可以將Web程式寫的比較乾淨一點,讓程式不要是一團大尼球或義大利麵,讓後人都可以看懂我們的程式。