Skip to content

Latest commit

 

History

History
153 lines (91 loc) · 9.7 KB

File metadata and controls

153 lines (91 loc) · 9.7 KB

零、序言

软件架构,或者为特定的软件应用创建蓝图设计,不是在公园里散步。软件架构中最大的两个挑战是保持架构同步,首先是在需求被发现或发展时与需求同步,然后是在需求被构建和发展时与实现同步。

本指南充满了示例和用例,采用直接的方法帮助您完成成为成功的软件架构师所需的一切。这本书将帮助您了解 Python 的细节,以便您能够用 Python 构建和设计高度可伸缩、健壮、干净和高性能的应用。

这本书涵盖的内容

第一章软件架构原则介绍了软件架构的主题,简要介绍了架构质量属性及其背后的一般原则。这将使您在软件架构原则和基本属性方面具有坚实的基础。

第 2 章编写可修改可读代码,涵盖了开发架构质量属性,即可修改性和可读性。它将帮助您了解可维护性的架构质量属性以及用 Python 编写代码以测试应用的策略。

第 3 章可测试性编写可测试代码,帮助您了解可测试性的架构质量属性以及如何为可测试性构建 Python 应用。您还将了解可测试性和软件测试的各个方面,以及 Python 中用于编写可测试应用的不同库和模块。

第四章*好的表现是值得的!*介绍了编写 Python 代码的性能方面。您将掌握性能作为架构质量属性的知识,以及何时优化性能。您将了解何时在 SDLC 中优化性能。

第 5 章编写可扩展的应用,讨论编写可扩展应用的重要性。它讨论了实现应用可伸缩性的不同方法,并讨论了使用 Python 的可伸缩性技术。您还将了解可伸缩性的理论方面以及业界的最佳实践。

第 6 章安全编写安全代码,讨论架构的安全方面,并向您传授编写安全应用的最佳实践和技术。您将了解需要注意的不同安全问题,以及从一开始就安全的 Python 架构应用。

第 7 章Python 中的设计模式从实用程序员的角度概述了 Python 中的设计模式,并简要介绍了每种模式的理论背景。您将获得 Python 中的设计模式的知识,这些模式对实际的程序员非常有用。

第 8 章Python 架构模式——Python 方法从高层角度介绍了 Python 中的现代架构模式,同时给出了 Python 库和框架的示例,以实现这些模式解决高层架构问题的方法。

第 9 章使用 Python 部署应用–使用 Python 部署 Devops介绍了如何使用 Python 在远程环境或云端轻松部署代码。

第 10 章调试技术介绍了 Python 代码的一些调试技术——从最简单、策略性的打印语句到日志记录和系统调用跟踪,这对程序员来说非常方便,也有助于系统架构师指导他的团队。

这本书你需要什么

要运行本书中显示的大多数代码示例,您需要在系统上安装 Python 3。其他先决条件在各自的实例中提到。

这本书是给谁的

本书面向有经验的 Python 开发人员,他们希望成为企业级应用的架构师,或者希望利用 Python 创建有效的应用蓝图的软件架构师。

公约

在本书中,您将发现许多文本样式可以区分不同类型的信息。下面是这些风格的一些例子,并解释了它们的含义。

文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟 URL、用户输入和 Twitter 句柄如下所示:“我们可以通过使用include指令来包含其他上下文。”

代码块设置如下:

class PrototypeFactory(Borg):
    """ A Prototype factory/registry class """

    def __init__(self):
        """ Initializer """

        self._registry = {}

    def register(self, instance):
        """ Register a given instance """

        self._registry[instance.__class__] = instance

    def clone(self, klass):
        """ Return clone given class """

        instance = self._registry.get(klass)
        if instance == None:
            print('Error:',klass,'not registered')
        else:
            return instance.clone()

当我们希望提请您注意代码块的特定部分时,相关行或项目以粗体显示:

[default]
exten => s,1,Dial(Zap/1|30)
exten => s,2,Voicemail(u100)
exten => s,102,Voicemail(b100)
exten => i,1,Voicemail(s0)

任何命令行输入或输出的编写方式如下:

