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

2024-04-28 06:58

本文主要是介绍记软件开发满五年(二)——盘点这些年的改变,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

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

行业的改变

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

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

技术的改变

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

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

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

后记

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

这篇关于记软件开发满五年(二)——盘点这些年的改变的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/942580

相关文章

react笔记 8-18 事件 方法 定义方法 获取/改变数据 传值

1、定义方法并绑定 class News extends React.Component {constructor(props) {super(props)this.state = {msg:'home组件'}}run(){alert("我是一个run") //方法写在类中}render() {return (<div><h2>{this.state.msg}</h2><button onCli

【软件工程】软件开发模型

三、瀑布模型  四、几种软件开发模型的主要特点 题目 判断题 选择题 小结

【前端】animation动画以及利用vue制作简单的透明度改变动画,包含vue生命周期实现

一. 问题描述 想做一个文字透明度从1到0然后再从0到1的css动画。 二. 代码写法 2.1 animation写法 2.1.1 animation属性key 2.1.2 代码展示 <!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=de

开放式蓝牙耳机哪个品牌好用?盘点五款超优秀的开放式耳机!

开放式蓝牙耳机现在挺受欢迎的,它们最大的好处就是不塞耳朵,戴着舒服,特别适合长时间佩戴。而且,这种耳机能让你在听音乐的同时,还能听到周围的环境声,这样在外面运动或者骑车的时候就更安全。音质方面,现在的开放式耳机也做得越来越好,有些高端款式还有特别的技术来减少漏音,保护你的隐私。但是现在市场上的开放式耳机品牌太多了,很多人不知道怎么选?为了帮助您在众多选项中做出选择,我根据个人经验挑选了一些表现良好

HTML5如何成为改变移动互联网幕后的推手

在未来的某一天,我们打开手机,不再需要访问手机应用商店,不论是 Apple的还是Google的,我们只需要点击手机主菜单页面上的一个链接,手机就会立即在它的浏览器上启动一个 “应用程序”;再也不需要flash插件,就能欣赏华丽丽视频画面。   AD:2013云计算架构师峰会课程资料下载   2012年,说HTML5集千宠万爱于一身也毫不夸张,IE、Chrome、Firefox和Opera等

集成电路学习:什么是SDK软件开发工具包

SDK:软件开发工具包         SDK,即Software Development Kit(软件开发工具包),是一套由软件提供商或其他组织提供的开发工具集合。这些工具旨在帮助开发者更快速、更便捷地创建、测试和部署软件应用程序。以下是对SDK的详细解释: 一、SDK的定义与组成         定义:SDK是一套包含编程工具、代码示例、技术说明文档、调试和测试工具等内容的软件包,有

从知识视角理解软件开发

软件构造中的核心知识:业务知识与架构知识 在软件构造过程中,最关键的两类知识是业务知识和架构知识。业务知识回答“什么是正确的软件”,而架构知识解决“如何正确地构造软件”。从这两个方面深入理解软件构造,可以帮助我们在设计和开发过程中做出更明智的决策。 1. 业务知识:定义正确的软件 业务知识是关于如何解决现实问题的知识,包括业务的目标、规则、限制、和已有的解决方案。它定义了“正确的软件”是什么

心觉:如何用一颗心改变世界和自己

关于如何开发自己的潜意识开发的底层逻辑和注意事项 我这里就不赘述了,可以看我前面的文章 今天主要讲一下,如何让我们祈祷的作用发挥到极致 这里提到了祈祷,其实就是正念 把自己的梦想,目标,愿望通过积极的语言 或者生动形象的画面告诉自己的潜意识 你的这些梦想,目标,愿望就会慢慢地变成现实 这是真的,有无数的案例可以证实 我这里就不举例子了,大家可以网上搜 我只讲一下,为什么有些人

简单盘点编程在Houdini游戏开发中的用武之地

概括 Houdini作为一个程序化为主要思路的工具,不出意外地在很多地方支持用代码来描述自己想要的行为。这篇博客简单盘点了我目前了解到的,编程在Houdini开发(特指游戏开发)中的用武之地。 概括讲,可以分为三部分: Houdini编辑器内。一般只服务于Houdini自身。Houdini Engine游戏插件。例如它为UE4、Unity都提供了插件,其目的是方便将Houdini中的数据和游戏