其实有很多的博客文章都在讲述为什么懒惰是一个优秀程序员的品质之一,但只有你成为一个程序员才会注意到这些博客。而本文想说想是关于如何检视一个程序员的懒惰,看看它是如何成为好事或坏事的。
如果你知道一点关于编程的事,很快你就会发现软件开发里到处充满了尝试和错误。你修改一下,刷新浏览器,看看是否有效。就像漂洗衣服,一遍又一遍。有时甚至是为了一个极其简单的小问题(如果你为IE开发web应用,你就会知道)。
软件程序员的工作中充满了大量重复性的工作,懒性正为此而来。一个很快就厌烦了重复工作的程序员会第一时间开发出工具来自动执行这些工作。他们会想办法在每次代码修改时让浏览器自动刷新。他们会做出工具来清除数据库、自动去执行文件导入的测试。如果工作是有规律可循,他们就会发现,就能让它们自动来执行。
很多时候,我看到一些客户,他们实际需要软件来替他们做,但他们不知道这是一个问题,只是长期的手工来做那些重复性的工作。既无效率,又浪费时间和金钱。
如果他们找到一个程序员,向他们介绍自己的工作流程,幸运的话,程序员能在几个小时里帮他们做出便利工具。如果复杂些,可能不是那么简单,但从长期角度看,总比一直使用Excel处理业务要强很多。
Ruby on Rails通常是很多程序员用来开发这种业务处理软件的首选框架。它能让程序员在几个小时里开发出一套简单好用的自动业务处理工具。这些工具能让你对业务看的更清楚。通过这些工具提升的业务流程不仅让你更方面,也会让你的客户受益,很有可能让你挣更多的钱。
我时常会说,程序员越懒越好。这并不是说在开发中图省事是正确的方法。一个懒程序员会知道,走捷径从长期角度看是有害的。事先计划好才能后顾无忧。懒程序员都是本垒打,会以长远视角出发。但同时也知道走捷径。如果一个想法还不成熟,只是基于假设,懒程序员会说:我们先做一些,测试一下,看看反馈,然后基于此做出下一步决定。基于假设的软件,你做的越多,返工时投入的人力物力以及金钱就越多。这是任何人都不希望的。
如果将来需要修改,懒程序员很容易实现,因为已经有预案了。过度堆砌技术的程序员反而是把自己困在了一个盒子里,一个一开始就有成百上千功能的盒子里。也许他自己认为很宏伟。但事实会证明他设计的这个大盒子很难根据业务的变化来改造。
所以,现在当你听说懒惰是一种美德时,你也明白了其中的道理。懒不再是一个贬义词。它是一种赞美。
[英文原文:
The Laziest Programmer In The Room ]0'