>>> import hash_stream
>>> hash_stream.hash_stream(open('hash_stream.py'))
'30fbc7890bc950a0be4eaa60e1fee9a1'

新术语重要词语以粗体显示。您在屏幕上看到的文字(例如,在菜单或对话框中)显示在文本中,如下所示:“单击下一个按钮将移动到下一个屏幕。”

警告或重要注释显示在这样的框中。

提示

提示和技巧如下所示。

读者反馈

我们欢迎读者的反馈。让我们知道你对这本书的看法你喜欢还是不喜欢。读者反馈对我们来说很重要,因为它可以帮助我们开发出您将真正从中获得最大收益的标题。

要向我们发送总体反馈,只需发送电子邮件<[[email protected]](mailto:[email protected])>,并在邮件主题中提及该书的标题。

如果您对某个主题有专业知识,并且您有兴趣撰写或贡献一本书,请参阅我们的作者指南www.packtpub.com/authors

客户支持

既然您是一本 Packt 图书的骄傲拥有者,我们有很多东西可以帮助您从购买中获得最大收益。

下载示例代码

您可以从您的帐户下载本书的示例代码文件 http://www.packtpub.com 。如果您在其他地方购买了本书,您可以访问http://www.packtpub.com/support 并注册,将文件直接通过电子邮件发送给您。

您可以通过以下步骤下载代码文件:

  1. 使用您的电子邮件地址和密码登录或注册我们的网站。
  2. 将鼠标指针悬停在顶部的支架选项卡上。
  3. 点击代码下载&勘误表
  4. 搜索框中输入图书名称。
  5. 选择要下载代码文件的书籍。
  6. 从您购买本书的下拉菜单中选择。
  7. 点击代码下载

您也可以通过点击 Packt 出版网站上该书网页上的代码文件按钮下载代码文件。在搜索框中输入图书名称即可访问此页面。请注意,您需要登录到您的 Packt 帐户。

下载文件后,请确保使用以下最新版本解压或解压缩文件夹:

  • WinRAR/7-Zip for Windows
  • 适用于 Mac 的 Zipeg/iZip/UnRarX
  • 适用于 Linux 的 7-Zip/PeaZip

该书的代码包也托管在 GitHub 上的https://github.com/PacktPublishing/Software-Architecture-with-Python 。我们在上还提供了丰富的书籍和视频目录中的其他代码包 https://github.com/PacktPublishing/ 。看看他们!

下载本书彩色图片

我们还为您提供了一个 PDF 文件,其中包含本书中使用的屏幕截图/图表的彩色图像。彩色图像将帮助您更好地了解输出中的更改。您可以从下载此文件 https://www.packtpub.com/sites/default/files/downloads/SoftwareArchitecturewithPython_ColorImages.pdf

勘误表

虽然我们已尽一切努力确保内容的准确性,但错误确实会发生。如果您在我们的一本书中发现错误,可能是文本或代码中的错误,如果您能向我们报告,我们将不胜感激。通过这样做,您可以使其他读者免于沮丧,并帮助我们改进本书的后续版本。如果您发现任何错误,请访问进行报告 http://www.packtpub.com/submit-errata ,选择您的书籍,点击勘误表提交表链接,输入您勘误表的详细信息。一旦您的勘误表得到验证,您的提交将被接受,勘误表将上载到我们的网站或添加到该标题勘误表部分下的任何现有勘误表列表中。

要查看之前提交的勘误表,请转至https://www.packtpub.com/books/content/support 并在搜索字段中输入图书名称。所需信息将出现在勘误表部分下。

盗版

在互联网上盗版版权材料是所有媒体都面临的一个持续问题。在 Packt,我们非常重视版权和许可证的保护。如果您在互联网上发现任何形式的非法复制品,请立即向我们提供地址或网站名称,以便我们采取补救措施。

请致电<[[email protected]](mailto:[email protected])>与我们联系,并提供可疑盗版材料的链接。

我们感谢您在保护我们的作者方面提供的帮助以及我们为您带来有价值内容的能力。

问题

如果您对本书的任何方面有任何问题,可以通过<[[email protected]](mailto:[email protected])>与我们联系,我们将尽力解决该问题。