-
Notifications
You must be signed in to change notification settings - Fork 65
Open
Labels
enhancementNew feature or requestNew feature or request
Description
原本作法的問題 / Existed Problem
Go wiki 建議把 interface 宣告在使用它的 package 而非實作它的 package,這樣可以避免不必要的 dependency 以及未來 refactor 的成本。
依此原則,例如 Repository
應該被宣告在 package usecase
而非 package repository
。
若將來有多個 package 需要共用同一個 interface 宣告,再把它移到獨立的 package 即可。
(一樣原則是放在使用者這邊而非實作者)
另外還有像 Usecase
、Logger
之類目前看起來沒有直接用途的 interface,建議可以先移除。
實作細節 / Details of Implement
檢視現有的 interface,如果沒有直接用途就改用一般的 struct,視情況改寫 test。
把有必要存在的 interface 宣告移動到使用它的 package。
期程 / Schedule
- 討論時間:一週 (review 現有的 code)
- 實作時間:一週
相關文件 / Documents
PichuChen
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request