最近园子有一篇文章:因为所谓的代码性能不高而被离职的程序员,评论者挺多,简单谈谈我的看法,大家就当中秋假日茶余饭后的消遣吧。
该文大致是说了一件因代码性能问题而被离职的事,作者还贴了一段代码在文中,致于代码到底有没有性能问题,有多大性能问题,在评论中好多朋友都给出了自己的看法,有的甚至重构了代码。大约得出的结论如下:代码性能、规范和逻辑上不那么完美,有一定优化空间,代码原因只是被离职的原因之一,还可能因为办公室政治。
由于已经快一年没写.NET代码了,加上水平本来就有限,对作者的代码本身我不作评论,我只谈谈技术之外的一点看法,那就是:技术不是工程师能力的全部。
从该文作者回复的评论:
37楼:
你说到点子上了,这个方法里面实现逻辑很复杂的。我想应该就是这个方法导致的CPU居高不下的;都是网站上线第三天才出现问题,背黑锅了。。
54楼:
从这两点,大致可以看出以下三个问题:
1、系统的访问量并不高;
2、系统上线后第三天出了性能问题;
3、作者是6月16号被离职,到目前为止作者并没找到(或定位到)性能问题的真正原因。
从问题一可以看出,作者的代码应该不是性能问题的主要原因(一天才几千IP),感觉问题二和问题三才是该文作者(或者说现在很多工程师)存在的问题,那就是:太看重技术本身而乎略了其他方面的能力。
系统上线前后为什么没有进行压力测试?上线的前三天中难道一点异常都没有,然后就突然出问题了?系统出现了问题为什么没有迅速找到(或定位到)原因,给出替代方案,给公司止损(出了问题对公司来说迅速止损才是最重要的)?
上面这几个问题,就是技术之外的能力了。
曾经我也以为技术能力是一个工程师能力的全部,但后来才慢慢领悟到,沟通能力,业务能力(对所做项目业务的熟练程度),协调能力,时间管理能力也很重要。
如果你想成为一个更优秀的工程师,请从现在开始培养自己技术之外的能力吧。
欢迎交流讨论,不喜勿喷,请不要进行身攻击,祝大家节日快乐!