-1

我通常为我的项目创建一个单独的类库,然后将其分解为文件夹

Services
 -all my .cs files that are service(business logic)

Data
 - Mapping 
   - nhibernate mapping files

Domain
  - domain files

我还创建了其他文件夹,例如我正在用foursquare做一些事情,所以对于所有class files它都在一个名为的文件夹中"foursquare"

但我不知道该放在哪里one off class files。例如,我有"HtmlWhiteList" class唯一的白名单。

我认为它不应该有自己的文件夹,因为它只是一个文件,但同时我不喜欢把它放在根目录中。

有什么建议将不值得拥有自己的文件夹的类文件放在哪里?

4

5 回答 5

1

有时我创建了一个包含其他东西的“实用程序”文件夹。事情通常会去那里,然后一旦他们有其他类似的类就迁移到其他地方......但有时他们会留在那里。当然,这对个人喜好非常主观。

于 2013-04-24T21:03:36.270 回答
1

作为一般的经验法则,我将新的类文件放在另一个调用它的类的根目录中。如果我得到 5 个或更多类似的课程,我将创建一个文件夹并将它们放在同一级别的文件夹中。

于 2013-04-24T22:17:05.600 回答
0

如果你不知道它做什么或谁使用它,因此你不知道把它放在哪里,或者它所做的事情是微不足道的,所以它不值得占有一席之地,那么将它完全删除。

如果您不认为它被视为已删除,那么它应该占有一席之地。

如果它很少使用,那么您应该确切地知道谁在使用它以及它对他们有什么影响 - 然后您应该立即知道将它放在哪里:靠近他们的某个地方。

如果没有这样的地方,那就创造它并与之共存。随着项目的发展,当一个更好的地方成为现实时,你总是可以把它移到那里。查看您的项目结构,如果它是真正的实用程序,那么 Service 不是用于“BusinessLogic”,而是用于服务和实用程序。如果您将您的 BL 建模为“服务”,那么这是您的选择,但这并不意味着所有服务都是 BL。

如果这个类有很多分散的用户,以至于你无法确定谁更重要或更相关,那么将它创建为一个新的模块/库/文件夹,因为它被大量使用并且实际上很重要。

于 2013-04-26T10:04:35.263 回答
0

我们停止使用这种结构。它最终拥有像“enums”、“interfaces”、“entities”这样的文件夹。当你为一个特性编写代码时,比如说特性“订单”,你需要所有的命名空间来获取你需要的类型,因为与订单相关的类分布在各处。因此,我们更改为具有“订单”、“文章”、“用户”等命名空间的面向特征的结构。

.Net 命名指南中有一条建议,Names of Namespaces :

<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]

属于哪个特征HtmlWhiteList?为了安全?到客户端会话?我不能告诉你,因为我不知道它是什么。

于 2013-04-26T10:01:33.467 回答
0

我只是把它和调用它的代码的类放在一起。否则只给它自己的文件夹,不能保证它永远是唯一属于那里的类。不过,我认为这更像是一个意见问题,而不是一个有具体答案的问题。

于 2013-04-24T21:02:22.447 回答