iT邦幫忙

2025 iThome 鐵人賽

DAY 6
0
Software Development

Clean Architecture 無瑕的程式碼:國中生阿吉的暑期閱讀筆記系列 第 6

Day6:SRP 單一職責(AI prompt 也要學習專注)

  • 分享至 

  • xImage
  •  

今日主題:

複習一下:SOLID 五個小規則

S — 單一職責原則 (Single Responsibility) 👈 現在在這裡 👈
一個角色只做一件事。

O — 開放封閉原則 (Open/Closed)
可以增加功能,不用大改原本的東西。

L — 里氏替換原則 (Liskov Substitution)
換掉一個零件,整台機器還能正常運作。

I — 介面隔離原則 (Interface Segregation)
不要一本「超大菜單」,要分成小本子,清楚又好用。

D — 依賴反轉原則 (Dependency Inversion)
插頭對準插座,不管是插電腦還是插充電器都能用

簡單記:

單一職責原則 = 一個角色(Actor 或 Agent)只要做好一件事。
就像每個班級幹部或同學都有分工。
每個 Agent 專心一件事,就不會亂掉。

https://ithelp.ithome.com.tw/upload/images/20250920/20107703Mnrpit5zSp.png

flowchart TD
    班長 -->|管理秩序| 管秩序
    小明 -->|算數學題| 算數
    小芳 -->|蓋章打勾| 檢查作業
    小美 -->|寫日記| 寫班級日誌

範例故事:

開學後學會的第一件事。
隨著功課越來越多,一開始阿吉只用腦袋記,
回家一開心吃點心,就忘記了。
就像寫在白板,一擦就沒了。

後來他學會寫進 聯絡簿
就像把程式資料存到 資料庫(Supabase)
安全又能隨時翻出來看,不再怕忘記。

https://ithelp.ithome.com.tw/upload/images/20250920/20107703vz2eqGvimI.png

在程式中的應用:

Code Review container.ts :

const articleRepo = envReadyForSupabase()
  ? new SupabaseArticleRepository()
  : new InMemoryArticleRepositoryAsync();

const blogService = new BlogService(articleRepo);
export const articleController = new ArticleController(blogService);

程式裡有一個「容器 (container)」,
它的工作就像是「大總管」,
決定要用哪一種「資料盒子」:
測試 → 用假的(InMemory)。
真實 → 用真的(Supabase)。

好處:

  • 不用改一堆程式,就能切換環境。
  • 建立東西的思考邏輯集中在一起,比較好維護。

小結與思考:

  • 我能不能把「開發時」跟「正式使用時」的程式分清楚?像 Supabase 跟 InMemory 設計這樣
  • 如果有很多 AI 助手一起合作,他們要怎麼分工才不會吵架?
  • 當 AI 要加新工具,例如搜尋期刊資料,我該把它放在哪個位置?
  • 如果 AI 要做「不同螢幕大小的網頁 (RWD)」,它會怎麼分工處理呢?

上一篇
Day5:程式裡的規則們(用 SOLID 當小偵探、用故事書寫自己的故事)
系列文
Clean Architecture 無瑕的程式碼:國中生阿吉的暑期閱讀筆記6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言