我通常为我的项目创建一个单独的类库,然后将其分解为文件夹
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
唯一的白名单。
我不认为它应该有它自己的文件夹,因为它只是一个文件,但同时我不喜欢只在根目录中。
有什么建议将类文件放在不属于自己文件夹的位置吗?
答案 0 :(得分:1)
有时我创建了一个“Utilities”文件夹,其中包含其他内容。事情通常会去那里,然后一旦他们有其他类似的类别迁移到其他地方......但有时他们会呆在那里。当然,这对个人偏好非常主观。
答案 1 :(得分:1)
作为一般的经验法则,我将新的类文件放在另一个调用它的类的根目录中。如果我得到5个或更多类似的类,我将创建一个文件夹并将它们放在同一级别的文件夹中。
答案 2 :(得分:0)
我会把它放在调用它的代码的类中。否则只要给它自己的文件夹,不能保证它永远是唯一属于那里的类。不过,我认为这是一个意见问题,而不是一个具体答案的问题。
答案 3 :(得分:0)
我们停止使用这种结构。它最终有像“枚举”,“接口”,“实体”这样的文件夹。当您为功能编写代码时,假设功能“orders”,您需要所有名称空间来获取所需的类型,因为与订单相关的类在整个地方分布。所以我们改为面向功能的结构,其命名空间如“orders”,“articles”,“users”等等。
.Net naming guidelines, Names of Namespaces中有一条建议:
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
哪个功能属于HtmlWhiteList
?安全吗?到客户会话?我不能告诉你,因为我不知道它是什么。
答案 4 :(得分:0)
如果你不知道它做了什么或者谁使用它,因此你不知道放在哪里,或者它做的事情是微不足道的,所以它不值得拥有一个地方,然后完全删除它。
如果你认为它不被认为被删除,那么它应该得到一席之地。
如果几乎没有使用它,那么你应该确切地知道是谁使用它以及它对它们有什么影响 - 那么你应该立即知道它放在哪里:靠近它们的地方。
如果没有这样的地方,请创建并与之共存。随着项目的发展,当一个更好的地方变得物质化时,你总能将它移动到那里。看看你的项目结构,如果它是真正的实用程序,那么服务不是用于“BusinessLogic”,而是用于服务和实用程序。如果您将BL作为“服务”,那么这是您的选择,但这并不意味着所有服务都是BL。
如果此类的分散用户太多,以至于您无法确定谁更重要或更相关,那么将其创建为新的模块/库/文件夹,因为它被大量使用,实际上很重要。