為什麼要設計好目錄結構?
"設計專案目錄結構",就和"**編碼風格"一樣,屬於個人風格問題。對於這種風格上的規範,一直都存在兩種態度:
一類同學認為,這種個人風格問題"無關緊要"。理由是能讓程式work就好,風格問題根本不是問題。
另一類同學認為,規範化能更好的控制程式結構,讓程式具有更高的可讀性。
我是比較偏向於後者的,因為我是前一類同學思想行為下的直接受害者。我曾經維護過乙個非常不好讀的專案,其實現的邏輯並不複雜,但是卻耗費了我非常長的時間去理解它想表達的意思。從此我個人對於提高專案可讀性、可維護性的要求就很高了。"專案目錄結構"其實也是屬於"可讀性和可維護性"的範疇,我們設計乙個層次清晰的目錄結構,就是為了達到以下兩點:
可讀性高: 不熟悉這個專案的**的人,一眼就能看懂目錄結構,知道程式啟動指令碼是哪個,測試目錄在哪兒,配置檔案在哪兒等等。從而非常快速的了解這個專案。
可維護性高: 定義好組織規則後,維護者就能很明確地知道,新增的哪個檔案和**應該放在什麼目錄之下。這個好處是,隨著時間的推移,**/配置的規模增加,專案結構不會混亂,仍然能夠組織良好。
所以,我認為,保持乙個層次清晰的目錄結構是有必要的。更何況組織乙個良好的工程目錄,其實是一件很簡單的事兒。
目錄組織方式
假設你的專案名為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
簡要解釋一下:
django目錄結構:
▸ django/原始碼原始碼目錄:▸ docs/文件,**看的內容基本都在這裡面
▸ extras/格外的資訊,沒什麼用
▸ js_tests/測試js的**
▸ scripts/翻譯的檔案一類的東西
▸ tests/單元測試
authors 作者
contributing.rst 貢獻說明
gruntfile.js js構建配置grunt
install
license
license.python
manifest.
in打包配置
package.json js包配置
readme.rst
setup.cfg 打包
setup.py 打包
tox.ini 打包
▸ bin/▸ conf/工程模板,老的url配置
▸ contrib/第三方貢獻**,但也包含常用模組如auth、session等。
▸ core/核心包,快取、郵件、http處理等
▸ db/資料庫互動部分,model、field、sql就在這個裡面
▸ dispatch/signal處理的邏輯
▸ forms/form以及對應的元件
▸ http/request和response所在
▸ middleware/常用中介軟體
▸ template/模板引擎
▸ templatetags/內建的模板tag
▸ test/單元測試模組
▸ urls/現代化的url包
▸ utils/很多web開發中很實用的工具都在裡面
▸ views/ view層的內容都在這, cache、csrf、class-based view等
__init__.py
__main__.py
shortcuts.py 一些快捷方式
python軟體開發目錄 軟體開發目錄規範
為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要。軟體的目錄規範並無硬性標準,只要清晰可讀即可,假設你的軟體名為foo,筆者推薦目錄結構如下 foo core 存放業務邏輯相關 core.py api 存放介面檔案,介面主要用於為業務邏輯提供資料操作。ap...
軟體開發目錄規範
為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要,簡而言之就是把軟體 分檔案目錄。假設你要寫乙個atm軟體,你可以按照下面的目錄結構管理你的軟體 atm core src.py 業務核心邏輯 api api.py 介面檔案 db db handle.py ...
軟體開發目錄規範
為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要。軟體的目錄規範並無硬性標準,只要清晰可讀即可,假設你的軟體名為foo,筆者推薦目錄結構如下 foo core 存放業務邏輯相關 core.py api 存放介面檔案,介面主要用於為業務邏輯提供資料操作。ap...