首页 编程新闻 高性能新闻 与Mariano Anaya一起在Python中进行清洁编码
与Mariano Anaya一起在Python中进行清洁编码
我们采访了Python专家和畅销书作者Mariano Anaya,讨论了清洁编码、高效代码格式化的重要性以及他最近出版的《Python中的清洁代码,第二版》。
通过
-
2021年7月27日 - 上午9:17
487
7分钟阅读
关键的收获。
- 在软件项目中,干净的代码 不仅仅 是 一件好东西 ,也不仅仅 是 一种奢侈品; ,它是 ,是一种必需品。
- 如果我们希望我们的项目能够以稳定和可预测的速度不断地交付功能,那么拥有一个好的和可维护的代码库是必须的。
- 清洁代码的真正性质依赖于其他从业者应该
,能够阅读和维护代码。 - 阅读《Python中的清洁代码,第二版 》一书*,* 了解所有关于Python的成语,看到好的和坏的代码之间的区别,并确定好的代码和好的架构的特征。
清洁代码没有唯一或严格的定义。此外,可能没有办法正式衡量干净的代码,所以你不能在一个仓库上运行一个工具,告诉你这个代码有多好、多坏或可维护性。当然,你可以运行一些工具,如checkers 、linters 、static analyzers ,等等,这些工具有很大帮助。它们是必要的,但不是充分的。清洁的代码不是机器或脚本可以识别的(到目前为止),而是专业人士可以决定的。
我们采访了Python专家、畅销书作者Mariano Anaya,讨论了清洁编码、高效代码格式化的重要性以及他最近的书。 Python中的清洁代码,第二版.
访谈的详细内容。
-
无法编写高效代码会在多大程度上伤害/影响一个组织/软件?
根据我的经验,低效的代码会非常危险,以至于使整个项目瘫痪。我见过一些服务需要重写,因为它们是多么的不可维护。在某些时候,不可能继续对该API进行修改,而且问题不断堆积,所以需要用一个全新的系统来取代它。
还有一次,有一个应用程序,我们知道它有问题,因为它的编写方式,它的不稳定性导致了客户的沮丧,这也渗透到了公司内部。该应用程序的错误性质与它的编写方式并不分离,而是它的后果。客户在抱怨质量问题,这显示了技术债务对组织的危害程度。我见过几次这种模式,当公司必须做出艰难的决定,停止发布新的功能来修复软件中的错误。
我想说的是,技术债务,如果不加以处理,会导致对公司非常有害的结果。
2.开发人员在开始处理遗留系统时应该注意什么?
首先要确定所累积的技术债务的程度。有一些好的软件项目设计正确,其技术债务相对较低(也许只是将一些库更新到较新的版本,或者将部分代码转向最初编写时没有的新功能)。
在有大量技术债务的情况下,重要的是要了解什么是需要修复的最关键部分。在代码中肯定有一部分,一个模块,或一个功能,是造成大部分客户投诉的原因,这就是需要更迫切地重构的部分。
在这个意义上,关键是要做一个适当的分析,对代码的改进有一个计划,而不是直接跳到代码上,开始重构。这将有助于更清楚地了解需要修改的内容,以及需要重构的程度。也就是说,如果我们要修复代码,或者情况需要完全重写。一般来说,完全重写应用程序应该是最后的一种决定,尽管有一些明显的情况(例如,如果应用程序是用Python2编写的,那么很明显,所有的代码都需要改变)。
3.您预计Python未来会有哪些进步?
很难确定Python在未来几年会发生什么,但有趣的是,类似于Python从其他语言中获取灵感和功能的方式,它现在也在启发现代语言,但它也追赶着新的功能和编程模型。为异步编程所做的所有改进就是这种情况,这些改进被纳入了标准库。
我相信在未来的版本中,异步编程能力将继续得到加强。
我还注意到一些试图使Python更有效率的改进,这是否意味着通过减少标准库中的包的数量来拥有一个更轻量级的解释器,以尝试解决GIL问题。这些都是我比较希望看到的改进。
4.围绕写干净的代码,有哪些流行的神话?
也许最常见的误解是,清洁代码是关于格式化代码的,甚至可能是关于 PEP-8的 。事实上,将技术债务只与代码问题联系起来是另一个流行的神话。技术债务,也是关于技术的,被依赖性所困。
在有安全问题的情况下,能够快速更新你的依赖关系,这也是与技术债务有关的问题,因此也是与清洁代码有关的问题。像迭代的速度,部署的速度和频率,架构的适应性,对项目的成功起着重要作用。
5.谈谈你的书《Python中的清洁代码,第二版》。你的书是按照什么轨迹来帮助读者开发可维护和高效的代码的?
第一章首先介绍了拥有一个结构良好的代码库的重要性,为后面的章节提供了一个框架。这得到了工具的支持,以及关于如何设置项目以获得成功的建议,考虑到自动化工具将帮助我们格式化代码,并建立一个管道,以有效地部署我们的代码,并设置良好的质量门(控制、测试、不同阶段)。
然后,本书介绍了一些Python的具体概念,着重强调了Python语法的特殊性,以及利用该语言所提供的功能,以更简洁的方式来编写代码。
有一些章节重温了软件工程的一般设计思想,如面向对象的设计和设计模式。从这一点出发,本章将从如何在Python中实现的角度探讨软件工程的主题,利用语言本身的特性。
本书的想法是为读者提供工具和概念,让他们理解清洁代码的含义,而不是给出任何定义。这是一本务实的书;面向实践者的读者,所以它特别关注如何以有效的方式完成工作,这往往意味着接受折衷。
6.你的书是否提供了实践的场景来练习它所教授的技术?
当然有!这本书的内容非常务实。这本书有一个非常务实的、实践的方法。在介绍每个想法的时候,都会有一些例子来证明该实施方案是如何运作的。此外,我还特别努力使这些例子尽可能的真实。考虑到这些例子需要展示一个想法,而不考虑多余的细节(也就是说,抛开所有与所做解释无关的东西,并隔离出手头的问题),它们仍然是现实世界的场景,是任何读者都能与他们的日常工作联系起来的代码片段。这里没有像斐波那契数列那样捏造的例子,也没有任何人通常不会在真实的代码上发现的东西。从这些例子中推断,读者可以用这些代码作为参考来解决他们的问题。
为了进行更多的练习,有一个 Github资源库 ,书中的所有代码都在那里,而且不断地更新。还有一个 Docker镜像 ,用于本书的全部设置,环境已经配置好,读者可以用它来测试代码,并通过修改代码来学习。
关于
Mariano Anaya是一名软件工程师,他大部分时间都在用Python创建软件和指导其他程序员。除了Python,Mariano的主要兴趣领域是软件架构、函数式编程、分布式系统和在会议上发言。他是2016年和2017年欧洲Python大会的发言人。要了解更多关于他的信息,你可以参考他的GitHub账户,用户名是rmariano。他的 speakerdeck 用户名是 rmariano。
VIAExpertInsight
分享
[
脸书
](www.facebook.com/sharer.php?…
推特
](www.linkedin.com/shareArticl…)
[
Packt Expert Network(PEN)提出了Packt Publishing的一个新的图书系列,它将与更广泛的出版计划并驾齐驱。我们从2017年底开始出版这一系列的书籍,并且每月都会增加新的书籍。专家网络的书籍以各自领域的领先作者为特色,他们拥有丰富的经验和对趋势性话题的深刻认识。我们的目标是为专家的洞察力和意见提供一个平台,既包括个别作者,也包括在同一领域工作的专家群体。我们的书目在很大程度上围绕着作者本人的声音和身份,以及读者与个人联系的机会,并由我们封面上的作者形象支持。
编程中的必读书目
学习有效浏览壳牌的基本Linux命令
一旦我们学会了如何部署Ubuntu服务器,如何管理用户,以及如何管理软件包,我们就应该花点时间...
与Mariano Anaya一起学习Python中的清洁编码
2021年7月27日 - 9:17 am
探索Angular中的表单--类型、好处和区别
2021年7月21日 - 11:08 am
访谈
与Mariano Anaya讨论Python中的清洁编码
专家网 - 2021年7月27日 - 上午9:17
与John K. Thompson一起了解分析团队的基本原理
专家网 - 2021年4月6日 - 上午3:15
伊姆兰-巴希尔谈区块链的基本原理、神话和初学者的理想路径
专家网 - -专家网 2021年2月15日 - 下午2:08
将人工智能带入B2B世界。追访Sidetrade首席技术官马克-谢尔顿[访谈]
Packt编辑部 - 2020年2月24日 - 上午11:54
关于Adobe InDesign 2020,平面设计行业方向等。Adobe认证合作伙伴和讲师伊曼-艾哈迈德[访谈]。
Savia Lobo - 2020年1月24日 - 上午6:00