解惑

解己之惑,解人之惑

标签:程序员

无趣的程序员

公司每个月给每个员工一定的费用用于团队建设,也就是Team Building,从这些费用的使用情况我们可以看到程序员是多么的无趣。我们公司主要就是两个团队,一个是开发团队,一个是测试团队,测试团队的Team Building活动非常的丰富,结伴游玩,体育活动,吃饭等等,而开发团队的活动自我进这个公司以后只有一项:吃饭,而且经常是只在有人离职或者重大假日的时候,去年的羽毛球活动只有四个人参加,有一个还是QA的,其它的人都是偶尔来一次两次,而实际上他们住的地方距离活动的地方都不远。另外一个比较明显的现象就是吃中饭,开发团队有几个人是带饭的,其它的一律是订饭让人送到办公室来吃,而测试团队经常是结伴出去吃活动活动,而且时常换地方吃。开发团队没有一个女的,测试团队有一半是女的。
其实我感觉自己很没有情趣,和老婆在一起的时候也没有什么活动,基本上就是陪她逛街或者在附近的一些景点玩玩,其它的时间基本上就是看下载的电视电影或者打游戏,但是和我们组的其它人比起来,我好像还不是那么的无趣或者懒惰?

学会懒惰

记得有人说过最好的程序员是最懒的程序员,这个懒并不是真正的懒惰,而是学会高效率、低重复的工作。其实对于大多数程序员而言,都是在一个固定的框框里面写一些看似不同实际相同的代码,那么你有没有想过使用什么方法能够不写那些完全一样或者几乎完全一样的代码呢?很多人可能更多的是复制,特别是在IDE的帮助下,拷贝一个类,它会自动帮你替换一些相关的东西。这个方法是不对的。你的代码中如果存在一段代码重复三次以上的情况,你就要想办法不这样重复了。我常用的有两种,一种就是写工具类,还有就是使用Template method模式,基本上可以解决90%的问题。
另外一点就是写代码能够做的事情不要自己一遍一遍的重复做,例如这次我写的EJB单元测试框架,其实我可以要求大家写单元测试的时候自己发布EJB,只发布自己需要的,但是我可以从项目的配置文件中读取到这些信息,就应该让框架自己来做;Entity Bean的finder方法MockEJB不支持,我提供了基础代码可以自己写Finder的实现,但是80%以上的finder的实现都很简单,就是两三行代码重复一下,换个字符串就可以了,但是我费了很多时间写正则表达式去解析这些finder,只有很少一些SQL使用了比较复杂的语法(288个里面只有34个)。
也有很多人说程序员很苦很累经常要加班,就我而言,我工作五年多来只加班过三个月,而且不是因为写代码,而是因为我一个人要解决40个人遇到的问题,我解决不了的或者解决方案会影响项目进度的我就要发邮件到我们的上游承包商的人,每天必须阅读和回复的邮件超过100封,而且要使用我并不是很好的英语写。而且我从来没有通宵加班过,最晚的一次是到半夜两点,还是陪项目组的人发布,我自己其实并不需要加班。
学会懒惰,学会思考,学会更深入的研究问题,你慢慢的会发现程序员其实不需要加班也可以搞定。

© 2024 解惑

本主题由Anders Noren提供向上 ↑