軟體開發目錄規範

2022-09-16 09:39:09 字數 2176 閱讀 6560

為什麼要設計好目錄結構?

"設計專案目錄結構",就和"**編碼風格"一樣,屬於個人風格問題。對於這種風格上的規範,一直都存在兩種態度:

一類同學認為,這種個人風格問題"無關緊要"。理由是能讓程式work就好,風格問題根本不是問題。

另一類同學認為,規範化能更好的控制程式結構,讓程式具有更高的可讀性。

我是比較偏向於後者的,因為我是前一類同學思想行為下的直接受害者。我曾經維護過乙個非常不好讀的專案,其實現的邏輯並不複雜,但是卻耗費了我非常長的時間去理解它想表達的意思。從此我個人對於提高專案可讀性、可維護性的要求就很高了。"專案目錄結構"其實也是屬於"可讀性和可維護性"的範疇,我們設計乙個層次清晰的目錄結構,就是為了達到以下兩點:

可讀性高: 不熟悉這個專案的**的人,一眼就能看懂目錄結構,知道程式啟動指令碼是哪個,測試目錄在哪兒,配置檔案在哪兒等等。從而非常快速的了解這個專案。

可維護性高: 定義好組織規則後,維護者就能很明確地知道,新增的哪個檔案和**應該放在什麼目錄之下。這個好處是,隨著時間的推移,**/配置的規模增加,專案結構不會混亂,仍然能夠組織良好。

所以,我認為,保持乙個層次清晰的目錄結構是有必要的。更何況組織乙個良好的工程目錄,其實是一件很簡單的事兒。

目錄組織方式

假設你的專案名為foo, 我比較建議的最方便快捷目錄結構這樣就足夠了:

foo/

|-- bin/

| |-- foo

||-- foo/

| |-- tests/

| | |-- __init__.py

| | |-- test_main.py

| |

| |-- __init__.py

| |-- main.py

||-- docs/

| |-- conf.py

| |-- abc.rst

||-- setup.py

|-- requirements.txt

|-- readme

簡要解釋一下:

django目錄結構:

▸ django/原始碼

▸ docs/文件,**看的內容基本都在這裡面

▸ extras/格外的資訊,沒什麼用

▸ js_tests/測試js的**

▸ scripts/翻譯的檔案一類的東西

▸ tests/單元測試

authors 作者

contributing.rst 貢獻說明

gruntfile.js js構建配置grunt

install

license

license.python

manifest.

in打包配置

package.json js包配置

readme.rst

setup.cfg 打包

setup.py 打包

tox.ini 打包

原始碼目錄:

▸ bin/▸ conf/工程模板,老的url配置

▸ contrib/第三方貢獻**,但也包含常用模組如auth、session等。

▸ core/核心包,快取、郵件、http處理等

▸ db/資料庫互動部分,model、field、sql就在這個裡面

▸ dispatch/signal處理的邏輯

▸ forms/form以及對應的元件

▸ http/request和response所在

▸ middleware/常用中介軟體

▸ template/模板引擎

▸ templatetags/內建的模板tag

▸ test/單元測試模組

▸ urls/現代化的url包

▸ utils/很多web開發中很實用的工具都在裡面

▸ views/ view層的內容都在這, cache、csrf、class-based view等

__init__.py

__main__.py

shortcuts.py 一些快捷方式

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...