高效程序员的特征:聪明,懒惰(转)

这里我使用了聪明懒惰程序员这几个词。我说的这几个词的意思是:

  • 程序员:有积极活力的,专注于用代码解决真实世界里的问题
    • 不是指那些梦想家,那些永远只想不做的人

  • 聪明:能够周全的思考问题(不是那些耍小聪明的人)

  • 懒惰:就像是程序中的lazy-loading,是指延后写代码的时间(而不是无所事事的人)。

正确的软件开发应该是懒惰式开发,也被称作忍耐式开发;这种开发方式的表现是,在真正动手写代码前,程序员要花大量的时间通盘考虑所有可能的解决方案和途径。这可以看作是延缓写代码,在没有完全理解问题前绝不动手写代码。先把问题理解清楚,确保将要写的代码能真正的解决问题,这将会避免之后写出大量无用的代码。

这里说的先把问题弄清楚,表现有:

  • 真正的理解需求,让产品部门(业务分析部门)弄清楚他们真正需求的是什么。
    • 这些部门通常不给足够的时间来整理需求

    • 他们经常不是请教问题领域专家,而是顺从领导的意见

    • 他们通常无法提供前后一致或完整的需求意见。

  • 清楚跟团队中的其它程序员或其他团队中的程序员需要那些交互,如何交互,这包括:
    • 使用白板交流

    • 画流程图(UML或Visio)

你需要花大量的时间调研,来确保需求符合实情,来做工作让你和同事的交流有共同的语言语义。然而,程序员都喜欢立刻冲上去编程,喜欢在电脑前不停的敲代码。

在真正的软件开发中,只有5%的开发时间是有效率的(你可以参考《程序员开发效率悖论》)。如果你发现一个程序员用100%的时间都在盯着屏幕,那么,你看到的这个程序员是最糟糕的程序员。

如果一个程序员总是在电脑前编码,这绝对是一个不好的信号。

高效的程序员总是不断检查他对需求的理解,确保他们的代码和需求是同步的。高效的程序员是频繁的和产品经理/业务人员沟通交流,你可以经常看到他们使用白板与同事和架构师交流讨论。程序员的阅历和经验都是用来提高开发效率,这最优秀的程序员:

  • 他们思考代码的时间增加而写代码时间减少

  • 对问题的透彻理解使调试代码的速度更快

  • 深思熟虑后的代码速度更快

  • 代码长度更短

程序员从心理上讲都是喜爱自己的代码的。

烂程序员不喜欢去修改已经写成的烂代码。相比起优化自己的代码,他们更愿意简单的增加更多的代码,以此来弥补之前的缺陷。更糟糕的是,他们喜欢把责任归咎于他人。最终,一堆不好用的代码上在来另外一堆不好用的代码,整个系统变得到处是bug,极不稳定。

优秀的程序员经常也会写出烂代码,但他们能看到那些代码需要优化,哪些需要重写。优秀的程序员和不优秀的程序员的区别就在于对有问题的代码的态度,优秀的程序员的做法是:

  • 如果代码整体上好的,那就重构代码。

  • 如果代码整体上有问题,那就重新代码

当代码中有需要优化或需要重写的地方时,时间拖的越久,你就越难回头解决这些问题。因为对这些代码依赖的程序会越来越多,越来越深,当你优化这些代码时,相关的依赖也需要进行相关修改。当积累的问题越来越多时,轻松的优化/重新这些代码已经变得不可能。而使用继续增加代码的方式来弥补之前代码问题,会让系统变得越来越不稳定。

如果脑子里没想清楚,那就懒一些,把写代码的时间往后推。

[英文原文:Productive Developers are Smart and Lazy ]

高效程序员的特征:聪明,懒惰(转),布布扣,bubuko.com

时间: 2024-12-20 01:21:56

高效程序员的特征:聪明,懒惰(转)的相关文章

高效程序员的特征:聪明,懒惰

这里我使用了聪明,懒惰和程序员这几个词.我说的这几个词的意思是: 程序员:有积极活力的,专注于用代码解决真实世界里的问题.不是指那些梦想家,那些永远只想不做的人 聪明:能够周全的思考问题(不是那些耍小聪明的人) 懒惰:就像是程序中的lazy-loading,是指延后写代码的时间(而不是无所事事的人). 正确的软件开发应该是懒惰式开发,也被称作忍耐式开发:这种开发方式的表现是,在真正动手写代码前,程序员要花大量的时间通盘考虑所有可能的解决方案和途径.这可以看作是延缓写代码,在没有完全理解问题前绝不

高效程序员的45个习惯

本文转载 <高效程序员的45个习惯>一书 目录 第1章 敏捷---高效软件开发之道 第2章 态度决定一切 1.做事 2.欲速则不达 3.对事不对人 4.排除万难,奋勇前进 第3章 学无止境 5.跟踪变化 6.对团队投资 7.懂得丢弃 8.打破沙锅问到底 9.把握开发节奏 第4章交付用户想要的软件 10.让客户做决定 11.让设计指导而不是操纵开发 12.合理地使用技术 13.保持可以发布 14.提早集成,频繁集成 15.提早实现自动化部署 16.使用演示获得频繁反馈 17.使用短迭代,增量发布

