對於一個優秀的程序員而言,不單單是編寫代碼的能力很強,技術高深,還有着強大的組織文件結構以及程序版式能力,這些雖然不會影響着程序的運行效果,可是能體現一個優秀程序員的專業素質,更可以幫助咱們清晰的理解和閱讀!程序員
故事背景:最近一個朋友問了我一個問題,而後引起了我寫這篇文章的衝動,經過自身的經驗給你們分享下要有一個軟件工程的概念!函數
A表明個人朋友,M表明我本身3d
A:東哥,咱們老闆給了我一個VS2010的MFC源碼工程,我怎麼啓動它,怎麼生成exe,生成的exe在哪?等等等調試
M:你把壓縮包發給我,我瞅一眼,我拿到以後解壓,以下圖視頻
M:大飛,你知道這幾個文件是幹嗎的嗎?如:bin,source之類的,你知道如何啓動這個項目嗎?blog
A:不知道,這不是好幾個項目嗎?我看那麼多文件,我都不知道是幹啥的圖片
M:大飛啊,你怎麼工做這麼久了,連一個軟件工程的概念都沒有呢,一個工程的目錄結構source,include,lib,bin等你都不知道是幹啥的?你平時開發就一個文件夾嗎?你這個差的有點太遠了啊!!!(我差點氣出血)資源
好了,說了這麼多,我用個人自身經驗給你們講解下軟件目錄結構以及拿到一個新的項目以後你怎麼去分解、解讀、啓動等一系列過程開發
1、軟件工程中的常見目錄結構:源碼
一、Include目錄下用於存放應用程序的頭文件集合,也就是.h文件集合,在這個目錄下面還能夠根據須要劃分子目錄。
二、Source目錄用於存放應用程序的源代碼文件集合,也就是.c或者.cpp文件集合,在這個目錄下也能夠根據須要進行劃分子目錄。
三、Resource目錄用於存放應用程序的一些資源文件,好比圖片、視頻、音頻、對話框、圖標以及光標等等,一樣也能夠劃分幾個子目錄,便於管理。
四、Shared目錄用於存放應用程序的一些共享文件。
五、Debug目錄用於存放應用程序進行調試時的調試版本產生的中間文件。
六、Release目錄用於存放應用程序進行發佈時的發佈版本產生的中間文件。
七、Bin目錄用於存放程序猿本身建立的lib文件或dll文件。
這個軟件的目錄結構網上一大堆,我這裏只是簡單的介紹,有興趣的能夠上網多查一些相關資料
2、拿到一個陌生的工程,領導讓我把他運行起來,我該怎麼作?(這裏我用一個QT工程來說解吧,一個成熟的程序猿寫的軟件目錄結構應該是很清晰的)
一、千萬不要慌,再牛逼的項目也是人寫的。
二、首先我要找到這個工程的.pro文件,它可能在source文件下或者根目錄下,用QTCreator把它打開,這樣你的工程就加載進來了
三、能夠簡單的編譯下,讓他跑起來,而後經過界面,本身點點,操做一下,大概瞭解這個軟件是作什麼的,或者經過軟件說明書在配合界面的點擊瞭解下
四、那麼我要對這個項目作一個維護工做,添加工程之類的,那我怎麼入手呢?
五、找到整個工程的main函數,而後經過函數的跳轉以及界面的配合,來對整個項目作一個大概的定位,瞭解每一個類,甚至每一個方法是作什麼的
六、以後再對這個項目進行增刪該查不就很清晰了嗎?
今天就先講到這裏,若是你們有什麼疑問,隨時留言,一塊進步一塊成長。