【问题标题】:Typical rule of thumb for dividing pieces of code into seperate projects将代码片段划分为单独项目的典型经验法则
【发布时间】:2010-08-28 15:09:32
【问题描述】:

我想知道何时将代码和项目的组件划分为单独的项目。我正在创建一个 MVC .NET Web 项目,其中有很多目录/子目录,我什至还没有开始进入一些需要更多空间的后台进程。

我只是在努力组织项目和内部代码。

您应该什么时候开始将代码分成不同的项目?你也可以举个例子吗?

谢谢

【问题讨论】:

    标签: .net project-management projects-and-solutions code-organization


    【解决方案1】:

    我经常看到以下方面的变化:

    • 网络应用
    • 服务层
    • 业务层
    • 数据层
    • 单元测试
    • 集成测试

    获得想法的一种方法是搜索 asp.net MVC 开源项目,看看他们是如何做到的。

    您可以查看CodeCampServer。他们使用Onion Architecture 来布局他们的项目。

    洋葱架构与上面列出的不同,他们有一个很棒的explanation of why(网络广播)。

    图片取自上述网页。

    洋葱架构的主要原则:

    •该应用程序是围绕一个 独立对象模型•内部 层定义接口。外 层实现接口 •耦合方向朝向 center •所有应用核心代码都可以 被编译和运行分开 基础设施

    带有开源示例的 Onion Architecture 链接为您提供了何时/为什么的推理,以及一个具体的示例,看看您是否喜欢它。

    【讨论】:

      【解决方案2】:

      在我的应用程序中,将代码分离到不同项目中的目的通常是为了实现代码重用。确实没有什么硬性规定,但这里有一些我尝试遵循的原则。

      对于代码重用,我会考虑我编写的类是否可以在不同的上下文中使用。例如,如果我有一个与数据库通信的 ASP.NET 网站,则数据访问代码可能会在基于 Windows 的应用程序中重用,因此将其纳入自己的库是一个很好的候选。

      我创建扩展方法以方便地操作字符串、流或其他常见事物。这些,我考虑到一个库中,供所有应用程序共同使用。

      总之,尽量将您的项目组织成相关类的高度内聚集合,并避免创建无所不能的项目。您会发现高度内聚的项目更有可能被重用,从而节省您的时间和您的雇主的资金。

      【讨论】:

        猜你喜欢
        • 2021-07-16
        • 1970-01-01
        • 1970-01-01
        • 2021-12-28
        • 2022-11-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多