我来自Web开发,我需要问C ++程序员如何管理基于模型的项目的目录?
我已经在Visual Studio C ++解决方案管理器中构造了我的项目,如下所示:
-> Header Files
--> Models
DatabaseEngine.interface.h
-> Resources
-> Source Files
--> Models
DatabaseEngine.cpp
--> Application
Core.cpp
Bootstrap.cpp
--> FrontController
---
我已经完全复制了Headers目录下Model的目录,并为其加上了".interface"
名称,因为它们是接口,并且它们的真正实现位于的镜像路径下Sources
。
我有一些自定义类型,例如DBConnection
我不知道将它们放在哪里?我应该将它们放在一个名为的文件中,CustomTypes.cpp
还是应该将它们与相关的父模型/类/对象相关联?
我关心的是约定和标准。
没有任何标准,C ++是一个非常开放的世界,您将看到;)
一切都是为了使最适合您的东西,但通常从已经尝试过的人那里获得建议就不会受到伤害。就个人而言,我尝试遵循这一惯例
/ProjectName
/src
/libs <- Libraries go here
/Models <- Assuming you want to make a library out of your models
User.h
User.cpp
... <- Putting header and implementations together is not a problem,
they should be edited in parallel oftentimes
/Utilities <- Should your library grow, you can make it more modular
by creating subdirectories
(that could contain subdirectories, etc.)
DBConnection.h
DBConnection.cpp
/apps <- define your applications here.
They probably rely on classes and functions defined in one or several of your libaries define above.
/ApplicationA
Core.h
Core.cpp
Bootstrap.h
Bootstrap.cpp
/resources
/doc
# Below are 'environment specific' folders.
/vs <- Visual studio project files
/xcode <- Xcode project files
.interface
部件可能不会花很多钱,并且可能会使您的IDE(或其他工具)感到困惑,否则它们可以将头文件与其实现文件相关联。C ++提供类的程序员定义自定义类型。在它们自己的头文件/实现文件对中定义自定义类型是很常见的。在您的情况下,DBConnection.h
将定义一个DBConnection类,该类的(非内联)方法将在中实现DBConnection.cpp
。
从个性上讲,我不怕为每种类型创建一对文件,这使将来的您和其他程序员更容易找到定义类型的文件。您可以通过制作子文件夹来管理数量不断增长的文件,这将迫使您模块化设计。
当然,有时您需要定义一个非常短的类,与另一个类紧密耦合。如果您认为两个类之间的链接足够牢固,则由您决定将这两个类都包含在一个共同的文件对中。
可能不是所有项目都需要关注,但是此目录结构在环境和构建管理方面可以扩展。将项目文件保留在顶层的单独文件夹中,并定义源代码外的构建,可以为其他IDE创建项目文件。
如果您应该采用这种方式,此层次结构也很容易接受CMake构建管理。甲CMakeLists.txt
文件将被放置在顶层,此文件调用(项目名/下)add_subdirectory(src)
,继而caling一个CMakeLists.txt
在项目名/ SRC /等
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句