提升Python技能的工具有哪些?

举报
竹叶青 发表于 2019/09/03 21:49:12 2019/09/03
【摘要】 本文概要调试、测试、部署程序为程序编写文档和版本控制编写程序代码使用交互式环境与其他大多数编程语言一样,Python拥有强大的第三方支持,它们提供了各种各样的工具。这些工具在创建应用程序的过程中能够大大增强Python的功能。调试器是一种工具,因为它是一种实用程序,而库不是,库是用来创建更好的应用程序的(第21章我们会讲一些常用库)。即使我们把工具和非工具(比如库)区分开,也不能让工具的数量...

top0.97ac691.png

本文概要

调试、测试、部署程序为程序编写文档和版本控制编写程序代码使用交互式环境

与其他大多数编程语言一样,Python拥有强大的第三方支持,它们提供了各种各样的工具。这些工具在创建应用程序的过程中能够大大增强Python的功能。调试器是一种工具,因为它是一种实用程序,而库不是,库是用来创建更好的应用程序的(第21章我们会讲一些常用库)。

即使我们把工具和非工具(比如库)区分开,也不能让工具的数量明显减少。Python有大量常规工具和特殊工具的支持,这些工具被分成以下13类:

  • 自动化重构工具;

  • Bug跟踪工具;

  • 配置和构建工具;

  • 部署工具;

  • 文档工具;

  • 集成开发环境;

  • Python调试器;

  • Python编辑器;

  • Python Shell;

  • Skeleton Builder工具;

  • 测试软件;

  • 有用模块;

  • 版本控制。

值得注意的是,Python DevelopmentTools页面上的列表是不完整的。除此之外,你还可以在其他一些网页中看到大量的Python工具。

其实,只使用一个章节是不可能介绍完所有Python工具的,本章只挑选了几个需要特别关注的工具进行讲解。如果你对本章内容感兴趣,你可以自己去网上查找一些其他工具学习一番。你可能会发现,有些自己想创建的工具其实早就有了,而且不止一种。

1 使用Roundup Issue Tracker跟踪Bug

现在有很多bug跟踪站点可供我们使用,比如:Github、Google Code、BitBucket、Launchpad。不过,这些公共站点用起来通常都没有你自己定制的本地化Bug跟踪软件那样方便。你可以在本地机器上选用多种跟踪系统,但是Roundup Issue跟踪器是其中更好的一个。Roundup可以运行在所有支持Python的平台下,提供了如下基本功能:

  • Bug跟踪;

  • 管理TODO列表。

如果你愿意在安装上多下点功夫,你就可以获得更多的功能,这些额外功能体现的正是Roundup和其他产品不同的地方。但是,要获取这些功能,你可能需要安装其他产品,比如数据库管理系统(DBMS)。Roundup的产品说明中指出了你要安装什么以及它和哪些第三方产品是兼容的。安装完成后,你会获得如下这些功能。

  • 客户支持,包含如下:

    • 电话应答向导;

    • 网络链接;

    • 系统和开发问题跟踪工具。

  • 互联网工程任务组(Internet Engineering Task Force,IETF)的问题管理。

  • 销售趋势跟踪。

  • 会议论文投稿。

  • 双盲评审管理。

  • 博客(目前还很简陋,以后会变得很强大)。

2 使用VirtualEnv创建虚拟环境

创建虚拟环境的理由很多,但主要原因还是为了创造一个安全、已知的测试环境。每次都使用相同的测试环境,这样可以保证应用程序拥有稳定的测试环境,直到你在类似产品的环境中完成足够的测试。VirtualEnv为我们提供了创建虚拟Python环境的方法,你可以使用它进行早期测试,或者诊断由环境原因引发的问题。请务必记住,你最少需要做3个标准级别的测试。

  • Bug

检查程序中的错误。 - 性能:

验证程序是否满足运行速度、可靠性、安全性方面的要求。 - 可用性:

验证程序是否符合用户需求,是否能够按照用户期望的方式响应用户输入。

 

099.png

根据大多数Python应用程序的使用方式(相关内容参阅第19章),Python应用程序在实际工作环境中通常不需要运行在虚拟环境下。大多数Python应用程序都需要访问外部环境,但虚拟环境会阻止这种外部访问行为。

{永远不要在生产服务器上测试程序!!} 

