软件目录结构规范

软件开发规范

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

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

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

二、目录组织方式

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

假设你的项目名为Notebook

Notebook/

|-- 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 写上日志

|

|-- README 项目说明文件

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

README相关

使用过开源软件的朋友们都知道README可以给软件的使用带来很大的帮助,包括软件介绍、功能定位、安装启动使用方法、有建议或bug怎么联系作者等,其必要性和重要性不言而喻。

因此每一个项目都应该有README说明,好的README应该至少包括以下几方面的内容:

软件的简要介绍、功能定位、适用场景等

软件的安装、环境依赖、启动方法、常见使用命令(使用说明)等

代码的目录结构说明

常见问题说明

遇到建议或bug如何联系作者或项目组

如果再编写的更详细,可以考虑简述软件的基本原理。这方面最好的参考就是开源软件的README,如nginx,redis等。

python安装目录结构_python软件目录结构规范相关推荐

  1. python安装os模块_python的os模块(ipython,文件,目录,权限,管理)

    什么是os模块 os模块提供了多数操作系统的功能接口函数.当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在python编程时,经常和文件.目录打交道,这时就离不了o ...

  2. python安装后找不到目录_python安装后的目录在哪里

    从官网下载python的安装包,安装过程中可选择装在C盘或D盘或者其他的磁盘. 如果忘记了安装在哪里,可以在命令行中使用以下命令 where python 会显示python的绝对路径 C:\User ...

  3. python 打开文件夹_python打开目录

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python dirtree.py e:programmingpythonapp ...

  4. python批量读取文件名_Python遍历目录并批量更换文件名和目录名的方法

    本文实例讲述了Python遍历目录并批量更换文件名和目录名的方法.分享给大家供大家参考,具体如下: #encoding=utf-8 #author: walker #date: 2014-03-07 ...

  5. python的类程序的结构_python(8)---程序结构

    在计算机编程中,面向过程的编程中,程序结构分为三类:顺序结构.分支结构.循环结构. 一.顺序结构 顺序结构就是指程序一步一步按照顺序执行程序,顺序结构比较简单. 二.分支结构 分支结构主要就是逻辑判断 ...

  6. python安装系统要求_python需要什么系统 | window重装系统教程

    python的spyder怎么打开,或者具体的安装教程 1.spyder 打https://pypi.python.org/pypi/spyder 下载里面最新的源码zip包,在解压后,cmd里cd到 ...

  7. python安装oracle驱动_python安装oracle扩展及数据库连接方法

    python安装oracle扩展及数据库连接方法 这篇文章主要介绍了 python 安装 oracle 扩展及数据库连接方法, 较为详细的分析了 Python 下载 oracle 扩展及 Window ...

  8. python安装绘图库_python绘图库Matplotlib的安装

    本文简单介绍了Python绘图库Matplotlib的安装,简介如下: matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地 进行制图.Ma ...

  9. python安装离线包_python离线包

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 那么我现在开发了一套python程序,需要一些模块,怎么运行? 二.离线包制作有 ...

最新文章

  1. 计算机网络相关知识点
  2. Android4.0与2.3的差异
  3. ASP.NET Web API中展示实体Link相关的方面
  4. 沧州学计算机设计大赛,沧职两学子全国工业机器人技能大赛获奖
  5. OpenStack_I版 1.准备过程
  6. 计算机怎么远程桌面,电脑远程桌面如何连接 电脑远程桌面连接方法【详解】...
  7. 数据字典简单例子_Python学习100天-Day14(数据分析篇-pandas02)
  8. c语言 为什么in 1,C语言i++和++i的区别
  9. 约束理论学习随笔(1)
  10. 微信公众平台开发教程新手解惑40则
  11. “防护左移”赋能开发人员,实时修复代码安全问题
  12. 基于脉动阵列实现矩阵卷积(FPGA)
  13. 豆瓣电影数据分析案例
  14. 划分离散数学定义_《离散数学》学习记录 - 集合论
  15. STM32F103与电脑端通信(使用NRF24L01)
  16. win7已经阻止此发行者在您的计算机上运行软件,Win7系统提示Windows已经阻止此软件因为无法验证发行者解决方法...
  17. 人工智能在游戏领域的应用有哪些?
  18. Python灰帽子_黑客与逆向工程师的Python编程之道
  19. c语言平台答案,C语言平台答案.docx
  20. 一张图带你看懂UML类图

热门文章

  1. Qt学习笔记-QSqlModel的事物操作
  2. 网站建设:部署与发布
  3. java 缓冲区溢出_基于数组越界的缓冲区溢出
  4. panda python_12个很棒的Pandas和NumPy函数,让分析事半功倍
  5. Qt::WindowFlags
  6. mysql 手动执行event_MYSQL 定时自动执行EVENT
  7. html css做网页总结,学习CSS制作网页总结的一些经验
  8. pyvex 的正确安装方式
  9. Windows 服务程序编写
  10. 面试题17. 打印从1到最大的n位数