清洁架构 History/Activity 日志记录

Clean Architecture History/Activity Logging

记录用户操作的时间应该放在哪里,是域层还是表示层?

If Presentation Layer (Assuming MVP): Presenter调用interactor/usecase后,会调用另一个usecase来添加 activity/history 日志。

If Domain Layer: interactor/usecase自己做动作后,会保存到history/activity日志存储

如果 history/activity 日志是表示层的一部分,我感到困惑,因为 text/action 将是日志(例如字符串:用户喜欢此评论)看起来在域层上不需要。

但是如果历史记录是应用程序逻辑的一部分,我也很困惑,这是域层。因为如果我把它放在 Domain 层,日志文本格式将被硬编码在 usecase/interactor.

这取决于你想达到什么目的。如果您只想收集用户最常使用的 UI 元素和 UI 的哪些部分,将日志记录添加到表示层可能就足够了。

如果您的重点是记录您的用户最常使用的功能以及使用方式,那么记录应该在域 Layer/Application 层中。在这种情况下,决定为每个 "activity" 记录哪些信息是业务规则的一部分。 您可能希望使用类似于存储库模式的东西来使域层独立于日志的实际写入。