iT邦幫忙

2021 iThome 鐵人賽

DAY 3
0

Keyword: 單一職責 最小知道


單一職責與最小知道

在MVVM中,單一職責與最小知道原則是非常重要的.可以說是MVVM的核心概念也不為過.

單一職責

當某個組件需要對很多層級負責時,就很容易膨脹的非常快,成為所謂的God Object,最後甚至變成沒有人可以理解他在做什麼用就對了的黑盒子狀態.在MVC中就很常發生這個問題.

如果這個God Object只有Android或iOS自己使用的話倒還好

但是當今天要跨平台的時候,God Object無法照著預想中的去掌控全局,各平台也有獨立的特性,而這些特性可能不能共通.神在這裡也不是無所不能的.

https://github.com/officeyuli/itHome2021/raw/main/day3/god-is-dead.jpeg

在開始寫code之前,先問問自己,這行code是要做什麼的,它放在這邊對嘛?

最小知道

當某個組件知道了太多他在使用上不需要知道的東西,就很容易產生side effect . 明明我這次沒有修改到的東西,但是因為其他地方有引用.結果就壞掉了.

另外就是由於MVVM的設計,不會知道外面是怎麼使用自己,所以如果超出職責的資料,就容易被誤用.因此,下層的組件應該只提供最少的可行的資訊量給上層.

在開始寫code之前,先問問自己,我有必要要知道這個嘛?不知道這個我可以正常使用嘛?

把握住這些原則,在寫KMM的時候就更容易寫出一個優雅且解耦的專案

明天我們將會正式開始KMM的專案.


上一篇
Day 2:根基不牢,怎麼建高樓.來聊聊架構.
下一篇
Day 4:要玩KMM,你需要一台Mac....還有很大很大的容量.
系列文
挑戰 Kotlin Multiplatform Mobile 跨平台開發,透過共同的Kotlin模組同時打造iOS與Android應用!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言