首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >项目解决方案结构

项目解决方案结构
EN

Stack Overflow用户
提问于 2015-03-09 09:11:21
回答 1查看 624关注 0票数 0

我正在计划一个新的项目,我将在C++开发。我需要一个好的解决方案结构,一个快速的项目概述。我的项目是一个基于tcp的服务器。此服务器能够将文件和文本从客户端保存到数据库或文件系统上。服务器还可以从数据库向客户端发送文件和数据。我的结构应该是:

代码语言:javascript
运行
复制
Solution
- main.cpp
- DataAccess
--- Header
--- Source
- Business
--- Header
--- Source
- CrossCutting
--- Header
--- Source
- Server
--- Header
--- Source
--------------------------------
- External Dependencies
- Tests (Unit and Integration)
- Documentation

这是我的主意。这里介绍一下这个文件夹结构:

DataAccess:这是逻辑和数据之间的连接(数据库,io)

商业:这是所有的逻辑。只有业务才能访问数据访问层。

服务器:这是我的服务器层。客户请求将在那里处理。只有服务器层可以访问业务层。

CrossCutting:这个层有点特别。这里有一些功能,类,实体等等,它们将在几个层次中被需要。

我认为其他文件夹应该是透明的。如果没有,让我知道他们。你对这个解决方案结构有什么看法?这是一个好的开始,还是我需要返工?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-09 09:50:42

你对这个解决方案结构有什么看法?这是一个好的开始,还是我需要返工?

这是一个很好的开始;它可能需要一些返工:)

如果你在考虑一个项目,这是很好的。理想情况下,您应该将其分成多个项目(作为单独的lib/dll项目),并有一个包含main.cpp并启动应用程序/服务器/服务的主项目。

分成多个项目的好处:

  • 每个项目的依赖项划分
  • 改进了代码的可测试性
  • 责任分离是强制执行的(超过一个项目),内部协议的正规化更好(至少在理论上是如此-您必须注意将内部协议正规化)。

我会考虑以下的改变:

根//项目根、源代码管理根等

  • ExternalDependencies
  • 文档
  • 钢筋混凝土
    • 链接到以下四个项目和测试的解决方案文件
    • 测试
      • 在这里包含测试项目,每个项目都在它自己的目录中

代码语言:javascript
运行
复制
- Application [dir] 
    - main.cpp
    - main project file (.vcxproj I think)

代码语言:javascript
运行
复制
- DataAccess 
    - headers and sources, not split into separate directories (because this is the visual studio default and it will decrease mistakes caused by default settings in visual studio)
    - project file

代码语言:javascript
运行
复制
- Business [same structure as DataAccess] ...

我还将在解决方案文件附近定义一些公共属性页,其中我将指定公共构建和临时构建目录,然后根据项目继承这些属性页;这将集中构建工件和二进制文件,并简化公共设置的编辑。

注意:我目前正在处理一个相对较大的项目(在解决方案中大约有180个项目),使用此结构。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28938373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档