June 22 10:01~11:14
這學期Teddy在北科大資工所兼任軟體架構課程,轉眼下禮拜就要學期結束。Teddy在網路上找了幾個外國鄉民實作的Clean Architecture程式範例,請學生當作期末報告。聽完學生報告,今天選了四個相對簡單易懂又可以反應Clean Architecture精神的範例推薦給鄉民們參考。
***
範例介紹
範例1:Real Life Clean Architecture
- 參考網址:https://goo.gl/nZgbTT
- 程式碼:https://goo.gl/BdPngq
- 語言:Java
- 範例用途:取得網路設備相關資訊。
範例2:A complete idiot’s guide to Clean
- 參考網址: https://goo.gl/Be8RGN
- 程式碼:https://goo.gl/EPkjhD
- 語言:Android/Java
- 範例用途:餐廳訂位App,可顯示地區清單,從選定的地區取得餐廳資料並預訂座位。
範例3:A Clean Architecture in .Net
- 參考網址:https://goo.gl/W6Tp4F
- 程式碼:https://goo.gl/9KWdVu
- 語言:C#
- 範例用途:線上房地產平台,請客戶留下資料讓房地產代理人可聯繫有興趣的客戶。
範例4:Architecting Android...The clean way?
- 參考網址:https://goo.gl/VwuQC1
- 程式碼:https://goo.gl/M8Qike
- 語言:Android/Java
- 範例用途:顯示使用者與其朋友列表,並可查看他們的詳細資料。
***
學習重點
在觀看範例程式時,可留意以下幾個重點:
專案結構:一個專案還是多個專案?如果是多個專案,分了那些專案,為什麼?專案之間的相依性為何?
有哪些Entity物件?
如何實作Use Case雙向介面?Use Case的Input與Output介面以及資料結構如何定義?由誰實作?
Use Case是否採用Command方式實作?
如何處理物件跨層的問題?
Interface Adapter這層有哪些物件?如何跟 Use Case溝通?
是否如《Clean Architecture》書中所示套用MVP?
是否有使用View Model?
範例是否遵循dependency rule?
是否有外層(low level)物件跨層參考內層(high level)的物件?例如 controller直接參考entity。
如何實作Repository?
如何實作View?
***
結論
《Clean Architecture》這本書讀起來不難,但有很多實作細節需要注意,如果自己不動手做過一次不容易發現箇中奇妙之處。一邊自己動手練習,同時參考別人的範例,學習效果可收加倍之效。
***
友藏內心獨白:實作方式有很多種。
沒有留言:
張貼留言