大家好,我是码农先森。
阅读源码这是一个老生常谈的话题了,但又是很多人想做又没有付出行动的事情。前段时间我研究了 Swoole 的源代码,并且输出了系列的源码分析文章「感兴趣的朋友可以翻阅以前的文章」。虽然这个过程很枯燥和艰难,但到最后有种苦尽甘来的感觉,因为突破了自己之前一直想做又不敢做的一件事情。可能有很多人会说了,平常的工作中又用不到,为什么要去学习呢?如果你发出了这样的疑问,那么你大概率是初入职场的小白,或者是一年经验用十年的资深程序员,这里所说的「资深」要打双引号了。
面试造航母,入职拧螺丝。相信大家对这句话的精髓都深有体会,面试期间面试的问题都似乎要求面试者具备上能捅破天,下能钻地球的能力,既要上得了厅堂,又要下得了厨房。站在用人单位的角度来看「小孩子才做选择题,成年人全都要」。那为什么会出现这种现象呢?还记得要几年前互联网如火如荼的时候,编程培训行业如雨后春笋般的孵化出一批速成程序员,大量出现在人才市场,仅仅靠背几套面试题就能获得不错的薪水。
如今互联网行业人才市场饱和,直接加剧了程序员之间的内部竞争。想象一下如果面试官手里握着好几份候选者的简历,然而偏偏你理解底层源码,那面试官会向谁发放 Offer 呢?答案显而易见,这就是阅读源码在面试中的意义,它让你形成了差异化的竞争,在这个过程中能够脱颖而出。
作为一名职业的程序员,想要在自己的领域能够获得稳定且长足的发展,阅读源码是一道必须跨过去的坎。初入职场的前三年基本上都是参与常规的业务需求开发,大多数都处于增删改查「俗称CRUD粘贴复制」的阶段。三年后会尝试组件封装、框架脚手架的搭建「也就是大家常说的造轮子」,并且时不时的指点下初级程序员,解决一些项目层面的问题。到达第五年的这个时间点,这是一个职业生涯的转折点。
具备这个阶段经验的程序员,对于绝大多数的需求开发都可以信手拈来轻松应对,如果想要谋求更高的技术造诣,就要从组件、框架,乃至语言实现层面的源代码做为着手点来进行提升。职业的发展都是一个不断攀升地过程,类似于游戏中的升级打怪,一关关的突破「关关难过,关关过」,只有突破了阅读源代码这一关,才能让自己的职业得到更好、更顺利的发展。
大家常说:“如果把兴趣变成了职业,那将是一种灾难”。如果反过来呢?职业成为了兴趣,那是不是意味着职业上会获得更大成功?这个问题我还无法回答,因为我还没有成功。但这个观点并不妨碍有些人把阅读源码作为一种兴趣爱好,如果这样做能够驱动阅读源码这件事情得以坚持下去,同时满足了自己的兴趣,又能从阅读源码中获得知识,岂不是两全其美。
说实话阅读源码的确是一件很枯燥乏味的事,最近我在阅读 Swoole 源代码的过程中就深有感触,期间也有看不下去的时候,但是心里总是默念「这是自己的兴趣」这才让我坚持下来。虽说这不确信阅读源码是不是我的兴趣,但还是让我用兴趣的意念把这件事给完成了,通过阅读源码让我明白了「兴趣」的伟大。
对于阅读源码这个老生常谈的话题,首先「面试」带来的是短期价值,它让我们在面试的过程中形成差异化的竞争,从而让我们脱颖而出。其次「职业」带来的是长期价值,它让我们在自己的领域能够获得稳定且长足的发展。最后「兴趣」带来的是一种信念,它让我们在困难面前能够有坚持下去的勇气和动力。总而言之,阅读源码是一件利大于弊的事情,希望大家能持之以恒的对待,坚持做具有长期价值且正确的事情。
欢迎关注、分享、点赞、收藏、在看,我是码农先森。
今天来说一个老生常谈的问题,来看一个实际案例:业务中往往都会通过缓存来提高查询效率,降低数据库的压力,尤其是在分布式高并发场景下,大量的请求直接访问Mysql很容易造成性能问题。
关于软件的高可用,是一个老生常谈的话题。“高可用性”(High Availability)通常来描述一个系统经过专门的设计,从而减少停工时间,而保持其服务的高度可用性。