為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規范的編碼風格同等重要,軟體的目錄規范并無硬性標準,只要清晰可讀即可,假設你的軟體名為foo,筆者推薦目錄結構如下
Foo/
|-- core/ # 存放業務邏輯相關代碼
| |-- core.py
|
|-- api/ # 存放介面檔案,介面主要用于為業務邏輯提供資料操作,
| |-- api.py
|
|-- db/ # 存放操作資料庫相關檔案,主要用于與資料庫互動
| |-- db_handle.py
|
|-- lib/ # 存放程式中常用的自定義模塊
| |-- common.py
|
|-- conf/ # 存放組態檔
| |-- settings.py
|
|-- run.py # 程式的啟動檔案,一般放在專案的根目錄下,因為在運行時會默認將運行檔案所在的檔案夾作為sys.path的第一個路徑,這樣就省去了處理環境變數的步驟
|-- setup.py # 安裝、部署、打包的腳本,
|-- requirements.txt # 存放軟體依賴的外部Python包串列,
|-- README # 專案說明檔案,
簡要解釋一下:
? • core/: 存放業務邏輯相關代碼
? • api/: 存放介面檔案,介面主要用于為業務邏輯提供資料操作,
? • db/: 存放操作資料庫相關檔案,主要用于與資料庫互動
? • lib/: 存放程式中常用的自定義模塊
? • conf/: 存放組態檔
? • run.py: 程式的啟動檔案,一般放在專案的根目錄下,因為在運行時會默認將運行檔案所在的檔案夾作為sys.path的第一個路徑,這樣就省去了處理環境變數的步驟
? • setup.py: 安裝、部署、打包的腳本,
? • requirements.txt: 存放軟體依賴的外部Python包串列,
? • README: 專案說明檔案,
除此之外,有一些方案給出了更加多的內容,比如LICENSE.txt,ChangeLog.txt檔案等,主要是在專案需要開源時才會用到,請讀者自行查閱,
關于README的內容,這個應該是每個專案都應該有的一個檔案,目的是能簡要描述該專案的資訊,讓讀者快速了解這個專案,它需要說明以下幾個事項:
1、軟體定位,軟體的基本功能;
2、運行代碼的方法: 安裝環境、啟動命令等;
3、簡要的使用說明;
4、代碼目錄結構說明,更詳細點可以說明軟體的基本原理;
5、常見問題說明,
關于setup.py和requirements.txt:
一般來說,用setup.py來管理代碼的打包、安裝、部署問題,業界標準的寫法是用Python流行的打包工具setuptools來管理這些事情,這種方式普遍應用于開源專案中,不過這里的核心思想不是用標準化的工具來解決這些問題,而是說,一個專案一定要有一個安裝部署工具,能快速便捷的在一臺新機器上將環境裝好、代碼部署好和將程式運行起來,
requirements.txt檔案的存在是為了方便開發者維護軟體的依賴庫,我們需要將開發程序中依賴庫的資訊添加進該檔案中,避免在 setup.py安裝依賴時漏掉軟體包,同時也方便了使用者明確專案參考了哪些Python包,
這個檔案的格式是每一行包含一個包依賴的說明,通常是flask>=0.10這種格式,要求是這個格式能被pip識別,這樣就可以簡單的通過 pip install -r requirements.txt來把所有Python依賴庫都裝好了,具體格式參照https://pip.readthedocs.io/en/1.1/requirements.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/61868.html
標籤:Python
