千锋教育-做有情怀、有良心、有品质的职业教育机构

Python 软件开发目录规范的重要性

来源:千锋教育
发布时间:2023-11-07 12:52:20
分享

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

"设计项目目录结构",就和"代码编码风格"一样,属于个人风格问题。对于这种风格上的规范,一直都存在两种态度:

一类同学认为,这种个人风格问题"无关紧要"。理由是能让程序work就好,风格问题根本不是问题。

另一类同学认为,规范化能更好的控制程序结构,让程序具有更高的可读性。

我是比较偏向于后者的,因为我是前一类同学思想行为下的直接受害者。我曾经维护过一个非常不好读的项目,其实现的逻辑并不复杂,但是却耗费了我非常长的时间去理解它想表达的意思。从此我个人对于提高项目可读性、可维护性的要求就很高了。"项目目录结构"其实也是属于"可读性和可维护性"的范畴,我们设计一个层次清晰的目录结构,就是为了达到以下两点:

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

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

所以,我认为,保持一个层次清晰的目录结构是有必要的。更何况组织一个良好的工程目录,其实是一件很简单的事儿。

目录组织方式

关于如何组织一个较好的Python工程目录结构,已经有一些得到了共识的目录结构。在Stackoverflow的这个问题上,能看到大家对Python目录结构的讨论。

这里面说的已经很好了,我也不打算重新造轮子列举各种不同的方式,这里面我说一下我的理解和体会。

假设你的项目名为foo,我比较建议的最方便快捷目录结构这样就足够了

简要解释一下:

bin/:存放项目的一些可执行文件,当然你可以起名script/之类的也行。

foo/:存放项目的所有源代码。(1)源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2)其子目录tests/存放单元测试代码;(3)程序的入口最好命名为main.py。

docs/:存放一些文档。

setup.py:安装、部署、打包的脚本。

requirements.txt:存放软件依赖的外部Python包列表。

README:项目说明文件。

除此之外,有一些方案给出了更加多的内容。比如LICENSE.txt,ChangeLog.txt文件等,我没有列在这里,因为这些东西主要是项目开源的时候需要用到。如果你想写一个开源软件,目录该如何组织

以上内容为大家介绍了Python软件开发目录规范的重要性,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注IT培训机构:千锋教育。

声明:本站部分稿件版权来源于网络,如有侵犯版权,请及时联系我们。

相关推荐

  • Python 数据结构 数据结构:通过某种方式组织在一起的数据元素的集合。python中最基本的数据结构是序列(sequence),序列中每个元素被分配一个序号————即元素的位置,也称其为索引;python包含6种内建序列
  • Python 运算符 算术运算符:+,-,*,/,%,**,//赋值运算符:=,+=,-=,*=,/=,%=,**=比较运算符:==,!=,>,=,and>or#逻辑运算符'''以上内容为大家介绍了
  • Python编程进阶,常用八大技巧! 整理字符串输入整理用户输入的问题在编程过程中极为常见。通常情况下,将字符转换为小写或大写就够了,有时你可以使用正则表达式模块「Regex」完成这项工作。但是如果问题很复杂,可能有更好的方法来解决:us
  • BP神经网络与Python 人工神经网络是一种经典的机器学习模型,随着深度学习的发展神经网络模型日益完善.联想大家熟悉的回归问题,神经网络模型实际上是根据训练样本创造出一个多维输入多维输出的函数,并使用该函数进行预测,网络的训练
  • Python实现BP神经网络 首先实现几个工具函数:defrand(a,b):return(b-a)*random.random()+adefmake_matrix(m,n,fill=0.0):#创造一个指定大小的矩阵mat=[]
  • Python NumPy NumPy是Python语言的一个扩充程序库。支持高级大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。Numpy内部解除了CPython的GIL(全局解释器锁),运行效率极好,是大量