软件项目的目录结构
对于一个优秀的程序员而言,不仅仅是编写代码的能力很强,技术高深,还有着强大的组织文件结构以及程序版式能力,这些虽然不会影响着程序的运行效果,但是能体现一个优秀程序员的专业素质,更能够帮助我们清晰的理解和阅读!
故事背景:最近一个朋友问了我一个问题,然后引发了我写这篇文章的冲动,通过自身的经验给大家分享下要有一个软件工程的概念!
A代表我的朋友,M代表我自己
A:东哥,我们老板给了我一个VS2010的MFC源码工程,我怎么启动它,怎么生成exe,生成的exe在哪?等等等
M:你把压缩包发给我,我瞅一眼,我拿到之后解压,如下图
M:大飞,你知道这几个文件是干嘛的吗?如:bin,source之类的,你知道如何启动这个项目吗?
A:不知道,这不是好几个项目吗?我看那么多文件,我都不知道是干啥的
M:大飞啊,你怎么工作这么久了,连一个软件工程的概念都没有呢,一个工程的目录结构source,include,lib,bin等你都不知道是干啥的?你平时开发就一个文件夹吗?你这个差的有点太远了啊!!!(我差点气出血)
好了,说了这么多,我用我的自身经验给大家讲解下软件目录结构以及拿到一个新的项目之后你怎么去分解、解读、启动等一系列过程
一、软件工程中的常见目录结构:
1、Include目录下用于存放应用程序的头文件集合,也就是.h文件集合,在这个目录下面还可以根据需要划分子目录。
2、Source目录用于存放应用程序的源代码文件集合,也就是.c或者.cpp文件集合,在这个目录下也可以根据需要进行划分子目录。
3、Resource目录用于存放应用程序的一些资源文件,比如图片、视频、音频、对话框、图标以及光标等等,同样也可以划分几个子目录,便于管理。
4、Shared目录用于存放应用程序的一些共享文件。
5、Debug目录用于存放应用程序进行调试时的调试版本产生的中间文件。
6、Release目录用于存放应用程序进行发布时的发布版本产生的中间文件。
7、Bin目录用于存放程序猿自己创建的lib文件或dll文件。
这个软件的目录结构网上一大堆,我这里只是简单的介绍,有兴趣的可以上网多查一些相关资料
二、拿到一个陌生的工程,领导让我把他运行起来,我该怎么做?(这里我用一个QT工程来讲解吧,一个成熟的程序猿写的软件目录结构应该是很清晰的)
1、千万不要慌,再牛逼的项目也是人写的。
2、首先我要找到这个工程的.pro文件,它可能在source文件下或者根目录下,用QTCreator把它打开,这样你的工程就加载进来了
3、可以简单的编译下,让他跑起来,然后通过界面,自己点点,操作一下,大概了解这个软件是做什么的,或者通过软件说明书在配合界面的点击了解下
4、那么我要对这个项目做一个维护工作,添加工程之类的,那我怎么入手呢?
5、找到整个工程的main函数,然后通过函数的跳转以及界面的配合,来对整个项目做一个大概的定位,了解每个类,甚至每个方法是做什么的
6、之后再对这个项目进行增删该查不就很清晰了吗?
今天就先讲到这里,如果大家有什么疑问,随时留言,一块进步一块成长。