Logo

软件随想录:程序员部落酋长Joel谈软件

软件随想录:程序员部落酋长Joel谈软件

ISBN:9787115216342

作者:Joel Spolsky

译者:阮一峰

出版社:机械工业出版社

出版时间:2009

评价:☆☆☆☆

Joel Spolsky的文章还是挺有营养的,在阅读时你需要自动过滤Fog。另外有些观点我是持反对意见的,比如,关于极限编程和大学教授的课程。文章结论下的太快并且偏激,当然作者写作的风格就是这样的,语不惊人死不休。最后说一下翻译方面,看得出来译者阮一峰在翻译这些文章时是下了苦工的,值得一提的是阮一峰翻译的另一本书《黑客与画家》也值得一看。

在软件开发团队中,每个人干的活都不一样,所以如果想进行微观管理,就会变成“打了就跑”(hit-and-run)的抽风式管理。那就是,有一阵子你每件事都管着程序员,然后突然从他的生活中消失了几个星期,你跑开管理其他程序员了。抽风式微观管理的问题在于,你无法坚持足够就来看到为什么你的决定行不通,或者你无法将整个过程的每一步理清(这种情况要么每个程序员都配一个管理者,进行“人盯人”,但是这是行不通的,所以必须让程序员自律,而让其自律之前,必须使程序员对公司有认同感)。从效果上看,你起到的作用只不过是每隔一会儿就将你手下的可怜程序员敲打一番,让他们像火车一样脱轨,然后下一个星期,他们不得不花上所有的时间找回每一节列车车厢,将它们放回轨道上,将所有一切从新安排好,这种经历会让他们有一点点受伤。

指针和递归的真正价值在于那种你在学习它们过程中所得到的思维深度,以及你因为害怕在这些课程中被淘汰所产生的心理抗压能力,它们都是在建造大型系统的过程中必不可少的。指针和递归要求一定水平的推理能力、抽象思考能力,以及最重要的,在若干个不同的抽象层次上同时审视同一个问题的能力。

团体中最有权势和影响力的程序员是那些表达能力强的程序员,他们无论是做书面表达还是做口头表达,都能够清晰、自如、具有说服力地传达观点。

每天你前进一小步,将一件东西做得比昨天好一点点。你把闹钟的默认时间定在凌晨7点,而不是半夜12点。这样的改进几乎看不出可以让谁获益,几乎没有变化。但是,你前进了一小步。有无数个要做的这样微小的改进(如此追求完美,挺像乔布斯的)。

寻找一种代码的书写规范,让错误的代码变得容易被看出。让代码中的相关信息在显示屏上集中在一起,使你能够当场发现和改正某些种类的错误。“不推荐使用匈牙利命名法”是指“系统型匈牙利命名法”,它是用来区分“类型(type)”,例如:“l”表示长整型(long),“dw”表示双精度值(double)。而“应用型匈牙利命名法”的前缀则是来区分“种类(kind)”,例如:“ix”表示数组的索引值,“c”表示一个计数器(count)。

软件的复制成本为0。这意味着,程序员的劳动力成本分摊在你销售出去的所有软件中。对软件来说,如果销售量很大,质量的改进并不会造成单位软件成本的上升。本质上,软件质量的改进会创造出新价值,而且价值创造的速度要快于成本提升的速度。

如果你想把事情做完,无论何时,你一定要想清楚什么是眼下最重要的、必须马上做好的事。如果你不做这件事,你就不能以最快的速度取得进展。

comments powered by Disqus