zealot
2012-06-08 13:52:19 +08:00
经验,或者说厚积薄发。
即便是个简单需求,写出好代码的话需要涉及到很多个方面。
对于新手,要么写出一个丑陋但还能凑合用的东西;要么挨个深入研究学习,将每个极小的点做到尽可能的"完美"(这里"完美"指已知的、一致认可的最佳实践,而不是那些虚无缥缈的追求)
例如,根据pid判断进程是否存活。新人需要查阅资料、手册,甚至是参考开源代码,可能还要跟其他人一起探讨。查到资料后,还有收集更多信息来对比孰优孰劣。对比/proc fs、ps aux|grep pid、kill(pid, sig=0)。而根据新人能力不同,可能需要耗费半天甚至几天时间彻底弄透。但是,经历过这个过程的程序员,1分钟就能搞定。1分钟 vs 几天,这就是最常见的生产效率差异。
再比如,记log的方式,需要考虑哪些因素;优雅重启;可运维性;可配置;监控与报警,等等。有经验的程序员充分研究和实践过后,则能厚积薄发。他们1分钟的代码背后可能蕴含着好几天的努力学习,这个过程是新手难以在短时间内复制的。
当然,很多时候新人也能把开发时间缩短到比较接近有经验的程序员,但是没有足够的最佳实践钻研与积累,质量上是有差距的。
生产效率的巨大差异,前提必须是新人也做到跟老鸟同样的"完美"("完美"同前面解释)