軟體目錄結構規範

2021-10-11 02:10:39 字數 2071 閱讀 7049

一:前言

無規矩不成方圓,乙個規範化的目錄結構,能夠讓程式就有更高的可讀性。如果是乙個生產專案的話,良好的**風格和目錄結

構,能夠極大提高專案的可維護性(畢竟乙個專案不是用一次就不用了)。總而言之,我們設計乙個層次清晰的目錄結構,就是

為了達到下面的兩個目的

可讀性高:不熟悉這個專案的人,一眼就能看懂目錄結構,知道程式的啟動指令碼是哪個,測試目錄是哪個,配置檔案在**,從而更加快速的了解這個專案

可維護性高:定義好規則後,維護者能夠明確知道,新增的檔案和**應該放在什麼目錄下,隨著時間的推移,**/配置的規模越來越大,專案結構不會混亂,仍然能夠組織良好

二:目錄組織方式

常見的目錄組織形式,假設你要建立乙個名為foo的專案

foo/

|-- bin/

| |-- foo

||-- foo/

| |-- tests/

| | |--init.py

| | |-- test_main.py

| || |--init.py

| |-- main.py

||-- docs/

| |-- conf.py

| |-- abc.rst

||-- setup.py

|-- requirements.txt

|-- readme

2.1 目錄解釋

1.bin/: 存放專案的一些可執行檔案,當然你可以起名script/之類的也行

2.foo/: 存放專案的所有源**。(1) 源**中的所有模組、包都應該放在此目錄。不要置於頂層目錄。(2) 其子目錄tests/存放單元測試**; (3) 程式的入口最好命名為main.py。

3.docs/: 存放一些文件。

4.setup.py: 安裝、部署、打包的指令碼

5.requirements.txt: 存放軟體依賴的外部python包列表。

6.readme: 專案說明檔案。

2.2 readme中的內容

軟體定位,軟體的基本功能。

執行**的方法: 安裝環境、啟動命令等。

簡要的使用說明。

**目錄結構說明,更詳細點可以說明軟體的基本原理。

常見問題說明

2.3 setup.py說明

乙個專案要有乙個安裝部署工具,讓**盡快跑起來,實現"複雜的東西自動化,能自動化的東西一定要自動化」的想法

setup.py可以把安裝依賴等各種事情自動化起來,提高效率,減少出錯的概率。

當然寫乙個安裝指令碼(deploy.sh)替代setup.py也是很好的做法

2.4 requirements.txt說明

存在的目的下面兩點:

方便開發者維護軟體的包依賴。將開發過程中新增的包新增進這個列表中,避免在setup.py安裝依賴時漏掉軟體包。

方便讀者明確專案使用了哪些python包。

這個檔案的格式是每一行包含乙個包依賴的說明,通常是flask>=0.10這種格式,要求是這個格式能被pip識別,這樣就可以簡單的通過 pip install -r requirements.txt來把所有python包依賴都裝好了

2.5 關於配置檔案的說明

上面的目錄介紹中:沒有將conf.py放在原始碼目錄下,而是放在docs/目錄下

常用專案使用方法:

配置檔案寫在乙個或多個python檔案中,比如此處的conf.py。

專案中哪個模組用到這個配置檔案就直接通過import conf這種形式來在**中使用配置。

更好的方案

模組的配置都是可以靈活配置的,不受外部配置檔案的影響。

程式的配置也是可以靈活控制的

證明:nginx、mysql這些程式都可以自由的指定使用者配置。

通過給main.py啟動引數指定配置路徑的方式來讓程式讀取配置內容。當然,這裡的conf.py你可以換個類似的名字,比如

settings.py。或者你也可以使用其他格式的內容來編寫配置檔案,比如settings.yaml之類的。

三:總結

好的目錄結構給人心曠神怡的感覺,成為大佬的必經之路。以後慢慢學,持續總結更新。

軟體目錄結構規範

金角大王 為什麼要設計好目錄結構?設計專案目錄結構 就和 編碼風格 一樣,屬於個人風格問題。對於這種風格上的規範,一直都存在兩種態度 一類同學認為,這種個人風格問題 無關緊要 理由是能讓程式work就好,風格問題根本不是問題。另一類同學認為,規範化能更好的控制程式結構,讓程式具有更高的可讀性。我是比...

軟體目錄結構規範

專案目錄結構 是屬於 可讀性和可維護性 的範疇,我們設計乙個層次清晰的目錄結構,就是為了達到以下兩點 所以,保持乙個層次清晰的目錄結構是有必要的。更何況組織乙個良好的工程目錄,其實是一件很簡單的事兒。關於如何組織乙個較好的python工程目錄結構,已經有一些得到了共識的目錄結構。在stackover...

軟體目錄結構規範

學習 python 目錄 專案目錄結構 是屬於 可讀性和可維護性 的範疇,我們設計乙個層次清晰的目錄結構,就是為了達到以下兩點 所以,保持乙個層次清晰的目錄結構是有必要的。更何況組織乙個良好的工程目錄,其實是一件很簡單的事兒。關於如何組織乙個較好的python工程目錄結構,已經有一些得到了共識的目錄...