6

Robert C. Martin 在他关于清洁架构的一次演讲中公开批评了当今相当标准的做事方式。 Robert C. Martin - 清洁建筑和设计

我的理解standard way是这样的:

solution
    - UI project
        - Models
        - Views
        - Controllers
        - Assets
    - Logic project
    - Data project

Martin 在这里说,当您查看其顶级目录结构时,应用程序应该立即显示其用途......我想知道,任何人都可以提供这种目录结构的示例,例如使用 MVVM 模式作为交付机制时?如何按照 Martin 所描述的方式构建他的应用程序?

4

2 回答 2

2

从我在您的示例中看到的内容,我只能猜测它是一个 ASP.NET MVC 应用程序,我们需要查看LogicData项目以了解此应用程序的含义。

大多数时候,人们根据所使用的技术或框架来组织他们所有的目录结构。这来自默认项目模板的创建方式(对您的应用程序应该做什么一无所知,他们真的不能为我们做更多的事情)。

现在,Robert C. Martin 告诉我们的是,我们的顶级目录结构应该反映应用程序的功能,而不是它的构建方式。我不确定在解决方案级别这样做是个好主意。但是,如果我们可以应用域驱动程序设计原则,我总是建议有一个Domain项目。

如果在此类项目中,您在根级别看到以下文件夹:

Clients
Orders
Billing
Shipping
Promotions
...

你可以猜到它是某种电子商务应用程序。如果您找到的文件夹类似于或Models,您将不得不更深入地了解目录结构。 DTOsExceptions

我不喜欢在我的解决方案中有太多项目(如果可能的话,少于 10 个),所以我不会去为我的系统的每个域对象创建一个项目。这就是为什么我认为项目的根本级别而不是解决方案是我们应该将注意力集中在定义应用程序正在做什么上。

于 2013-04-14T19:35:11.080 回答
0

他并不是在谈论一种放弃应用程序目的的结构。他说,在顶层应该有用例,以便您可以快速了解它的作用以及需要更改代码的地方。我认为他根本不是在谈论文件夹名称。更多信息可用性。

于 2013-04-14T15:29:17.907 回答