转发新浪微博程序猿心得

前段时间有个小伙伴找我聊天说最近一段时间一直在做需求没什么成就感:

虽然接口有每秒几十万的调用量但是写来写去就是那么些套路;
产品需求天天变搞得代码写的特别乱,很多需求都是前后矛盾的所以加了很多别扭的兼容,每次听到要再改需求就觉得特别“膈应”;
想做点什么有意思的事,结果时间都被各种细碎的需求和会议占据了,月底一总结忙了一个月没有什么收获。
本来觉得互联网公司里可以接触到高并发应该会很有意思,结果一年下来感觉也就服务上线的那一下比较有成就感……

因为在微博工作,所以我面试过很多很多很多希望“接触到高并发大数据”的求职者。包括我自己在内也一样,入职第一天听到周围的同事讨论着每秒上百万次的调用量,几十毫秒的响应时间,作为技术人员谁能不兴奋呢?
但是在微博工作了五年,设计了一个又一个高并发系统之后,回过头来看的时候,感觉高并发带给我的兴奋感已经不怎么强烈了。

那是什么原因让我一直窝在一线写代码而不是转向管理岗?

二十多岁的程序员特别喜欢并发、框架、协议、内核、中间件之类的名词,还有这些年的大数据、机器学习、VR、区块链之类的新技术。
在我不算长的十多年的编程经历里也学过很多很多新的技术,但是不管什么技术都只能维持一段时间的快感:大部分是浮于表面的技术本质没有变化,少数几个本质技术跟几十年前没有什么区别……
而对于“优雅的设计”的追求却一直能够带给我精神上的满足感:我一直在追求设计出高内聚、低耦合、易于扩展和维护的系统;代码简洁而高效,考虑周全又没有一丝多余,一切都是恰到好处的感觉:不仅能够应对当前的需求,还能够顺应这段代码、这个系统、这个组织,甚至于自己和这个行业的未来。

在形成了“追求优雅设计”的世界观之后,一切就都不一样了:
产品经理的每一个“膈应”的需求都是对自己优雅设计的挑战。
程序变得越来越灵活和抽象,细碎的问题渐渐变得不再需要改代码了。
未来每一次的修改都在自己的掌控中,三四年前的某个设计可能因为今天的需求而继续产生价值。
这是一种开了上帝视角的快感。

高并发+高事务 那才是真正难,因为需要根据业务权衡技术。

高内聚低耦合,追求代码干练精简,能适应业务的快速变化,而不需要动大刀,不留垃圾代码债务,是很多程序员的追求

写的非常好,没有多年的战斗经验是体会不到的