程序员要学会偷懒---正确运用自动化技术

简介: 马云语录:   世界是由懒人来支撑的!   懒不是傻懒,如果你想少干,   就要想出懒的方法。       要懒出风格,懒出境界。

马云语录:

  世界是由懒人来支撑的!

  懒不是傻懒,如果你想少干,

  就要想出懒的方法。    

  要懒出风格,懒出境界。

McConnell在他的<<Code Complete>>提到三种"懒":"实在的懒","开明的懒"以及"一劳永逸的懒"。并说明第三种"懒"才是最具产值的"懒",因为它需要运用工具或者代码来为自己完成任务:这就是工作中的自动化。<<The Pragmatic Programmer>>的作者也有专门章节提到"一切都要自动化"。这些都有异曲同工之妙。到底我们的开发工作中有哪些是可以自动化的呢?


凡是需要重复的工作(Routine)都可以想办法做到自动化。第一步,可以将编译及软件发布的工作自动化。这类的流程比较固定,还可以在编译后执行一些检查工作。如果你愿意都可以将写Release Note的动作自动化。第二步,可以将手工容易出错,但判断条件单一的工作自动化。比如多国语言的制作以及当前Bug状况检查的动作自动化。 第三步,将测试自动化。对于一些固定的测试用例,或者为新产生的Bug而建的测试用例放置到一个自动化测试脚本中,这样基本可以做到有效的回归测试,对于软件质量将有相当大的帮助。程序员大多对于测试并不热衷,如果有这样一个偷懒的方法,未尝不是件好事。第四步,将编码自动化。至少有些程序是可以这样的。


偷懒的背后是需要自我突破的勇气的,也是一种永不止步的进取精神。如果发现自己不断重复一件事情,或许每次有些小的变化,我们都可以努力建立一个模型或者流程,使它可以自动化。在财务管理中有一个概念叫ABC (Activity based costing),它是强调将工作细化到每个独立的步骤。在软件开发工作中绝大份工作都是遵循一定的流程或模型,只要找到这个不变的内在,就可以想办法加以自动化(或者半自动化)。


而可以用来帮我们做到自动化的工具很多,大部份都在SourceForge中,有空去转转。它们或者有以下一些分类:

  代码检查工具:xLint  (splint), cyclo

  UI自动化工具:AutoIt之类的

  强大的脚本工具: Perl, Python

  还有一个常在你身边的工具:Microsoft Office.  我经常使用Excel来作公式的验证,我的一个同事也利用Word中的VBA还完成一批文件格式转换的工作。


如果我们可以将工具或自己开发的程序视为自己团队的一员,那我们就不是一个人在工作。让它们忙去吧,我们还有更重要的事做!


参考:

  开发工作中使用的软件列表

  懒人可以用Automator提高工作效率

  使用脚本简化工作

  程序员要学会偷懒---正确运用自动化技术

  如何使用搜索技巧来成为一名高效的程序员

   [《人件》摘录]: 生产力:赢得战役和输掉战争


目录
相关文章
|
1月前
|
运维 监控
现代运维中的自动化技术应用与挑战
现代运维工作中,自动化技术的应用已成为提高效率、降低成本的重要手段。本文探讨了自动化技术在运维领域的应用现状和挑战,包括自动化工具的选择、实施过程中的注意事项以及未来发展趋势。通过深入分析,帮助读者更好地理解和应用自动化技术,提升运维工作效率。
18 2
|
4月前
|
前端开发 JavaScript Java
用Python实现高效数据记录!Web自动化技术助你告别重复劳动!
用Python实现高效数据记录!Web自动化技术助你告别重复劳动!
33 1
|
5月前
|
运维 监控 持续交付
游戏自动化运维技术的应用
游戏自动化运维技术的应用
43 0
|
2月前
|
安全 测试技术
现代软件测试中的自动化技术应用及挑战
在当今数字化时代,软件测试的重要性日益凸显。本文探讨了现代软件测试中自动化技术的应用现状和挑战,分析了自动化测试在提高效率、降低成本、增强可靠性等方面的优势,同时也提出了自动化测试所面临的挑战和解决方案。
|
9天前
|
数据采集 机器学习/深度学习 人工智能
自动化测试中AI辅助技术的应用与挑战
【4月更文挑战第30天】随着人工智能(AI)技术的飞速发展,其在软件自动化测试领域的应用日益增多。本文探讨了AI辅助技术在自动化测试中的应用情况,包括智能化测试用例生成、测试执行监控、缺陷预测及测试结果分析等方面。同时,文章还分析了在融合AI技术时所面临的挑战,如数据质量要求、模型的透明度与解释性问题以及技术整合成本等,并提出了相应的解决策略。
|
9天前
|
前端开发 测试技术 持续交付
【Flutter 前端技术开发专栏】Flutter 中的 UI 测试与自动化测试
【4月更文挑战第30天】本文探讨了 Flutter 应用中UI测试和自动化测试的重要性,包括保障质量、提高效率和增强开发信心。Flutter提供`flutter_test`库进行Widget测试,以及`flutter_driver`进行集成测试。UI测试涵盖界面布局、交互和状态变化的验证,最佳实践建议尽早引入测试、保持用例简洁,并结合手动测试。未来,随着Flutter技术发展,UI测试和自动化测试将更加完善,助力开发高质量应用。
【Flutter 前端技术开发专栏】Flutter 中的 UI 测试与自动化测试
|
10天前
|
机器学习/深度学习 人工智能 算法
深入分析自动化测试中AI驱动的测试用例生成技术
【4月更文挑战第29天】随着人工智能技术的不断发展,其在软件测试领域的应用也越来越广泛。本文主要探讨了AI驱动的测试用例生成技术在自动化测试中的应用,以及其对提高测试效率和质量的影响。通过对现有技术的深入分析和实例演示,我们展示了AI如何通过学习和理解软件行为来自动生成有效的测试用例,从而减少人工编写测试用例的工作量,提高测试覆盖率,降低错误检测的成本。
|
2月前
|
人工智能 jenkins 大数据
软件测试中的自动化工具和技术
随着软件行业的快速发展,软件测试变得愈发重要。本文将探讨软件测试中的自动化工具和技术,介绍了自动化测试的优势、常用的自动化测试工具和技术,并探讨了自动化测试在当前软件开发过程中的应用前景。
|
2月前
|
人工智能 运维 监控
未来数据中心的自动化运维技术探索
随着信息技术的快速发展,未来数据中心的运维需求将变得更加复杂而多样化。本文将探讨自动化运维技术在未来数据中心中的应用,分析其优势和挑战,并探讨如何实现高效的自动化运维管理。
|
2月前
|
人工智能 测试技术 虚拟化
现代软件测试中的自动化工具与技术
随着信息技术的迅猛发展,现代软件开发和测试领域也在不断创新。本文将探讨现代软件测试中自动化工具与技术的应用。通过分析自动化测试的优势、挑战以及最佳实践,帮助读者更好地理解当前软件测试领域的发展趋势,并为实际工作提供参考。
20 1

热门文章

最新文章