0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

快速提升Python开发和配置效率的5个小技巧分享

马哥Linux运维 来源:陈翠 2019-02-21 17:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

在以前,作为一个刚开始使用Python开发者,我时常为布设一个有效的开发环境感到困扰。找到一套自己能顺畅使用的环境且为此培养一个正确的习惯是很困难的。

之前我一直没有意识到这些事情对我的工作效率影响有很大的影响,我甚至不知道一些我现在经常在开发中应用的很有价值的习惯以及工具!随着我的经验增长,我发现这种情况是普遍存在于Python开发者中的,包括我的同事,技术交流大会上的同好,网络论坛上的认识的开发者以及大量发邮件向我咨询的人,可以看出这是一种很常见的现象。

不过到如今,我相信入门级的Python程序员是可以通过应用一些重要的技巧和工具到他们的日常工作中来显著的提升他们的工作效率的。

这篇文章是用来帮助你认识并解决五个在Python开发配置中常见问题的。这些问题我之前都曾经遇到过并且曾经作为同事和团队领导帮助他人解决过。如果你能在开发中避免这些问题,作为你一个Python开发者你会获得更好的开发体验并且有更高的开发效率。

编译器的归编译器

当开发者把时间用在做一些电脑能做的更好的事情上时,这可以称之为一种时间上的浪费了,一个典型的例子就是程序员将时间花在寻找一些可以被自动化工具更准确定位的bug上。

可能是由于Python动态语言的特性以及早期被视为“脚本”语言的原因,到现在依然很少看到有什么静态代码分析工具和拼写检查器用在Python上。

然而此类工具是非常有帮助的,他们基本上能将特定的一类bug和语法错误完全检查出来并提醒开发者避免犯这些错误。例如这些工具能找到影响代码正常编译的功能性bug像是错误拼写的标识符或是发现一些代码的质量问题例如没有使用过的变量和引用。

当然我的意思并不是说静态分析工具就是万能良药,但至少他们的确帮助我们减少了debug和代码审查的时间,也减少了开发初期的时间投入。

如果你只想要一个,仅仅一个工具用来提升你的Python代码质量,同时不被错误的纠正以及啰嗦的提示信息干扰,那么我推荐你使用Pyflakes。Pyflakes是一个开源的,免费的,同时容易安装的拼写检查工具。

为了更快的得到反馈以及更早的发现bug,我建议你将Pyflakes集成到你的代码编辑器和后台服务器上。将自动修正代码错误的功能融入你的整个开发流程能让你在工作时更加轻松。不过请保证你的团队里所有的开发者都在使用同一套配置以避免通过的程序中有未被发现的告警。

建议1:使用像Pyflakes这样的静态代码分析工具

避免无意义的代码风格讨论

你的团队会在开发中进行代码审查?那是最好的!但是请注意,没有太多经验的代码审查者经常犯的一个错误是花费太多时间反馈一些自动化工具就能帮他们做好的东西。是的,我说的就是代码风格问题。

开发团队在代码审查时非常容易陷入一种讨论代码风格的情境中,大多数时候他们讨论的都是诸如“这里应该多加一个空格”或者“类命名应该用驼峰命名法”之类的东西。

这是一个典型的“自行车棚效应”注1的例子,它阻止了开发者去关注一些真正应该被关注的问题,那些会导致投入更多资金和时间去维护的问题。

快速解决这些问题的方法就是选一个可以从网上找到的Python代码风格指导手册,例如PEP8或者Google的Python代码风格指南,然后利用自动化工具去确保项目代码遵从了指南里的风格。

我推荐使用以PEP8为基准风格的Pycodestyle或者flake8代码风格检查工具。他们可以有效避免大多数的关于代码风格的争论同时能让你的团队更加专注在更应该关注的问题上。

建议2:选择一个特定的代码风格然后用自动化工具去保证代码遵从了这种风格

千里之堤溃于蚁穴 - 卡顿和死机的影响

可用性研究表明网站加载时间对用户是否放弃原先的目的有很大的影响:如果人们对等待某件事的发生感到疲倦和不耐烦,则他们放弃他们原先计划的事的可能性将大大提高。

作为一个软件开发者,等待各种各样的工具完成他们的任务是每天工作过程中很平常的一部分。毕竟我们经常在等待一个第三方包的安装,一个测试的运行或者一个代码提交的完成。当然我们是不会每次都“放弃”那些必须等待特定工具运行几秒甚至几十秒的工作的,对正在进行的工作保持注意力毕竟也是我们工作的一部分。

然而,保持这种程度的专注是很耗神的,而且我们可能因为这种专注耗费了过多的精神力影响了我们在其他方面的工作:例如在午后更快的感觉到疲惫,或者在自己刚提交的代码中出了一个微小的bug。

以我个人的经验来说,即使是很微小的卡顿或者延迟在积累之后也会产生滚雪球般的恶劣影响。在一个速度很慢的编辑器上切换文件或者是在一个速度很慢的电脑上切换应用都是很烦躁的一件事。我们甚至可以以一种近乎吹毛求疵的态度去关注例如编辑器字符输入延迟之类的细节问题。因为我觉得这些微小的延迟也会产生滚雪球一样的影响,他们影响了我们的生产效率同时使人感到烦躁。

我们设想一下,在开发过程中,你每十秒花了一秒的时间在等待一个任务的完成,这个时间的耗费累积起来,相当于你一周有半天都在等待,或者说一个月有整整两天,抑或是一年的工作时间中你有一个月在等待中过去了。

也许这种估算有点夸张,但是从另一个角度看,你花了一个下午的时间来优化你的开发工具导致你的一整年的工作时间多出来一个星期,这样是否值得你去尝试改进你的工具呢?要我说那是必须的!

建议3:你的开发工具应该保持高响应速度,简单总是好的

4 不要在一个让你不舒服的编辑环境下工作

使用让我不适应的工具工作会大大影响我的工作效率,我觉得身为读者的你应该也懂这种感觉。一些开发工具非常难以使用,它们会将你的精力和热情完全耗尽。

对你来说,什么工具是你认为在日常的开发过程中最重要的呢?如果要我来回答,那肯定是我的代码编辑器。对有些开发者来说可能是答案是他们的邮件客户端或者团队的聊天应用,但我们还是希望一天大部分的工作时间是用在写代码上的。

这就意味着将时间投入在一个令人愉悦的代码编辑环境中是绝对值得的,因为这样做的直接结果就是更高的工作效率,还有更加愉快的心情!

作为Python开发者我们有很多编辑器或是IDE工具供我们选择,例如Vim, Emacs, PyCharm, Wing IDE, Atom, Eclipse PyDev, Sublime Text等等等等。

在经过长时间的适应和调整还有对各种代码编辑器及IDE的尝试后,我最终选择了使用Sublime Text。它的高响应速度,简单的结构和稳定性是我选择它的原因。它和我现在的编程工作配合的很好。我最终选择它也是我尝试了非常多其他的编辑器和IDE之后做出的决定。

你并不需要选择和我一样的工具。我所要表达的意思是你需要找到最适合你自己且符合你独特需求的工具去工作。所以请多找一些编辑器去尝试尝试看哪种你最喜欢,这对你的工作效率大有裨益。

建议4:找到适合你的编辑器并把它弄成你需要的样子

5 在购买需要的工具时,不要吝啬

我曾经和一个使用收费编辑器的人一起合作写代码。但是这个开发者不愿意花钱购买这个编辑器的正式版本,他们用这个编辑器的试用版来代替正式版进行工作。

而这个使用版本在你保存文件之后,每隔一两分钟就会跳出一个弹窗来提醒你购买正式版。这个开发者又有经常保存文件的习惯,所以他每天都会看到这个弹窗成百上千次......

要和这些弹窗说再见需要购买一个70美元的正式版执照。虽然我很欣赏勤俭节约的精神,但是在这件事上我觉得这样节省实在太荒谬了。在你经常使用的开发工具上抠门和想办法省小钱是很愚蠢的,我很确定你在处理这些弹窗和由此带来的一系列问题上的损失绝对超过70美元了。

如果你是在为自己工作,则这些执照上的花费是可以作为商业费用从你的税费中扣除的。如果你是在为某个公司工作我确信在你解释清楚为什么需要这些工具且这些工具能有效的提升你的工作效率之后,公司的管理者会愿意为你在工具上的这笔投入买单的。

和美术设计师或者建筑师相比,程序开发者花在购买软件开发工具的许可证上的钱实在是少多了,甚至有一部分非常棒的工具和编辑器是免费的。将钱投入在合适的工具上是很合理的而且你的工作也会因此受益。

建议5:将钱花在让你感到舒服和更有效率的工具上是值得的

#从哪里开始实践呢?

在上面的内容里我已经给出了五个比较容易在开发中出现并且严重影响工作效率的问题。还好大部分这些问题相对容易解决,只要你使用下面这些正确的方法:

建议1:使用像Pyflakes这样的静态代码分析工具

建议2:选择一个特定的代码风格然后用自动化工具去保证代码遵从了这种风格

建议3:你的开发工具应该保持高响应速度。简单总是好的

建议4:找到适合你的编辑器并把它弄成你需要的样子

建议5:将钱花在让你感到舒服和更有效率的工具上是值得的

下面是一个应用这些方法很好的开端:找到一个最让你感到头痛的问题。将这个问题大而化小的一步步解决,而不是急于求成的一口吃个胖子,每次解决一个小问题,持续保持这种状态,可以看到问题已经逐渐被你搞定了。

将这些改变视为一种长线投资--即使是最小的变化也会在一段时间后给你的工作效率带来显著提升。以我个人经验来说,成功不过是培养好习惯和优秀思维方式的一种持续过程罢了。

一个好的开发环境会让你对解决工作中的问题更有信息,也更有效率。当你对你的Python工作环境感到舒适时,你在工作中会更加愉快,同时也能感受到更多乐趣。祝你好运!

注1:自行车棚效应是一个用来表示程序员之间对于一些无关紧要的细节争论的名词。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • python
    +关注

    关注

    58

    文章

    4884

    浏览量

    90300

原文标题:5个提升生产效率的Python开发和配置的小技巧

