1 前言
国内程序员提⾼开发效率的路其实只有⼀条:屁股坐⾼。
不断的研究更难的事情,然后只写内核,乱七⼋糟的玩意⼉给别⼈写。 我曾经优化⼀个算法,写了270⾏代码(空格也算⼀⾏)。结果把程序效率提⾼了⼗多倍。 ⾸先不是我多⽜,⽽是写这功能程序员太菜,不是说技术菜,⽽是他写代码不动 脑,⽤个动态规划 ,循环太多,完全不懂CPU咋执⾏的啊。 我实现特简单,暴⼒方式……算了不聊了,跑偏。⼤概意思就是我实现的⽅式属农⺠⼯⽅式,但成本低效率⾮常⾼!而他的实现属于博士方式,扩展性厉害。
2 结果呢?
显⽽易⻅,总之结果就是我⽤270⾏代码实现了效率的⼤幅提升,客户哪懂这个?⻢上付款并建⽴⻓期合作关系。 代码⾏数虽短,但绑定数个业务,这活是个外部咨询项⽬,最后就是:⼀直到现在客户还找我维护。
3 遥想我青葱岁月
我们公司技术总监,每次都只写内核,写完了剩下的交给我们新⼈写。 实际上他写那玩意⼉,不写注释,⼀般⼈很难看明⽩,⽽且bug特多,我们改的咬⽛切⻮。 经历此事后我学到了:
- 想要效率⾼,就尽量写最深的东⻄
- 你的代码可读性越差,你的效率越⾼(社会现象)。因为别⼈懒得研究或者研究不明⽩
- 这代码⼀定要接近业务核⼼,越核⼼越好
说实话只有屁股⾼才能做到这⼏点。
4 所得
明⽩吗? 代码效率⾼不⾼,不⼀定和⾏数有关,和政治有关。 因为代码效率,是别⼈定义的。⽐如你写⼗年crud ,也不如别⼈两年写个数据库内核效率⾼。
因为代码效率本质和质量成正⽐,⽽质量,需要⼀定⾼度才可定义。
5 现实如何?
我有个朋友,和我聊过,他当了技术专家、总监、CTO后,也偶尔写内核,当然他不会⼼胸狭窄到故意给⼈埋绊⼦,没必要。 但他⼀年那么⾼薪资,你觉得代码效率⾼吗? 怎么定义代码效率⾼?是市场定义还是你来定义?
得搞明⽩这个问题,才能搞明⽩,怎么写代码效率⾼。
6 总结
提⾼效率的本质,是尽量做最难的事情,理论上讲就是不断升维。 维度越⾼效率就越⾼,假如你天天搬砖,⼀天搬100块砖头和⼀天搬300块砖头,你确实⽐其他的搬 砖⼈效率⾼,但在更⾼维度上来看,没太⼤意义。
效率相对论:一种是增加自己效率,一种是降低别人的效率。