Skip to content

[建議] 把 interface 宣告移到使用者處,並移除非必要的 interface #71

@lsc36

Description

@lsc36

原本作法的問題 / Existed Problem

Go wiki 建議把 interface 宣告在使用它的 package 而非實作它的 package,這樣可以避免不必要的 dependency 以及未來 refactor 的成本。
依此原則,例如 Repository 應該被宣告在 package usecase 而非 package repository
若將來有多個 package 需要共用同一個 interface 宣告,再把它移到獨立的 package 即可。
(一樣原則是放在使用者這邊而非實作者)

另外還有像 UsecaseLogger 之類目前看起來沒有直接用途的 interface,建議可以先移除。

實作細節 / Details of Implement

檢視現有的 interface,如果沒有直接用途就改用一般的 struct,視情況改寫 test。
把有必要存在的 interface 宣告移動到使用它的 package。

期程 / Schedule

  • 討論時間:一週 (review 現有的 code)
  • 實作時間:一週

相關文件 / Documents

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions