本章重點:
理解在開發人標準軟體時,如何布局專案目錄結構,以及注意開發規範的重要性。
一、為什麼要有好的目錄結構
二、目錄組織的方式
三、關於readme的內容
四、關於requirements.txt和setup.py
一、為什麼要有好的目錄結構
好的設計專案目錄結構,就和編碼風格一樣,是每個程式設計師都有的風格,但是在流水化標準化作業過程中,個性和風格是不被鼓勵的。
如果你去維護乙個非常不好讀的專案,雖然實現邏輯並不複雜,但是對後續的維護者來說就是災難。
乙個層次清晰的目錄結構,可以提高程式的可維護性:
1. 可讀性高:
後續維護人員可以一眼看懂目錄結構,不必為複雜混亂的層次耗費大量精力。測試檔案在哪,配置檔案在哪會被放置在規範操作的地方,可以讓後續人員快速的了解這個專案。
2. 可維護性高:
看清目錄架構之後,維護者可以將後續新增的檔案和**按照規範放置在規定的地方,雖然後續**和檔案增多,但是專案目錄並不會混亂,仍然能夠快速組織良好
所以說,保持乙個層次清洗的目錄結構是非常必要的,也是體現乙個程式設計師思路和視野格局的乙個標準
二、目錄組織的方式
目前各個開發語言在工程目錄結構方面,已經取得了一些共識的目錄結構.
例如,如下的乙個簡單的atm目錄結構,開發人員可以快速的了解專案的啟動入口,使用者層模組,邏輯介面層模組,資料處理模組,日誌模組等等。
如下的foo專案,就是乙個清晰合理的目錄結構。
bin:/ 存放專案的一些可執行檔案,類似的有script/檔案
foo:/ 存放專案的所有源**
1. 源**中的所有模組、包都改放在這個目錄,不能放在頂層目錄
2. 子目錄tests/用來存放單元測試**
3. 程式的入口一般命名為main.py
docs:/ 存放一些文件
setup.py:/ 安裝,部署,打包指令碼
requirements.txt: 存放軟體依賴的外部python包列表
readme: 專案說明檔案
除此之外,一些開源軟體還會有lecense.txt, changelog.txt等檔案,目錄組織和這個類似。
三、關於readme的內容
readme在github中很常見,一般來說都是必備的。該檔案就要簡要的介紹該項目的資訊,讓讀者可以快速了解這個專案。
readme一般說明以下幾個事項:
1. 軟體的定位,軟體的基本功能
2. 執行**的方法,安裝的環境,啟動命令
3. 簡要的使用說明
4. **的目錄結構說明,可以詳細的說明軟體的基本原理
5. 常見問題說明
四、關於requirements.txt和setup.py
setup.py
一般來說,用setup.py來管理**的打包、安裝、部署問題。業界標準的寫法是用python流行的打包工具setuptools來管理這些事情,這種方式普遍應用於開源專案中。
不過這裡的核心思想不是用標準化的工具來解決這些問題,而是說,乙個專案一定要有乙個安裝部署工具,能快速便捷的在一台新機器上將環境裝好、**部署好和將程式執行起來。
requirements.txt
這個檔案存在的目的是:
1、方便開發者維護軟體的包依賴。將開發過程中新增的包新增進這個列表中,避免在setup.py安裝依賴時漏掉軟體包。
2、方便讀者明確專案使用了哪些python包。
這個檔案的格式是每一行包含乙個包依賴的說明,通常是flask>=0.10這種格式,要求是這個格式能被pip識別,這樣就可以簡單的通過 pip install -r requirements.txt來把所有python包依賴都裝好了。
python軟體開發目錄 軟體開發目錄規範
為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要。軟體的目錄規範並無硬性標準,只要清晰可讀即可,假設你的軟體名為foo,筆者推薦目錄結構如下 foo core 存放業務邏輯相關 core.py api 存放介面檔案,介面主要用於為業務邏輯提供資料操作。ap...
Python 入門之 軟體開發規範
當幾百行 大幾萬行 存在於乙個py檔案中時存在的問題 不便於管理 修改 可讀性差 載入速度慢 這時可以使用軟體開發規範,規範專案目錄結構,規範 遵循pep8規範,能夠更加清晰,合理的開發。領域 web開發,爬蟲,資料分析,資料探勘,人工智慧 零基礎到專案實戰,7天學習上手做專案 1 bin 啟動檔案...
python包,軟體開發目錄規範
包是模組的一種形式,包的本質就是乙個含有 init py的檔案的資料夾 當乙個模組功能太多的時候不方便進行管理,我們用包來進行管理 1.匯入包發生的三件事 建立乙個包的命名空間 由於包是乙個資料夾,無法執行包,因此執行包下的 init py檔案,將執行過程中產生的名字存放於包命名空間中 即包命名空間...