Python入門之軟體開發目錄規範

2022-05-10 01:12:43 字數 1960 閱讀 8724

本章重點:

理解在開發人標準軟體時,如何布局專案目錄結構,以及注意開發規範的重要性。

一、為什麼要有好的目錄結構

二、目錄組織的方式

三、關於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檔案,將執行過程中產生的名字存放於包命名空間中 即包命名空間...