记软件开发满五年(二)——盘点这些年的改变

前言

人生从来就不是单一和乏味的,总是充满着理性和感性。
作为一个喜欢文科的人,我应该是比较感性的,但是作为一个程序员,我似乎更多的是应该保持理性。
感性容易引起别人的共鸣,而理性更应该拿数据说话,也许显得有些无趣,却可能更有实用的价值。

行业的改变

五年来,我经历了三家公司,也可以说是两家。
前两家都是外包给移动,后边这一家是外包给联通。乍一看,似乎我一直从事的都是电信行业,但实际上并不是,我只是一直都在电信行业的公司而已。
在第一家公司基本都是围绕着电信主业务做的一些边缘系统,第二家公司则应该算是电信增值业务:电信里的支付。
到了现在,看起来也是电信公司,但实际上则主要是车联网。

软件开发,开发的就不是软件本身,只是以软件表达特定的业务而已。对于一直喜欢车的我,进入车联网行业,无疑是非常幸运的。
进入这个公司后,我总是不由自主的去了解许多本身工作任务之外的业务,也总是情不自禁的为我们服务的车企主动打广告,更总是时不时没来由的感觉到一些说不清的自豪感。
这一切,都让我想起网上一些文章说的那句话:“做自己喜欢的工作是一件多么幸福的事”。
以前虽然一直也觉得这句话似乎有道理,实际却并不能真的体会。
那时候总会想,做自己喜欢的工作是一件多么困难的事,除非是想办法喜欢上自己的工作。
虽然,想办法喜欢上自己的工作,也算是一种办法,但是回过头来看,和做自己喜欢的工作,还是有很大的区别。
喜欢和想办法喜欢,这本身就不是一个概念。
有的人,充其一生也无法找到自己喜欢的工作,有的人,费尽心思还是对自己的工作不喜欢!

技术的改变

有人说,世上唯一不变的就是改变。
在软件这个行业,真的是得到了非常好的诠释,主流的技术和框架都总在飞快的变化着,稍有不慎,可能就已经跟不上主流的步伐。
很庆幸的是,五年来,我虽然经历过大大小小十几个项目,但从大的方向来说,项目中的技术始终都是前沿主流的技术。
在入行之初,分布式和非关系数据库的概念及技术才刚刚兴起的时候,我们就已经开始尝鲜,就如下图所示:
在这里插入图片描述
虽然说这里边的技术我有些并没有实际用到,但是因为项目涉及了,所以我多少有些了解,最起码在眼界上得到了足够的开拓。
人和人之间差距的拉开,有时候可能就只是因为知道和不知道,因为知道的多一点,于是可能就多做了一点,然后知道了更多,进而再多做一点,慢慢的,可能差距就越来越明显。
从技术栈上而言,这是第一个正式的业务,所有的技术其实都是耳目一新。

世界的技术总是在飞快的改变,但是一个公司的技术其实并不会也那么快的改变,所以下一个让我觉得比较有代表性的整体技术替换时间,是在我入行大概两年半的时候,也就是我换第二家公司的时候。
那个时候是微服务这个概念刚刚流行起来不到一年,新公司的新业务也刚好进行了追心,于是我幸运的又一次挤在了某些技术的前沿。
在这家公司,我觉得比较有代表性的技术架构大概是下边这样的,只是为了职业道德和商业秘密,肯定不能展示真实的架构,只能是根据自己的理解画一个大概:
在这里插入图片描述
细心之人可能会发现,这个图和上边那个有一个共同点,那就是都用了storm和flume。
这也刚好证明了我说的我可以算是经历了两家公司,也可以算是经历了三家。
第一家和第二家,都是给同一个公司外包的,所以从大的架构而言,就自然具有了一定的共性。
从技术栈上而言,第二家公司给我最大的影响无疑就是微服务和springboot,除此之外,就是签名加密了解,就像前边说的一样,让我知道了这样一个东西,有了一个安全的概念。

对于同一家公司来说,部分技术的更新和替换自然是没有问题的,但是想要大刀阔斧的一次性整体改变,必然是充满了风险,也不是很现实。
所以,让我第三次觉得整个技术架构和技术栈天翻地覆的时间,也是我进入第三家公司的时候。
如果说在第一家公司我所做的都是边缘的业务,那么第二家公司应该能算是次边缘的业务,而第三家公司就已经是非常核心的业务了。
因此第三家公司我所见到的、所理解的业务也是最最复杂的,单纯的从技术栈上就能看出来:
在这里插入图片描述
在这里,以微服务为基础,同时了解和应用了容器技术以及现在比较火的云产品。
不仅如此,在软件安全方面,不论是ssl、单点登录还是认证授权,也都从以前仅仅是概念深入到了应用,从以前仅仅是知道,变成了现在一定的理解。

后记

有人说之前的公司不好,学不到什么东西;有人说外包不好,学不到什么技术。
但是我觉得其实也都挺好的,什么事都有例外。
人世总在变化,存在即是合理,想透才能淡然,看开但不消极!

推荐文章