[转载] 程序员的态度

原文: http://jjyy.guru/how-fewer-bugs/

文章中的态度对于开发人员来说非常重要, 我们需要有精益求精的态度. 在开发一个新模块的时候, 往往很多人都有这种想法, 设计都经过充分的思考和讨论, 但是随着模块不断迭代, 精益求精的态度被慢慢消磨了, 所以所有的开发人员都应该时刻保持精益求精的态度, 遇到公共部分太多的代码, 要及时抽象和封装, 遇到不合理的设计, 及时纠正, 虽然这样做可能会对预期工期产生影响, 但是我觉得是值得的, 而且作为leader, 我愿意为这部分工作买单.

关于一个给自己埋地雷的故事

最近看到一个Quora中的回答,答到心坎上。译文引用自伯乐在线

三个程序员被要求穿过一片田地,到达另一侧的房子。

菜鸟程序员目测了一下之间很短的距离,说:“不远!我只要十分钟。”

资深程序员看了一眼田地,想了一会,说:“我应该能在一天内过去。”菜鸟程序员很惊讶。

大神程序员看了一眼田地,说:“看起来要十分钟,但我觉得十五分钟应该够了。” 资深程序员冷笑了一声。

菜鸟程序员出发了,但只过了一会,地雷爆炸了,炸出了巨大的洞。这下他必须偏移预定的路线,原路返回,反复尝试穿过田地。最后他花了两天到达目的地,到的时候颤颤发抖,还受了伤。

资深程序员一出发就匍匐前进,仔细地拍打地面,寻找地雷,只有在安全的时候才前进。他在一天的时间内小心谨慎地缓慢爬过了这片地,只触发了几个地雷。

大神程序员出发之后径直穿过了田地,十分果断。他只用了十分钟就到了另一边。

“你是怎么做到的?”另外两个人问道,“那些地雷怎么没有伤到你?”

“很简单,”他回答道,“我最初就没有埋地雷。”


地雷从何而来?

与大神一起工作的时候就是这种感觉,也是我的第一印象「代码整洁而且没有地雷」。可是反过来想,为什么有的人就是习惯于埋雷呢?难道看不到后果吗?再深一层来讲,没人愿意给自己埋地雷,主要还是没有对习惯引起重视。培养起好的编程习惯是非常重要的。编程中的坏习惯,是很多程序员上升的天花板,十年原地踏步的原因。想要写出好代码,一定要常常问自己「我还能做的更好吗?」(好吧,这是算法课的口号)。只有想不断提升的人,才会注意去扣各种各样的细节,使得自己做得比前一次好。下面总结一下,常见的「地雷」有哪些:

没有提前构建

  • 没有规划完整系统的生命周期,内存泄露到处都是。
  • 系统没有设计好,存在不少重复功能的类。
  • 系统的行为没有定义好,接口设计不完整,写了创建不写删除。

没有重视代码的可读性

  • 代码没有经过提炼,到处都是重复代码,改一个功能常常要改很多处代码。
  • 缺少抽象,将具体实现暴露得到处都是。比如一个状态机在外部设置它的状态切换。
  • 代码没有紧贴语义。

没有重视开发效率

  • 到处都是繁杂重复的配置项,通过约定可以省去很多配置。
  • 很多中间代码,比如解析xml、解析协议等等的工作,通过元编程可以将这些中间工作自动化。

没有重视数据

  • 数据没有处理好,敏感数据要保护好,比如角色的属性,到处都是直接赋值的话,很容易出错,要把直接改变限制在少数的某几个函数里。
  • 某些系统知道得太多,比如数据层就不应该知道显示层的东西,显示和数据掺杂在一起。
  • 数据依赖于代码,比如写在C++的模板里面,没有为数据设计序列化文件。

更深层的原因

“我不是什么伟大的程序员,我只是一个有着很多好习惯的程序员”—-Kent Beck

在《程序员修炼之道》里,第一条就是「关心你的技艺」。如果你不在乎能否漂亮地开发出软件,你又如何要耗费生命去开发软件呢?

时间: 2024-10-11 01:25:53

[转载] 程序员的态度的相关文章

转载 程序员技术练级攻略

