python軟體開發目錄 軟體開發目錄規範

2021-10-17 01:14:54 字數 1733 閱讀 5656

為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要。軟體的目錄規範並無硬性標準,只要清晰可讀即可,假設你的軟體名為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依賴庫都裝好了,具體格式參照

軟體開發目錄規範

為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要,簡而言之就是把軟體 分檔案目錄。假設你要寫乙個atm軟體,你可以按照下面的目錄結構管理你的軟體 atm core src.py 業務核心邏輯 api api.py 介面檔案 db db handle.py ...

軟體開發目錄規範

為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要。軟體的目錄規範並無硬性標準,只要清晰可讀即可,假設你的軟體名為foo,筆者推薦目錄結構如下 foo core 存放業務邏輯相關 core.py api 存放介面檔案,介面主要用於為業務邏輯提供資料操作。ap...

軟體開發目錄規範

api 存放介面檔案,介面主要用於為業務邏輯提供資料操作 api.py 應用程式程式設計介面 bin 整個專案的啟動檔案放置在這個資料夾中 start.py 啟動軟體入口 conf 整個專案的配置檔案放置在這個資料夾 settings.py 配置檔案 比如存放一些固定的路徑 core 整個專案的核心...