zoukankan      html  css  js  c++  java
  • 软件开发

    目录结构 作用:
    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, 我比较建议的最方便快捷目录结构这样就足够了:

    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/

    2.目录理解

    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.程序的配置也是可以灵活控制的。
  • 相关阅读:
    java并发
    jvm虚拟机
    L2Dwidget二次元前端添加人物插件
    MySQL数据库之rowid
    MySql支持emoji表情设置
    zookeeper不能正常启动问题(转)
    jd-gui-windows-1.6.6.zip反编译工具
    为什么es集群至少需要三个节点(转)
    超好用的uniapp弹出层
    netcore5.0 使用新的Microsoft.Data.SqlClient
  • 原文地址:https://www.cnblogs.com/alice-bj/p/8480507.html
Copyright © 2011-2022 走看看