普通与核心 - 区别

Common vs Core - difference

假设我们有几个库。 CoreCommon 库有什么区别?他们应该如何被认可,我们如何组织两者的责任?

+Common
  -Class1
+Core
  -Class2
+Lib1 has : Common
+Lib2 has : Core, Common

Common 是否应该真正通用(即所有库都使用它)?还是Common只给需要的人?

重构/创建项目时有什么好的做法?

我不太明白Core和Common的区别

我认为这在很大程度上取决于您的特定应用程序。在单个集中式应用程序中,我确实认为 CoreCommon 文件夹之间可能有一点重叠。但最重要的是,它对 您的 应用有意义。不要因为在其他应用程序中看到过这些文件夹就觉得需要这些文件夹...

对我来说,拥有一个 Core 和一个 Common 文件夹在某些情况下很有意义 - 例如带有 API 和客户端的网络应用程序。您可能在 API 侧有您的 Core 文件夹,其中 core 执行(业务逻辑)发生,然后有一个 Common文件夹中包含一些您在 API 和客户端都需要的东西 - 例如,Http 请求验证或 Json 转换器。

无论如何,在其他类型的应用程序中有一个 Core 和一个 Common 文件夹可能是有意义的。
例如,Core 文件夹将包含那些 类,它们是您应用程序的 中心 - 绝大多数业务模型 类 都在那里。
另一方面,在 Common 文件夹中,您可以共享其他一些 类,但不能共享 central - 例如 Logger或者 MessageSender 可能在那里...

至于你的代码结构小草稿,我认为你的 Core 包是要修改的 - 为什么 Lib1 不使用 Core?如果某个东西是核心,通常是因为其他一切都需要它才能运行。如果您没有概念上 central 的代码,也许您可​​以删除 Core 包并仅保留 Common?

至于你的其他问题——我不认为 Common 东西必须由 所有 其他包共享,但只有 2 个或更多包共享一些东西,可以认为是普通.