Python菜鸟晋级(基于Flask)1成为Pythonista

1 成为Pythonista

本章包括

  • 程序员和开发者的区别
  • Python社区

成为一名开发者是一种不同寻常的追求。开发者花费时间无中生有,即使这样,也很难描述我们刚刚创造的东西。

程序员和开发人员的区别

  • 程序员创建可运行的Python脚本。开发者创建模块,构建更大的应用程序。
  • 程序员使用Python解决问题,而开发人员考虑的是全局以及Python在全局中的位置。
  • 程序员知道如何使用Python标准库,而开发人员知道如何使用第三方软件包。
  • 程序员能编写正常运行的代码。开发人员编写的代码可持续维护。
  • 程序员可能不知道编码约定,而开发人员则依赖约定和习语来加快开发工作。
  • 程序员知道学习是必要的。开发人员则将学习作为终身追求。

1.1 致力于学习

学习如何更好地掌握技术和使用Python进行开发是一项宝贵的技能。努力提高自己的Python开发能力有两个好处。首先是能够承担更大的项目,并有信心完成它们并创建一个工作系统。第二是学习实践。终生学习并不只是一个朗朗上口的教育用语,而是作为一名软件开发人员的真实写照。

如果软件开发是你的职业,或者你想成为这样的职业,请记住,职业生涯是漫长的,变化是不断发生的。致力于学习新技术和新语言可以解决这两个问题。在这个瞬息万变的世界里,工作几乎没有保障;唯一真正的保障就是你所掌握的技能。

1.2 实现目标

1.2.1 像开发者一样思考

学习一门编程语言意味着学习这门语言的语法和语法:如何创建变量、构建循环、做出决策和执行程序语句。这些都是你的基本工具,但像开发人员一样思考还意味着要知道如何将这些工具结合起来创建一个有用的程序。

1.2.2 构建应用程序

应用程序是提供有用功能和用户界面的完整程序,比如Microsoft Word,它是一个大型桌面应用程序。谷歌的Gmail是一款大型网络应用程序。

还有许多较小的应用程序;例如,如果你熟悉大多数计算机系统上的命令行,你可能使用过ping命令。该应用程序通常用于确定网络上的另一台计算机是否响应ping请求。

1.3 使用Python

1.3.1 编程范式

  • 循环、嵌套循环、条件和过程调用提供的控制流使Python成为一种结构化的编程语言。
  • Python是一种过程式语言,您可以创建函数(过程),从而生成可在程序其他部分重复使用的代码块。
  • 基于类的面向对象编程 (OOP) 可以捕获状态信息以及对状态进行操作的代码。
  • Python 虽然不是严格意义上的函数式语言,但它提供了允许您以这种方式编程的功能。Python 中的函数是一级对象,可以像其他对象一样被传递。这一特性是函数式编程所要求的,Python 提供的这一特性在以这种方式工作时非常有用。
  • 事件驱动程序,如窗口GUI应用程序--由事件决定程序控制流--完全可以用Python来实现。

1.3.2 创建可维护的代码

PyTest模块 (https://docs.pytest.org/en/7.2.x/)是一个强大的框架,可帮助测试您开发的应用程序。

如果你在一个团队中工作,而团队中的其他人将修改你的工作,那么那个人将根据你的代码的可维护性和可读性来祝福或诅咒你。

编写可维护代码是开发人员值得追求的优势。采用一种编码风格并始终如一地使用这种风格对实现这一目标大有裨益。使用智能而有意义的变量名、函数名和类名非常重要。我坚信,没有一种编程语言,即使是Python,是完全自文档化的。说明代码意图的注释对理解代码的目的和意图大有帮助。

编写可维护代码的另一个重要方面是使其具有灵活性。在开发应用程序的过程中,你很难预料你创建的函数和类以后会如何使用。

参考资料

1.3.3 性能

优化你最昂贵的资源。你就是最昂贵的资源。如果你是一家公司的软件开发人员,那么你就是连接到他们计算机资源的最昂贵的资源。作为一名开发人员,优化自己的性能是最重要的,如果你能将脑海中的大画面快速转化为可运行的代码,那么你就变得无价之宝。如果您能将一个想法转化为代码,并让它更快地运行起来,缩短上市时间,那将是一个巨大的胜利。这就是Python的优势所在。

在开始任何优化工作之前,您应该做的第一件事是确定它是否必要。您的应用程序是否需要满足速度要求?如果是这样,是否存在一个度量标准来衡量您的应用程序,定义它何时足够快?如果这些问题的答案决定了您的应用程序已经足够快,那么您就已经达到了优化所花费时间的极限。

另一方面,如果确定您的应用程序确实需要更快,则需要执行第二步。第二步是对应用程序进行概要分析,以衡量它在哪里花费了时间。

有了这个度量,您就可以应用代码优化的90/10规则。该规则指出,应用程序90%的执行时间花在10%的代码上。当然,这条规则是泛化的,但它确实为您应该在何处进行优化提供了路线图。专注于应用程序花费大部分时间的那10%的代码之外的任何东西都是浪费时间,这不会提高应用程序的整体速度。

任何优化工作都需要迭代地完成,并与分析相结合。这告诉您您的优化工作是否有所改进。它还将帮助您确定所做的改进是渐进式的还是数量级的改进。性能上的微小提升需要与代码的复杂性相平衡。

最后,知道什么时候该放弃。有了应用程序必须满足的性能指标的目标,您就会知道何时停止优化和发布。

1.3.4 社区

Python包索引(https://pypi.org/)是构建应用程序和寻找库和模块以帮助该过程的宝贵资源。

除了在谷歌搜索Python帮助之外,这里有一个有用的Python资源的简短列表:

1.3.5 IDE

在高效编写代码方面,IDE是编辑器的一大进步。它不仅有一个带语法高亮显示的编辑器,而且还具有语言本身的知识。这在编写代码时为您提供了额外的帮助,通常称为智能感知。IntelliSense提供了交互式的代码补全帮助,重构现有的代码,符号名称信息和用法等等。

调试器允许您以交互方式运行程序并设置断点。断点是一个可以在程序行上设置的标记,当代码试图执行该行时,它将停止运行。当程序暂停时,您可以检查当前范围内的变量,并查看程序在此时正在做什么。您甚至可以修改变量的值,这将影响此后的执行。您可以从断点开始,按照程序的行为逐行地单步执行代码。您将能够进入函数调用并遵循其中的行为。

能够调试程序是一种有价值的工具和技能。它远不止在代码中插入print()语句,而是试图收集代码内部发生的事情。Python有独立的调试工具以及成熟而强大的ide:

  • 微软的Visual Studio Code是一个高级的源代码编辑器,它的扩展使它成为一个完整的Python IDE。它可以在Windows, Mac和Linux平台上使用。

  • PyCharm是JetBrains提供的开发工具套件之一,是一个商业Python IDE。它还具有语法高亮、智能感知和强大的调试器,以及与数据库和源代码控制系统集成的工具。它是开发Python代码和应用程序的强大工具,可在Windows、Mac和Linux上运行。

  • WingIDE是另一个强大的商业Python IDE,具有语法高亮和智能感知功能,以及具有数据科学工作有用功能的高级调试器。该平台也可用于Windows、Mac和Linux。

  • Python标准库附带了pdb的交互式调试器。它提供了前面列出的IDE调试器提供的特性,但是是从终端窗口提供的。

posted @ 2023-11-24 19:28  磁石空杯  阅读(87)  评论(0编辑  收藏  举报