测试、调试、部署和维护

    在进行Python应用程序开发时,会涉及一些除面向对象设计之外的技巧。接下来会关注一些主题,不单是单纯的编程,还需要关注如何解决用户的问题:

    • 第14章“Logging和Warning模块”会介绍如何使用Logging和Warning模块来创建审计和调试信息。不单单使用print()函数,还会有额外的一些操作。Logging模块提供了很多功能,可以使用简单的、统一的接口生成审计、调试信息以及文本消息。由于它是高度可配置的,可用于生成详细的调试信息或者使用相关选项来完成。
    • 我们会介绍到可测试性的设计并在第15章“可测试性的设计”中会介绍如何使用unittest和doctest。自动化测试应该被认为是必要的。如果自动化测试不能说明代码是有效的,那么不能认为软件已经完成。
    • 命令行接口为程序提供了更多的选项和参数。通常应用于小型的、基于文本的程序以及长时间运行的服务。然而,即使是GUI应用也可以使用命令行选项来配置。第16章“使用命令行”会介绍如何使用argparse模块来完成选项和参数的解析。我们会进一步使用Command设计模式来构建程序,用于完成在无需对Shell脚本进行重排序的前提下进行程序的扩展。
    • 第 17 章“模块和包的设计”会介绍如何设计模块和包。比起之前介绍的类设计,这是更高层面上的设计。模块和类一些设计理念是共同的:包裹、扩展和创造。会介绍模块与类、包与模块的结构,而不会涉及具体的数据或操作。
    • 第18章“质量和文档”会介绍如何写设计文档,说明软件的可靠性以及如何被构建的。

    这部分会介绍几种使用额外模块来提高软件质量的方法。不像第1部分“用特殊方法实现Python风格的类”以及第2部分“持久化和序列化”这样的主题,这里要介绍的工具将不仅局限于只是解决某种特殊的问题。这些主题有助于从整体上理解熟练掌握Python面向对象的编程思想。