我经常看到其他开发人员用“CORE”来命名库。它实际上是什么意思?
7 回答
在我看来,CORE 意味着不可缺少的东西。数学函数和其他具有实用目的的函数不在核心中。它们是“实用程序”。
核心是让其他一切都存在的那部分——没有它,其他的就毫无意义。其他不在核心中的东西可以(并非总是通过设计)被删除。
我使用该约定,它基本上是一个核心类库,其中包含通用实用程序类和代码,在它们自己的库中确实没有位置。
例如,对许多类的扩展方法、额外的数学函数等。这些东西还不足以保证为他们提供一个完整的其他项目。
其他人是什么我不知道。
这可能会被认为是异端邪说,但经过几年为数据访问、业务逻辑等单独的项目构建解决方案后,我更有可能将这些层放入一个名为 MyApp.Core 的项目中,以便作为基本解决方案将仅包含核心项目和 UI 项目。这并不是说永远不需要或添加其他项目(例如 MyApp.Tests),而是说基本结构将基于这两个。
编辑:根据评论中的建议进行删节。
我将核心视为应用程序的抽象核心。核心通常实现足够的逻辑来定义整个应用程序的行为。
所以在我看来,数据访问和展示不应该是核心的一部分。这允许 Web 和桌面应用程序共享相同的核心模块。
在您的情况下,我将在核心模块中包含业务逻辑、错误处理和配置。
我也相信拥有一个大核心模块的主要原因是为了避免不得不维护许多小模块的成本。
根据这里已经发布的答案,显然没有定义“核心”的“标准”方式,因为它与开发库有关。
所以我不会担心是否“正确”。使用您认为合适的术语。
我认为核心是您可以从该供应商处使用的任何其他库的先决条件。因此,虽然供应商可能会提供几个独立的软件包,但它们都依赖核心来完成工作。否则可能导致严重的代码重复。