转载 程序员技术练级攻略 博客分类: 转载 本文转载自陈皓(http://coolshell.cn/articles/author/haoel) 博客: http://coolshell.cn/articles/4990.html 月光博客6月12日发表了<写给新手程序员的一封信>,翻译自<An open letter to those who want to start programming>,我的朋友(他在本站的id是Mailper)告诉我,他希望在酷壳上看到一篇更具操作性的

[转载] - 程序员对内存的理解

程序员对内存的理解 原文链接 在C和C++语言开发中,指针.内存一直是学习的重点.因为C语言作为一种偏底层的中低级语言,提供了大量的内存直接操作的方法,这一方面使程序的灵活度最大化,同时也为bug埋下很多隐患. 因此,无论如何,我们都要对内存有一个清晰的理解. 一.对内的分配 32位操作系统支持4GB内存的连续访问,但通常把内存分为两个2GB的空间,每个进程在运行时最大可以使用2GB的私有内存(0x00000000—0x7FFFFFFF).即理论上支持如下的大数组: char szBuffer[

转载---程序员发展之路

今天看到一篇写得挺不错的文章,转载过来收藏起来. 从我做小程序员开始,就从未间断的在论坛看到有人在问程序员的出路在哪里,其实我很能理解这些人的想法,在行业做了几年,有些感想跟大家随便聊聊. 俗话说,365行,行行出状元,此话也适用于IT行业,尤其是程序员. 当你迷茫找不到出路,又想快速成长和提高的时候,有两种方案可以供你参考: 1.努力成为你工作环境中最优秀的人(技术最好的人): 2.跳槽,去另外一家公司做比你能力要高的工作. 针对工作环境的不同,分为大环境和小环境(人多和人少): 1.小环境,

[转载] 程序员如何成功追到女神?

原载自:http://www.linuxeden.com/html/news/20151003/163105.html 今天我们谈一个你们这群单身狗已经掌握却一直没怎么用的技能:“追求女生”. 1.广泛涉猎恋爱技能,进行自学 交给你一个项目,遇到不会的开发工具怎么办?学啊!我们程序员拥有超强的自学能力. 星座,塔罗牌,看手相,大姨妈陪护,这些能引起女生共同话题的知识不要以为没有用,你就当学习一门新的编程语言嘛!一点都不难对不对? 要充分利用知识管理,我们不会谈恋爱,但是我们可以收集资源自学啊!我

[转载]程序员的激情其实是一种痛苦

我不是一个“充满激情的程序员”.我觉得,固定8小时工作之后,就应该去做点别的事情,比如说看看科幻小说,和我亲爱的妻子聊聊天等等.当别人问起,我会正儿八经地这么回答,“这才是所谓的生活.你也应该试一试”. 其实我内心非常看不上那些充满激情的程序员,他们所谓的激情就是一天花上12甚至16个小时坐在电脑前写代码,或者为了写代码而牺牲了自己的爱好.睡眠以及人际交往,有时候甚至连基本的生活自理都无暇顾及.这哪还是激情啊,这分明是一种强迫症. 大男子主义亦或是偏执狂? 我们的文化不对劲.如果我们迷恋上一个女

[转载]程序员路上用到的各种优秀资料、神器及框架

好东西不是随便收集下,发篇博文,骗些点赞的!积累了5年多的东西,是时候放出来跟大家见见面了. 或许有的园友在14年的时候收藏过我的一篇"工欲善其事.必先利其器"的博文,时隔3年,已经做了N多更新,那篇文章也已被我删除,迁移至GitHub,重新进行管理. 这篇文章,大家可以推荐.收藏,让更多的人在园内看到,让福利普照. 因为这篇文章,我以后不会更新. 但项目依旧会更新,所以,更好的做法是,请到GitHub上Star:be-a-professional-programmer 前言 成为一名

[转载]程序员必须知道的10大基础实用算法及其讲解

算法一:快速排序算法   快速排序是由东尼·霍尔所发展的一种排序算法.在平均状况下,排序 n 个项目要Ο(n log n)次比较.在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见.事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来. 快速排序使用分治法(Divide and conquer)策略来把一个串行(list)分为两个子串行(sub-lists). 算法步骤: 1 从数列中挑出一个元素,称为

程序员的3年之痒改变的不止薪水(转载)

此文为转载,原文地址:http://my.oschina.net/52love/blog/711397 写在开始,这里借用特立独行的猫的一句话,你可以原地踏步,但别觉得别人都该和你一样. 程序员的3年之痒,的确是时候该挠挠自己了.3年的程序员生涯,不长不短,但它的确是一个坎.3年改变了我们的不仅仅是年龄,当然还有薪水. 工作也有几年了,特别是今年要学的东西越来越多,然后感觉自己越来越无知.有时候恨不能所有的东西都要了解都要懂甚至要精通.但时间毕竟是有限的,况且你还有项目任务在身.当然很多时候也是

&quot;菜鸟&quot;与大神程序员之间的差别(转载)

前段时间看到一篇文章,写得很好,针对菜鸟与大神之间的差别做了很客观.很透彻的分析,现在将文章转载过来,原文地址:http://www.apkbus.com/forum.php?mod=viewthread&tid=239356&highlight=%E8%8F%9C%E9%B8%9F “菜鸟”和“大神” 刚刚走出就业的程序员,技术是刚刚起步的基点.那下面我们就聊一聊有关技术 的东西.首先请您先想想这几个问题.现在社会上有很多程序员,CSDN就是我们程序员的家,那您是否可想过程序员为什么会有