一些开发人员常犯的一个错误是在生产服务器上测试尚未发布的程序,这使得用户可以很容易地访问到它。永远不要在生产服务器上测试你的程序,原因有很多,其中最重要的一个是这样做会导致数据丢失。如果允许用户访问尚未正式发布的程序,而这个程序又包含可能会损坏数据库或其他数据源的Bug,这样就有可能造成数据的永久丢失或损坏。

你还要注意,你只有一次赢得别人好感的机会。许多软件项目的失败是因为用户最终抛弃了它。即便应用程序是完整的,但是没有人会使用它,因为用户认为应用程序在某些方面存在缺陷。用户心中只有一个目标,那就是尽快完成工作,然后回家。当用户发现某个程序在浪费他们的时间时,他们就不会再使用它了。

此外,未发布的应用程序有可能存在安全漏洞,心怀恶意的人可能利用这些漏洞非法访问你的网络。如果你的门是开着的,任何人都能进来,那不管你的安全软件有多棒都没什么用。当他们进来之后,你再想摆脱他们几乎是不可能的,即使你真的摆脱了他们,但这时对数据的损害已经发生了。从安全漏洞恢复是很难的,有时甚至是不可能的。简而言之,永远不要在生产服务器上测试你的应用程序,这样做的成本太高了。

3 使用PyInstaller安装你的应用程序

一般,用户都不希望在应用程序安装上花费太多时间,不管这个程序最终会给他们带去多大的帮助都是如此。即使你可以让用户去尝试安装程序,但不太懂计算机的用户也有可能会安装失败。简而言之,你需要有一种万无一失的方法,帮助用户把程序顺利地安装到自己的计算机中。PyInstaller 可以帮你做到这一点,它会为你的应用程序生成了一个安装包,用户使用这个安装包就可以很容易地把程序安装到自己的系统中。

幸运的是,PyInstaller可以在所有支持Python的平台上工作,所以你只需要一个工具就可以满足所有安装需求。另外,必要时,你还可以获得特定平台的支持。例如,在Windows平台下,你可以创建有代码签名的可执行文件。Mac开发人员很喜欢PyInstaller为bundle提供了支持。大多数情况下,尽量避免使用特定于平台的特性,除非你真的需要它们。当你使用了特定于某个平台的特性时,安装只能在这个平台上才能成功。

{不要使用孤立的工具!!} 

网络上有一些Python工具是孤立的,其开发者已不再支持它们。但有些开发人员仍然在使用这些工具,因为他们喜欢这些工具所支持的特性或工作方式。但是,这样做是有风险的,因为你不能确定这个工具是否能和最新版本的Python协同工作。选择工具时,要尽量选择那些受生产厂商完全支持的工具。

如果你必须使用孤立的工具(例如做某个工作时只有孤立的工具可用),那请你确保所用的工具仍然有良好的社区支持。或许工具的生产商已经不再存在了,但至少在你需要支持时,有社区为你提供有用的信息。请注意,使用那些不受支持的工具可能会浪费你大量的时间,因为它们可能无法正常工作了。 |

 

0100.png

我们在网上找到的许多安装工具都是特定于某个平台的。例如,当你寻找一款用于创建可执行文件的安装工具时,你需要注意这个工具创建出的可执行文件是不是特定于某个平台的(至少在你指定的平台上可以运行)。重要的是,你选用的安装工具在任何地方都能正常工作,这样就不会创建出用户无法使用的安装包。如果安装包有问题,那不管你选用什么样的跨平台语言都无济于事。

4 使用pdoc创建开发人员文档

与应用程序有关的文档有两种:用户文档和开发人员文档。用户文档介绍如何使用应用程序,而开发人员文档则描述应用程序如何工作。库只需要一种文档,即开发者文档,而桌面应用程序则只需要用户文档。但是,服务可能同时需要这两种文档,这取决于用户是谁以及服务如何组合在一起。大多数文档可能都会影响到开发人员,而pdoc是一个创建它的简单解决方案。

pdoc实用工具使用你插入到代码中的文档字符串和注释来创建文档,其输出是文本文件或HTML文档。你还可以让pdoc以Web服务器的方式运行,这样人们可以直接在浏览器中查看文档。pdoc实际是epydoc的替代品,现在epydoc的发起人已经不再支持epydoc了。

{什么是文档字符串?!!} 

第5章和本章中都提到了文档字符串(docstrings)。文档字符串是一种特殊注释,使用三重引号括起,如下所示:


"""This is a docstring."""

0200.jpg


本文转载自异步社区

原文链接:

https://www.epubit.com/articleDetails?id=Na73ac6d1-0d63-44b1-935c-ffdec1786576


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。