1. 程式人生 > >軟體開發(目錄規範)

軟體開發(目錄規範)

目錄開發標準

1、可讀性高

2、可維護性高

 

目錄組織:
luffy
   log
   conf
   core 
   libs/modules
   docs 
   README 
       install 
           python3 setup.py install
   setup.py
   bin/
      luffy_server.py 
   requirements.txt

 pip freeze 可列出所有得第三方包

 

Foo/
|-- bin/
|   |-- foo
| |-- foo/ | |-- tests/ | | |-- __init__.py | | |-- test_main.py | | | |-- __init__.py | |-- main.py | |-- docs/ | |-- conf.py | |-- abc.rst | |-- setup.py |-- requirements.txt |-- README

 

解釋:
 1.bin:存放專案得一些可執行檔案
 2.foo:存放專案得所有原始碼
   2.1.原始碼中得所有模組,包,放在此目錄,不要至於頂層目錄。
   
2.2.子目錄tests存放單元測試 2.3.程式得入口命名為main.py 3.docs:存放一些文件 4.setup.py:安裝,部署,打包得指令碼 5.requirements.txt:存放軟體依賴得外部python包列表 (pip freeze 可列出所有得第三方包) 6.README:專案說明書 開源軟體得目錄組織 https://jeffknupp.com/blog/2013/08/16/open-sourcing-a-python-project-the-right-way/

 

README: 
 每個專案都應該有的一個檔案,簡要描述該專案的資訊,讓讀者快速瞭解這個專案
 
1.軟體定位,軟體的基本功能。 2.執行程式碼的方法: 安裝環境、啟動命令等。 3.簡要的使用說明。 4.程式碼目錄結構說明,更詳細點可以說明軟體的基本原理。 5.常見問題說明。 setup.py: python流行的打包工具:setuptools https://pythonhosted.org/setuptools/setuptools.html#developer-s-guide 一個專案一定要有一個安裝部署工具,快速便捷的在一臺新機器上環境裝好,程式碼部署好,程式執行起來。 “複雜的東西自動化,能自動化的東西一定要自動化” 學習技術的方式就是看他人是怎麼用的。可以參考python的一個web框架,flask是如何寫的? https://github.com/pallets/flask/blob/master/setup.py requirement.txt: 1.方便開發者維護軟體的包依賴 2.方便讀者明確專案使用了哪些包 具體格式說明: https://pip.readthedocs.io/en/1.1/requirements.html 配置檔案的使用方法: 1.配置檔案寫在一個或多個python檔案中,比如此處的conf.py。 2.專案中哪個模組用到這個配置檔案就直接通過import conf這種形式來在程式碼中使用配置。 這樣做不好: 1.這讓單元測試變得困難(因為模組內部依賴了外部配置) 2.另一方面配置檔案作為使用者控制程式的介面,應當可以由使用者自由指定該檔案的路徑。 3.程式元件可複用性太差,因為這種貫穿所有模組的程式碼硬編碼方式,使得大部分模組都依賴conf.py這個檔案。 配置的使用,更好的方式是: 1.模組的配置都是可以靈活配置的,不受外部配置檔案的影響。 2.程式的配置也是可以靈活控制的。