軟體開發的目錄規範:
為了提高程式的可讀性與可維護性,我們應該為軟體設計良好的目錄結構,這與規範的編碼風格同等重要。軟體的目錄規範並無硬性標準,只要清晰可讀即可,假設你的軟體名為foo,筆者推薦目錄結構如下
foo/解釋一下:|-- core/
| |-- core.py
||-- api/
| |-- api.py
||-- db/
| |-- db_handle.py
||-- lib/
| |-- common.py
||-- conf/
| |-- settings.py
||-- run.py
|-- setup.py
|-- requirements.txt
|-- 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、常見問題說明。
# src.py存放原始碼# encoding=utf-8
# auther:lsj
def exit():
print("退出功能")
def login():
print("登入功能")
def register():
print('註冊功能')
def witdraw():
print('體現功能')
def transfer():
print("轉賬功能")
func_dic=
def run():
while true:
for k in func_dic:
print(k,func_dic[k][0])
choice = input("請輸入指令編號:").strip()
if choice in func_dic:
func_dic[choice][1]()
else:
print("請重新輸入")
# run()
# start.py存放執行程式# encoding=utf-8
# auther:lsj
# 使用相對匯入:參照當前所在資料夾
# from ..core.src import run
# run()
# importerror: attempted relative import with no known parent package
# 執行檔案超出了查詢範圍。
# 應該採用絕對匯入-->sys.path-->執行檔案
# import sys
# import src
# src.run()
# 考慮問題:我們目前把路徑寫死了
# import sys
## import src
# src.run()
# 檢視路徑都是重複的,我們進行優化:把環境的頂級目錄加入到環境變數
# import sys
# from conf import settings
# from core import src
# from db import db_handle
# from lib import common
# print(settings)
# print(src)
# # # from core import src
# src.run()
# 不加任何字首直接執行run(),優化如下
# from core.src import run
# run()
# 優化一
# import sys
# print(__file__) # 獲取當前檔案的絕對路徑:執行結果d:/pycharm/oldboy_29/day021/atm/bin/start.py
import os
# print(__file__) # 獲取當前檔案的絕對路徑,d:/pycharm/oldboy_29/day021/atm/bin/start.py
# print(os.path.dirname(__file__)) # 獲取當前檔案的絕對路徑的上乙個檔案,d:/pycharm/oldboy_29/day021/atm/bin
# print(os.path.dirname(os.path.dirname(__file__))) # d:/pycharm/oldboy_29/day021/atm
# 優化二
import os,sys
base_dir = os.path.dirname(os.path.dirname(__file__))
from core import src
src.run()
"""執行結果如下
0 退出
1 登入
2 註冊
3 體現
4 轉賬
請輸入指令編號:
"""
# commonpy檔案的**import time
from conf import settings
def logger(msg):
# 日誌記錄功能
with open(settings.log_path,
mode='at',
encoding='utf-8'
) as f:
f.write('%s %s\n'%(time.strftime('%y-%m-%d %h:%m:%s'),msg))
# 日誌路徑不能寫死,你要給使用者選擇自定義的儲存位置,去settings裡面設定
# settings.py檔案from core import src
# 這裡的路徑寫死了,我們優化一下
# log_path = r'd:\pycharm\oldboy_29\day021\atm\log\user.log'
import os
base_dir = os.path.dirname(os.path.dirname(__file__))
log_path = r'%s/log/user.log' %base_dir
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...