编者注:本文为历史博文归档;涉及 JDK、框架与工具链版本请以当前官方文档为准。引用外链图片可能失效,阅读时请注意时效性。

程序员 2013 新年计划

我的同事兼朋友 Chris Eargle 写了一篇关于新年计划的 有趣文章。这篇文章让我意识到,没有出现那场预言中的“世界末日”是我们多么大的幸运(以及其他我这 45 年中躲过的天灾)。受此启发,我也制定了一些以程序员为主题的新年计划。

阅读文档

寻找导师与成为导师

在你的职业生涯中,可能带来最多麻烦的事情就是成为“屋里最聪明的人”。我指的并不是你坚信自己最聪明,而是你实际上成为了团队里真正的万事通、问题终结者以及终极疑难解答者。

这就引出了另一个问题:当你有疑问时,你去问谁呢?

如果你的回答是“谷歌”,那你可能是不思进取。你应该去到那些你认识的(或不认识的)最聪明的人中间去。参加本地的技术社团,在本地的编程活动中发言,与其他讲演者一起喝酒聊天。接触那些你可以接触到的人,让他们成为你的导师。

寻找导师

我在生活中有好几位导师。他们是我尊敬的人,也是我能轻松向其提问的人。有些人甚至非常专业!没错,这些是我软件开发圈外的导师。

如何请教你的导师?这取决于你。我通常是在有问题时找他们。我会说:“喝杯咖啡吧,找个地方坐下来聊聊天。”如果我们在同一个城市的某个研讨会上遇到,我会和他们一起出去喝酒吃饭。早些年,我很注重形式礼节,特别是我作为团队“消防队员”的时候。如今,我已经不再有任何形式拘束了,更多的是随心所欲地求教。

成为导师

同样,我们也应该成为生活中某些人的导师。如果你有孩子,你已经承担起了一名导师、父母、朋友、老师的职责。当然,对于同龄人的指导,我们需要去掉“父母”那部分角色——对他们你是不能发号施令的。

如何让自己成为其他人的导师?当然,如果有人来请教你,那是最好了,这就有些名正言顺了。但你也可以在不声明“我是你的导师”的情况下成为某人的导师。看看是否有人在为一些事情愁眉不展,你可否帮助他们?对他们说喝杯咖啡吧(如果是九零后就喝红牛)。去跟他们一起吃饭,跟他们聊天。更重要的是,倾听。指导并不是宣扬你的智慧或你的经验。导师是要成为一个耳朵、一个肩膀、一个指点方向的手指——在他们需要的时候。

成为一名导师

图片来源:2010Feb08_0123.jpg / Jerome T / CC BY

KISS 原则 (Keep It Simple, Stupid)

“贝丝,你在呼唤我,但我只是想去底特律摇滚城市里每天没日没夜的摇滚”![歌曲 KISS 的歌词]。似乎这个社会在召唤你制定一个加入这种 KISS 大军,去吃喝玩乐、去体验生活的新年计划。但我在这里说的可不是这些。

我说的是 Keep It Simple, Stupid!作为程序员,我们绝大部分时间都是花在了维护代码上,只有少部分的时间用来创造代码。事实也证明,维护代码要比写新代码难得多。所以,按照这种逻辑,如果我们在创造代码时极尽所能写出最巧妙的代码,那么我们就没有足够高的能力来维护它们了。

Blaise Pascal 在他的 第 16 封省府信件 中说:“这份信件很长,原因很简单,我没有时间使它更短”。抽出时间,重构你的代码,让它们更短小,让它们更容易阅读。尽可能在所有地方遵循 SOLID 原则。

如果你不能把它向一个 9 岁的小孩解释明白,这说明它太复杂了。公司雇你不是让你来表现脑瓜好使的,如果你写的代码没有任何人能接手维护,你不会因此而得到加薪或晋升。

图片来源:Keep it simple, stupid (and short) / Jegi / CC BY

阅读文档 (RTFM)

这是我的第一次圣诞节里不需要在平安夜里去做一些东西。在以前,我会做小脚踏车、布娃娃房子、布置厨房,以及所有类似的东西。当然,做这些东西都不需要参考手册,只是需要在孩子们上床睡觉后才能开始,而且第二天早上天蒙蒙亮就会被三个孩子跳上床来吵醒。噢,这些美好的回忆!

当然,所有的这些不眠之夜都有一个相同的主题:我知道我不需要读操作手册就能做这些。可工作中更常见的是,文档上的图表画得一团糟,文字是经过了三种不同语言翻译过来的,我对这些文档的质量意见一直很大。我认为只要埋头去做,我能做出任何东西,所以为什么要读那些无聊的手册呢?这是不是好像是在说你上一个项目的需求文档?

不管你相信与否,人们通常花费大量的时间在写需求上。他们并不是有意要写这些东西来让我们困惑。需求很难写得面面俱到、让每个人都理解,但它们却是你的项目的基础,包含了大量的项目知识。所以说,读读它们吧。如果是先读它们,然后到它们的作者那里问一些问题,这是更好的做法了。用心听!聊一聊。每一次有感悟都要重读它们,再去聊一聊。

阅读文档

图片来源:[127/365] Immersed / pasukaru76 / CC BY

不要重复自己 (DRY)

一个朋友对我说:“如果你写出一些代码,你应该把它做成一个方法。如果你写了它两次,你应该把它做成一个方法。如果你写了它三次,那你就别去编程了!”

我举双手赞成。如果你把自己的代码从一个项目拷贝到另一个里,你是在给自己未来的道路上挖坑。没错,你能记得修改手头上这个项目里的这段代码,但其它项目里的这段代码呢?假设你在调试 Bug,幸运的是你能清楚地知道如何纠正这段代码里的逻辑问题。但不幸的是,这段代码在其它项目里的拷贝却成了问题的根源。

JustCode 这样新式的重构工具能轻松地将代码片段变成方法,从而减少重复代码,提高程序的可维护性。

Don't Repeat Yourself image

图片来源:DRY – Don't Repeat Yourself – Motivator / Ardalis / CC BY


原文链接Developer Resolutions for 2013
译文链接http://www.aqee.net/developer-resolutions-for-2013/

说明:本文归档于 2013 年,文中提及的部分工具(如 JustCode)及外部链接可能已更新或失效。文中提到的设计原则(如 KISS、DRY、SOLID)依然适用,但具体技术栈与开发环境请以当前官方文档为准。