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.程序的配置也是可以灵活控制的。
  • 相关阅读:
    jsp转向
    什么是 XDoclet?
    tomcat中的几点配置说明
    mysql5问题
    POJ 3734 Blocks
    POJ 2409 Let it Bead
    HDU 1171 Big Event in HDU
    POJ 3046 Ant Counting
    HDU 2082 找单词
    POJ 1286 Necklace of Beads
  • 原文地址:https://www.cnblogs.com/alice-bj/p/8480507.html
Copyright © 2011-2022 走看看