zoukankan      html  css  js  c++  java
  • python软件目录规范

    软件目录结构规范

    软件开发规范

    一、为什么要设计好目录结构?

    1.可读性高: 不熟悉这个项目的代码的人,一眼就能看懂目录结构,知道程序启动脚本是哪个,测试目录在哪儿,配置文件在哪儿等等。从而非常快速的了解这个项目。

    2.可维护性高: 定义好组织规则后,维护者就能很明确地知道,新增的哪个文件和代码应该放在什么目录之下。这个好处是,随着时间的推移,代码/配置的规模增加,项目结构不会混乱,仍然能够组织良好。

    二、目录组织方式

    关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构。

    假设你的项目名为my_project

    my_project/
    |-- bin/    存放项目的一些可执行文件,当然你可以起名script/之类的也行,但bin/更直观。易懂
    |   |-- __init__
    |  |-- start.py   写启动程序
    |
    |-- core/   存放项目的所有源代码(核心代码)。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。 (2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py。
    |   |-- tests/   
    |   |   |-- __init__.py
    |   |   |-- test.main.py  
    |   |
    |   |-- __init__.py
    |   |-- test_main.py|  存放核心逻辑  
    |
    |-- conf/    配置文件
    |   |-- __init__.py
    |   |-- setting.py   写上相关配置
    |
    |---db/    数据库文件
    |   |--db.json    写数据库文件
    |   
    |-- docs/   存放一些文档
    |   
    |-- lib/   库文件,放自定义模块和包
    |   |-- __init__.py
    |   |-- common.py    放常用的功能
    |
    |-- log/   日志文件
    |   |-- access.log    写上日志
    |
    |-- __init__.py
    |-- README    项目说明文件
    |-- requirements.txt

     注:运行程序时,在bin目录下执行start.py代码,不可以直接执行core下的模块。

    项目目录

    • bin      # 程序入口文件
    • core    # 主程序目录(核心代码),(src也可以,一般java项目这样命名)
    • conf    # 配置文件,主要用于留出接口,别人来使用时,方便配置
    • db       # 数据库
    • lib       # 公共类库目录,方便其它模块调用的类(通用模块,和当前项目的相关性不大(低耦合))
    • log      # 日志文件

    项目文件

    • requirements.txt : 存放软件依赖的外部 Python 包列表
    • README.md : 项目说明文件。
     

    关于README的内容

    这个我觉得是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。

    它需要说明以下几个事项:

    1. 软件定位,软件的基本功能。
    2. 运行代码的方法: 安装环境、启动命令等。
    3. 简要的使用说明。
    4. 代码目录结构说明,更详细点可以说明软件的基本原理。
    5. 常见问题说明。
  • 相关阅读:
    每天一道LeetCode--141.Linked List Cycle(链表环问题)
    每天一道LeetCode--119.Pascal's Triangle II(杨辉三角)
    每天一道LeetCode--118. Pascal's Triangle(杨辉三角)
    CF1277D Let's Play the Words?
    CF1281B Azamon Web Services
    CF1197D Yet Another Subarray Problem
    CF1237D Balanced Playlist
    CF1239A Ivan the Fool and the Probability Theory
    CF1223D Sequence Sorting
    CF1228D Complete Tripartite
  • 原文地址:https://www.cnblogs.com/pathping/p/11880140.html
Copyright © 2011-2022 走看看