我理解为standard way
是这样的:
solution
- UI project
- Models
- Views
- Controllers
- Assets
- Logic project
- Data project
Martin在这里说,当你查看它的顶级目录结构时,应用程序应该立即显示它的用途...我想,任何人都可以提供这样的目录结构的例子,例如在使用MVVM模式作为传递机制时?如何以马丁描述的方式构建他的应用程序?
答案 0 :(得分:2)
从我在您的示例中看到的我只能猜测它是一个ASP.NET MVC应用程序,我们需要查看Logic
或Data
项目以了解此应用程序是什么关于。
大多数时候,人们根据所使用的技术或框架组织所有目录结构。这来自于创建默认项目模板的方式(对于您的应用程序应该做什么一无所知,它们实际上不能为我们做更多的事情。)
现在,Robert C. Martin告诉我们的是,我们的顶级目录结构应该反映应用程序的功能,而不是它是如何构建的。我不确定在解决方案级别这样做是个好主意。但是,我始终建议您申请Domain
项目,我们可以应用Domain Driver Design原则。
如果在此类域项目中,您在根级别会看到以下文件夹:
Clients
Orders
Billing
Shipping
Promotions
...
你可能会猜到它是某种电子商务应用程序。如果您找到的文件夹类似Models
,DTOs
或Exceptions
,则必须更深入地了解目录结构。
我不喜欢在我的解决方案中有太多项目(如果可能的话,在10以下),所以我不会为我的系统的每个域对象创建一个项目。这就是为什么我认为项目的根本级别不是解决方案,我们应该把注意力集中在定义应用程序正在做什么上。
答案 1 :(得分:0)
他并不是在谈论一个如此放弃申请目的的结构。他说,在顶层应该有用例,这样你就可以快速查看它的作用以及需要更改代码的位置。我不认为他在谈论文件夹名称。更多信息可用性。