文章出处:【微信号:magedu-Linux,微信公众号:马哥Linux运维】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    RK3576 单板机 C/Python/MQTT 应用开发手册(二)

    本文为创龙科技RK3576 单板机应用开发指南,包含开发环境配置、GDB 调试、外设控制(LED/CAN/ 串口)、Python 开发及 M
    的头像 发表于 04-21 10:43 42次阅读
    RK3576 单板机 C/<b class='flag-5'>Python</b>/MQTT 应用<b class='flag-5'>开发</b>手册(二)

    RK3576 单板机 C/Python/MQTT 应用开发手册(一)

    本文为创龙科技RK3576 单板机应用开发指南,包含开发环境配置、GDB 调试、外设控制(LED/CAN/ 串口)、Python 开发及 M
    的头像 发表于 04-20 13:55 107次阅读
    RK3576 单板机 C/<b class='flag-5'>Python</b>/MQTT 应用<b class='flag-5'>开发</b>手册(一)

    什么是低代码:低代码开发平台详解 5优质低代码平台工具

    的深度融合,自然语言转代码、智能流程优化等功能让开发效率提升300%以上,低代码已从“可选工具”变为企业数字化转型的“关键抓手”。 低代码开发平台,就能
    发表于 04-07 16:03

    [VirtualLab] 使用Python进行跨平台参数扫描

    ** 准备Python **配置路径 ** **在VirtualLab Fusion中定义一光学设置 ** **保存光学设置并导出参数到一XML文件 ** **运行模拟 **
    发表于 03-31 09:36

    迅为电子RK3568+RK3588开发板资料焕新升级!多维度优化助力开发效率提升

    迅为电子RK3568+RK3588开发板资料焕新升级!多维度优化助力开发效率提升
    的头像 发表于 03-26 15:06 457次阅读
    迅为电子RK3568+RK3588<b class='flag-5'>开发</b>板资料焕新升级!多维度优化助力<b class='flag-5'>开发</b>者<b class='flag-5'>效率</b><b class='flag-5'>提升</b>

    小华半导体数字电源算法配置工具DPACT介绍

    小华半导体数字电源算法配置工具(DPACT)是一款基于公司丰富参考设计方案,专为电力电子控制算法开发而设计的图形化开发工具。该工具深度集成XHCODE底层配置环境,支持用户以图形化方式
    的头像 发表于 02-11 11:28 449次阅读
    小华半导体数字电源算法<b class='flag-5'>配置</b>工具DPACT介绍

    1688 商品详情 API 调用与数据解析 Python 实战

    你想要的是 1688 商品详情 API 的 Python 调用与数据解析实战方案,核心是完成 API 凭证配置、接口请求(含签名)、响应数据解析、异常处理 的全流程落地,我会提供可直接运行的代码,并
    的头像 发表于 02-10 11:23 385次阅读

    RK3562单板机系统使用与开发手册:基础操作、升级部署与工具链配置(一)

    本文为创龙科技RK3562 单板机 Linux 系统使用指南,核心包含系统配置、升级部署与组件安装三大模块。内容涉及静态 IP 配置、恢复出厂设置、OTA/U 盘升级,以及 Python
    的头像 发表于 01-27 15:05 362次阅读
    RK3562单板机系统使用与<b class='flag-5'>开发</b>手册:基础操作、升级部署与工具链<b class='flag-5'>配置</b>(一)

    推荐5让测试效率翻倍的MCP

    推荐5让测试效率翻倍的MCP
    的头像 发表于 09-19 10:02 753次阅读
    推荐<b class='flag-5'>5</b><b class='flag-5'>个</b>让测试<b class='flag-5'>效率</b>翻倍的MCP

    termux如何搭建python游戏

    模拟器,支持通过APT包管理器安装软件。搭建Python游戏开发环境前需完成以下基础配置: 1. 更换国内源 为提升下载速度,需替换Termux默认源为清华源,执行以下命令: `
    发表于 08-29 07:06

    Python脚本实现运维工作自动化案例

    还在为重复性运维工作而烦恼?每天被各种告警、监控、部署搞得焦头烂额?作为一名有10年经验的运维老司机,今天分享5超实用的Python自动化脚本,让你的运维工作效率
    的头像 发表于 08-27 14:46 1360次阅读

    提升焊接效率5技巧:电池点焊机操作实战指南

    在电池制造领域,焊接效率直接影响生产进度和成本。如何用好电池点焊机,实现高效又稳定的焊接,是许多生产企业关心的问题。以下为大家分享五提升焊接效率的实用技巧,帮助操作人员更好地掌握设备
    的头像 发表于 08-21 10:17 948次阅读

    睿擎平台极简开发重要实践—— PinMux 配置工具 | 睿擎派试用名单公示

    RT-Thread睿擎工业开发平台是为工业场景设计的软硬件一体化开发方案,全栈自主可控,赋能用户聚焦核心业务创新,大幅提升开发效率。睿擎平台
    的头像 发表于 06-11 17:05 1649次阅读
    睿擎平台极简<b class='flag-5'>开发</b>重要实践—— PinMux <b class='flag-5'>配置</b>工具 | 睿擎派试用名单公示

    HarmonyOS5云服务技术分享--ArkTS开发Node环境

    带来的效率提升吧!遇到问题欢迎在评论区留言,我们一起debug~ ? 希望这篇指南能为你打开HarmonyOS云开发的大门!如果觉得有用,记得点赞收藏哦~ ? 我们下期再见!
    发表于 05-22 17:21

    Java开发者必备的效率工具——Perforce JRebel是什么?为什么很多Java开发者在用?

    Perforce JRebel是一款Java开发效率工具,旨在帮助java开发人员更快地编写更好的应用程序。JRebel可即时重新加载对代码的修改,无需重启或重新部署应用程序,就能让开发
    的头像 发表于 04-27 13:44 973次阅读
    Java<b class='flag-5'>开发</b>者必备的<b class='flag-5'>效率</b>工具——Perforce JRebel是什么?为什么很多Java<b class='flag-5'>开发</b>者在用?