技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 12 屆 iThome 鐵人賽
DAY
6
0
自我挑戰組
30天|入門NestJs連載學習筆記
系列 第
6
篇
D06 CH8 | OCP 開放-封閉原則
12th鐵人賽
azsx96385
團隊
Outcome First
2020-09-19 16:40:58
980 瀏覽
分享至
1. 一個好的軟體架構,可以將修改的程式碼量,降到最低程度,理想狀況為0
目標-使系統易於擴展,而不會因修改而產生較大的影響
透過將系統劃分為元件,並將元件安排到依賴階層中而實現的,這類階層結構可以保護較高層級的元件,免受到低層級元件的變更所影響
2. 越上層的元件,擁有越核心的商業邏輯
離I/O越遠的元件層級越高,離I/O越近的層級越
越上層的元件,擁有越核心的商業邏輯
用櫃檯小姐的故事來說明(參考連結1)
想像一下你(user)今天走進一間公司(I/O),負責接待你的,請你填寫資料的是櫃檯小姐(低層級-處理實作),如果你是來談一筆大生意的,你會經過櫃檯,走到最裡面的落地窗辦公室,老闆正在那準備跟你討論(高層級-核心商業邏輯),我覺得這個說法滿容易想像和理解的,完整內容,請參考下方連結
3. 什麼是元件?
大 [系統層級← 元件層級←模組層級←類別層級←程式碼層級 ] 小
可單獨部署的單位,是系統在部屬的最小部分實體
讀這篇的時候,我一直把元件和模組搞混,後續Ch12有針對元件做一個好像有說,又沒什麼用的定義,一切都是需要感覺,總之我自己認定的是,兩者差異在是否可以被獨立部署,或是說獨立啟動而不需要依賴其他模組,舉例來說像是微服務,我接受是元件,可獨立部署,且包含一個以上的模組
4. 如果元件A應該被保護免於受到“元件B的改變”影響,那麼元件B應該依賴元件A,A←依賴←B,B中會 import A ,B知道A,但A不知道B
(B)低層級實作細節,應該依賴於(A)高層級商業邏輯
前台客服,替顧客服務的內容(實作細節),應該遵守老闆的的規定(商業邏輯)
在這個部分,看懂書中p61頁的圖會滿有幫助的,其中有兩個重點,大板塊的是元件,箭頭的指向則是依賴關係,觀察依賴關係的時候,可以特別著重誰依賴誰,因此如果有變動,受影像的是哪一方,我認為本篇對我的學習重點是
學習使用 import 和看箭頭方向區分依賴關係,謹慎規劃不同模組或是類別間的依賴關係
理解 為何依賴方向,可以保護被依賴者,不受影響,資訊隱藏的好處
參考
搞笑談軟工-Clean Architecture(4):架構三原則首部曲—分層原則
留言
追蹤
檢舉
上一篇
D05 CH7 | SRP 單一職責原則
下一篇
D07 CH9 | LSP 替換原則
系列文
30天|入門NestJs連載學習筆記
共
26
篇
目錄
RSS系列文
訂閱系列文
1
人訂閱
22
D22 台南的散步點心
23
D23 台南|國慶煙火在漁光
24
D24 無暇程式碼-CH20 商業邏輯
25
D25 Ch 22 整潔的架構
26
D25 ch 22 整潔的架構
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22208
篇
完賽人數
600
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
安卓電視盒
虛擬機點啟動 卻出現錯誤
PDF影像資料不足
安裝DRIVER一問
請問大家都是如何進行部屬前的程式測試
關於pychram 安裝新的anaconda後設定完全亂掉了.求前輩們幫忙查看哪裡設定出錯了.
開啟wifi後在輸入帳密視窗卡住
Outlook 2010 更新到 Outlook 2024 時,行事曆不見了,怎辦?
POWER BI 抓MSSQL 資料,能法抓區間資料
Outlook 2007 常常無法收寄特定人的信
熱門回答
PDF影像資料不足
如何阻止系統再次安裝 KB5048652 更新(或某一個更新)
虛擬機點啟動 卻出現錯誤
POWER BI 抓MSSQL 資料,能法抓區間資料
RAID5 - Synology DickStation 自動更新已取消
熱門文章
使用LINE發報機房溫度/濕度 過高通知
每日一篇學習筆記 直到我做完專題 :( [Day41]
每日一篇學習筆記 直到我做完專題 :( [Day42]
探索容器資源限制:透過實驗理解 Docker 的 CPU 和記憶體調度 (2)
體驗SQL資料庫Day2:常用資料型態解析和資料操作
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}