zoukankan      html  css  js  c++  java
  • Python入门day21——软件目录规范

    软件目录规范

    为了提高程序的可读性与可维护性,我们应该为软件设计良好的目录结构,这与规范的编码风格同等重要。软件的目录规范并无硬性标准,只要清晰可读即可,假设你的软件名为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、常见问题说明。
    

    关于setup.py和requirements.txt:

    一般来说,用setup.py来管理代码的打包、安装、部署问题。业界标准的写法是用Python流行的打包工具setuptools来管理这些事情,这种方式普遍应用于开源项目中。不过这里的核心思想不是用标准化的工具来解决这些问题,而是说,一个项目一定要有一个安装部署工具,能快速便捷的在一台新机器上将环境装好、代码部署好和将程序运行起来。

    requirements.txt文件的存在是为了方便开发者维护软件的依赖库。我们需要将开发过程中依赖库的信息添加进该文件中,避免在 setup.py安装依赖时漏掉软件包,同时也方便了使用者明确项目引用了哪些Python包。

  • 相关阅读:
    OSCP Learning Notes Buffer Overflows(3)
    OSCP Learning Notes Buffer Overflows(5)
    OSCP Learning Notes Exploit(3)
    OSCP Learning Notes Exploit(4)
    OSCP Learning Notes Exploit(1)
    OSCP Learning Notes Netcat
    OSCP Learning Notes Buffer Overflows(4)
    OSCP Learning Notes Buffer Overflows(1)
    OSCP Learning Notes Exploit(2)
    C++格式化输出 Learner
  • 原文地址:https://www.cnblogs.com/yding/p/12594660.html
Copyright © 2011-2022 走看看