读书笔记 -《高效程序员的45个习惯-敏捷开发修炼之道》

<高效程序员的45个习惯-敏捷开发修炼之道> 一本2010年出版的书,当时敏捷还只是在国外开始流行,像我这种菜鸟级根本听都没听过.这次通读了这本书,受益良多,回顾自己的职业生涯,多是漫无目的的瞎混,为了生活而生活而已.通过这本书才算对敏捷有了初步的了解,并有意向敏捷进行实践.愿此文可结识更多敏捷的先行者,带领我进入敏捷的世界. 第一章. 敏捷--高效软件开发之道 名言:  不管路走了多远,错了就要重新返回   -- 土耳其谚语 敏捷开发宣言  个体和交互 > 过程和工具 可工作的软件 &

《高效程序员的45个习惯》

敏捷开发是当下最流行的开发方法,它采用的是一种以人为核心.迭代.循序渐进的开发思想,值得你关注和学习. 最近我就阅读了一本有关敏捷开发的书籍,<高效程序员的45个习惯>. 它以"举反例"的方式来讲述了敏捷开发中程序员应该运用的45个好习惯. 本书涉及到的45个习惯是: 1 做事2 欲诉则不达3 对事不对人4 排除万难,奋勇前进5 跟踪变化6 对团队投资7 懂得丢弃8 打破砂锅问到底9 把握开发节奏10 让客户做决定11 让设计指导而不是操纵开发12 合理地使用技术13 保持

学习笔记之--高效程序员的45个习惯

有本关于敏捷开发方面的书非常不错<高效程序员的45个习惯-敏捷开发修炼之道>,Venkat Subramaniam和Andy Hunt著,该书简短.易读.精炼.深入,深刻且实用.对于想要采用敏捷方法的人很有价值.此书通过常理和经验,阐述了为什么应该在项目中实用敏捷方法.更难得的是,这些行之有效的实战经验,竟然从一本书中得到了.如果能拿这些习惯在项目中一以贯之,肯定会受益匪浅.下本罗列该书这45个习惯,一并列出其中的Key Point. -----------------------------

《高效程序员的45个习惯:敏捷开发修炼之道》

--敏捷开发入门经典-- [内容] <高效程序员的45个习惯:敏捷开发修炼之道(修订版)>总结并生动地阐述了成为高效的开发人员所需具备的45个习惯.思想观念和方法,涵盖了软件开发进程.编程和调试工作.开发者态度.项目和团队管理以及持续学习等几方面. <高效程序员的45个习惯:敏捷开发修炼之道(修订版)>适合所有程序员阅读. [作者] Venkat Subramaniam博士: Agile Developer公司创始人,敏捷开发权威人士.他培训并指导了美国.加拿大.印度和欧洲多国的上

『阿里巴巴内部分享』高效程序员的45个习惯笔记

敏捷(agility) 1 态度决定一切 1.1 做事 - 先解决问题,再追究责任 1.2 欲速则不达 代码除了可以运行外,还要保持整洁 不要为了追赶工期而陷入简单修复的陷阱(+1/-1修复) 第三方代码除了可用外,还要知道其大体原理 要进行代码复核,保证代码质量,增加知识 1.3 对事不对人 表达观点,懂得沟通技巧 容纳自己不能接受的想法 设定deadline,确保执行力 设定仲裁者,防止决策被资深员工控制,及时制止假大空话 支持已经做出的决定 1.4 排除万难,奋勇前进 发现问题,不要试图掩

高效程序员的45个习惯:敏捷开发修炼之道之主题建议翻译1-10

高效程序员的45个习惯:敏捷开发修炼之道1-10 阅读本书时,总共有45个建议,每个建议有一个主题,并且每个建议有2段话,第一段话是一般人的思维,之后作者对这种思维现象进行剖析,最后得出作者自己的结论,第二段话就是作者的观点. 本次翻译,主要分为5篇来完成,前四篇每篇为10个建议,最后一个为5个建议.每次翻译的中文在上面,原版英文在最下面展示,已方便大家的对照学习. 由于个人能力有限,如有翻译不恰当之处,还请大家多多指教,给我留言,给出建议,我会更新文章,让看到文章的人员有所裨益. 后续的剩余翻

高效程序员的45个习惯:敏捷开发修炼之道(中文版)pdf

下载地址:网盘下载 "书中'切身感受'的内容非常有价值--通过它我们可以做到学有所思,思有所悟,悟有所行." --Nathaniel T. Schutta,<Ajax基础教程>作者 "此书通过常理和经验,阐述了为什么你应该在项目中使用敏捷方法.最难得的是,这些行之有效的实战经验,竟然从一本书中得到了." --Matthew Johnson,软件工程师 十年来,软件行业发生了翻天覆地的变化.敏捷方法大行其道,测试和测试驱动开发在很多开发人员的工作中扮演着重