做过某件事,不等于就拥有了对应的经验。真正的经验,是做完这件事之后,能够形成系统性、多维度的思考。
这一点,其实和 “学而不思则罔,思而不学则殆” 说的是相通的。
先说一个问题:只看过、没亲手做过,算不算有经验? 也算,看过会形成间接经验,更多停留在理论层面。很多时候,实战打磨出来的认知,远比书本理论要深刻得多,相当于真正在战场上厮杀过,见过真实场景里的各类问题。
如果想弄懂一件事,却没有条件完整实操,该怎么办?可以搭小方案、写 Demo、做简易原型,给自己创造演练的机会。用这种方式把理论和现实对接,对理论的理解才会落到实处,是踏踏实实的深度理解。
不过就算亲身踩过坑、完整经历过整件事,也依旧不等于拥有经验,只算是拥有经历。
什么才叫经验? 经历沉淀下来,能够梳理、能够表达,心里装得下全盘的考量。再碰到同类任务的时候,清楚当下该怎么设计,明白为什么要这么取舍,知道后续该如何演进,心里有完整的预案,这才是经验。
所以有了经历之后,一定要多复盘多思考。人的记忆是会消退的,如果不及时总结沉淀,过往的经历慢慢就模糊消散,本该提炼出来的经验就此流失,对自己来说是很大的损失。
最近之所以会冒出这些想法,是源于我接手 Gateway 的这段工作。 对我来说网关是一块比较新的领域,接手的是一份存量老代码,原有设计有一些可优化的点。我查阅了不少资料,参考成熟系统的设计思路,结合我们自身的现状,把合适的理念融入进来,推动代码重构。
新方案里有不少很不错的设计点。我时常在想,如果最开始搭建这套系统的时候,就由具备对应经验的人来主导,很多磕磕绊绊原本就可以避免,后续的迭代和扩展也会顺畅很多,这就是经验实实在在的价值。
很多时候,哪怕没有足够经验,一套系统也能跑起来,也可以支撑业务,能用就完事。但随着自己对业务和系统理解不断加深,还是要持续去思考怎么做会更好,这才是自我提升的关键。