那些年

编程语言之争

11年正式进入IT行业,成为一名程序员。那时候的技术圈还停留在语言之争上,那时候争论的是到底谁是世界上最好的编程语言,php说过自己是世界上最好的语言,C#说过自己是世界上最好的语言,那时候Python这个小兄弟还没来到Top3,彼时JAVA长期位于榜首。随着技术的进步,编程语言的排名也是不断变化。

2011编程语言排行榜

下面这张是2011年的编程语言排名。

2022编程语言排行榜

下面这张是2022年的编程语言排名

你可以看到,现在大热的人工智能,机器学习,python变得越来越流行,它已经占据了top1的位置。而企业中大量采用的还是Java开发语言,Java依然排在top3。

话说,各位小伙伴们,在你的从业经历中有没有见证或者亲身经历了哪门编程语言的消亡。在我的职业经历中就亲身经历了delphi这门语言的企业消退。

职业经历

本文从入行开始一只使用JAVA开发语言,虽然业务会去看看其它编程语言,比如PHP,C#,Python,但局限于语法层面的,没有经历过大规模的企业应用实战开发。所以就从自身的角度聊聊那些年,我们所经历的技术变迁。

彼时的技术圈,从架构上来讲,很多都是单体化架构,前台和后台、数据库、运维几乎都干过。每个同学都是多面手,擅长多个领域的技术。本人也是,后端、前端、数据库、运维、架构、项目管理也是都经历过。

1、后端

记得11年那会,去企业面试,基本都是问SSH(Spring+Struts2.x/1.x+Hibernate),甚至一些运营商的管理系统都是用这种架构来做,所以只要掌握SSH这三大框架,基本找份工作是没有什么问题。分享一个Struts2的架构,那时候SpringMvc还没那么流行,Struts2真的是无敌的存在。当然还有一些老的项目也还是使用Struts1

还记得那时候,Hibernate的教程是多如牛毛,很多培训的网站上都是讲的Hibernate,仿佛学会了Hibernate,走遍填写都不怕。而且当年写代码,还是用的基于Xml的配置,多么熟悉的味道。

至今还能找到以前学过的Hibernate古董级资料。

现在看起来真的特别有趣。仿佛真的一招鲜吃遍天。

2、混乱的jar包管理

彼时,我们用得最多的jar管理还是来得非常简单而粗暴,没有maven,没有gradle,我们简单的引入jar包,采用原始的方式,直接放在lib目录下。比如下面这种,在那个洪荒时代,加入遇到jar不兼容的情况,那就恭喜了,我们采用最原始的人工处理模式。

3、后端数据层

彼时的数据库,关系型数据库还是一枝独秀,可以凭此绝技包打天下。放一张彼时的数据库神仙打架,群雄割据的局面。

当时的大哥是Oracle,真正的一哥,那时候mysql刚发布5.5的版本,对事务有了更好的支持。办公室里还充斥着单库的优化,性能提升,可能还听得到一些存储过程这样依赖数据库的开发模式。而现在,企业级开发,恐怕用存储过程这种技术的也不多了。

而后,阿里轰轰烈烈的去IOE,数据库界迎来了新的一春。下图是阿里去IOE的关键节点。面对互联网海量数据,高性能,高可靠,最终,变成了OceanBase的全面开花,现在OceanBase已经全面对外提供服务。

4、缓存系列

当时我们开发的应用系统,不是面向互联网用户,企业用户的话,针对不同的量级有不同的部署方案。可以用集群模式,可以增加一点服务器,初步具备高可用。缓存慢慢进入我们的视野。于是在大家的技术方案或者架构中,会在技术那一层逐渐加入缓存,用来保护数据库层,避免数据库层容易被打爆。

那会,会开启ehcache,这种单例级的缓存,复杂一点也会开启memcached,它的架构图如下,一般这就是比较有流量的应用会采用的架构:

刚开始的时候,对于memcached和redis也是神仙打架,redis也还没有开启碾压式的领先,两者还是和谐共存,甚至redis还有些吃亏,memcached出道时间早些,技术圈引入的时间还早一点。而现在,memcache已经被遗忘了。redis几乎成了缓存事实的存在。

5、前端

在单体化架构时代,甚至是SOA年代,微服务还未流行,很多的企业都还在搞JSP技术,稍微先进一点可能会用thymeleaf或者freemarker模板技术。前端jquery是标配,还没有现在这种前后端分离。

以前,能将Jquer用得很熟练就敢宣布自己是一个前端攻城狮,再会一点css就是全栈了。当然,现在前端继续在发展。

做过后台管理系统的恐怕对layui都不陌生,很多后台管理系统都采用过它的模板。而在2021年10月13日宣布下线,不再开源维护。

面向未来

回顾历史,展望未来,我们可以看到,不论前后端户,都在往专业化的道路发展。后端的架构已经从单体化进化到SOA,到微服务,现在的的服务网格。

后端不断在进步,与前端关系更加密切,前后端攻城狮融合更加紧密,一个项目,需要团队中不同的角色一起完成。

在存储这层,newSQL发挥了越来越重要的作用,比如图数据库,文档数据库,弥补了关系型数据库的不足,让我们的系统发挥得越来越好。

更加专业的前端,我们在全面拥抱新的前端,比如Vue还有React,当然在前端界,关于Vue和React谁是前端一哥的争议也是一直居高不下,从业务的角度讲,不论选择react或者vue,只要是满足了业务需要便是好技术,至于语言的灵活性,代码的可读性和扩展性,这更考验的是技术leader的能力。

最后,作为技术人,尤其是IT圈的技术人,我们需要不断得钻研技术。这个世界上唯一不变的就是变化,这句话放在技术圈就是不容置疑的真理。朋友们,技术之路很苦,想要深耕在这条道路上,需要付出很多,需要不断清空自己的旧有思想,汲取新的营养,这样才能不被过去所迷惑,才能面向未来,从容的应对所有的变化。不论是低代码平台的流行,还是人工智能的快速发展,对会思考的程序员还是依赖的,掌握这些技术的核心,变化的都是外在的表现形式。回顾IT这条从业之路,有辛酸也有一丝成就感,祝大家都不迷茫,勇往直前。

猿创征文|那些年我们追过的那些技术相关推荐

  1. 猿创征文|独特且教训的技术成长之路

    为什么说独特的技术成长之路呢,因为从上了大学到现在读研,见识了很多的语言,也曾经迷茫过.在大学中学过C,C++,Java,Python,Js,GO等等很多的语言知识,有一些比较熟悉有一些只能说是了解. ...

  2. 猿创征文|我的C/C++技术成长之路

    作者简介:一名双非本科大二网络工程专业在读,热衷编程,喜欢写作 忘记背后,努力面前,向着标杆奋力追求 技术上的成长路线 一.初识C语言 二.ACMer的养成记 三.接触数据结构 四.开始探索C++ 五 ...

  3. 猿创征文|我的Go成长之路道阻且长

    猿创征文|我的Go成长之路道阻且长 自从2016年09月04日加入CSDN,已经整整六年了,回顾自己不太长的技术成长之路(毕竟还是00后),前前后后捣鼓过网络安全.人工智能.区块链.舆情分析.可以说是 ...

  4. 猿创征文|OneOS 万耦启物TB6612驱动电机

    猿创征文|OneOS 万耦启物TB6612驱动电机 1. 介绍

  5. 猿创征文|我的前端学习之旅【来自一名大四老学长的真情流露】

    猿创征文 | 我的前端学习之旅 自我介绍 我浑噩的大一大二(是不是另一个你) 我的大三生活 大三上(学习过程.学习方法.推荐网站) 大三下(技术提升.荣誉证书.推荐比赛) 我与 CSDN 的机缘(从小 ...

  6. 猿创征文|收到谷歌开发者大会正式邀请(Java学生的自学之路)

    文章目录 一.前言 二.收到谷歌邮件 三.感想 四.学习之路 1. 坚持看网课并整理笔记 2.勤加练习 3.坚持总结 4.刷题技巧 5.心态调整 五.结语 一.前言 上一次通过了CSDN内部筛选后,在 ...

  7. 猿创征文 | DevOps运维的10个日常使用工具分享

    猿创征文 | DevOps运维的10个日常使用工具分享 一.DevOps介绍 1.DevOps的简介 2.个人分享的10个工具导航 二.jenkins 1.jenkins介绍 2.jenkins的优点 ...

  8. 猿创征文|工具百宝箱-代码编辑器-版本控制工具-终端神器-项目与事务跟踪工具-SFTP客户端

    工具没有绝对意义上的好坏之分,只有需求适合与否,这些需求可能包括:功能.价格.安全.服务.技术等诸多方面. 技术在更新迭代,开发者工具也在更新迭代.一个高效趁手的工具在工作上锦上添花.给大家推荐一下我 ...

  9. 猿创征文|《Java》关键字大全-小结

    目录 关键字 一.Java中的关键字有: 二.访问控制 1.public 2.protected: 3.private: 三.类.方法.变量.修饰符 1.abstract: 2.class: 3.ex ...

  10. 猿创征文丨深度学习基于双向LSTM模型完成文本分类任务

    大家好,我是猿童学,本期猿创征文的第三期,也是最后一期,给大家带来神经网络中的循环神经网络案例,基于双向LSTM模型完成文本分类任务,数据集来自kaggle,对电影评论进行文本分类. 电影评论可以蕴含 ...

最新文章

  1. Linux那些事儿 之 戏说USB(22)设备的生命线(五)
  2. 面试官:群聊消息的已读未读功能,你来设计一个?
  3. 一网打尽数据结构中图相关的算法
  4. 小波变换在语音信号处理的应用
  5. 记录一次阿里云服务器升级报错
  6. MyBatis拦截器原理探究MyBatis拦截器原理探究
  7. python计算消费总额_【数据分析案例】用户消费行为
  8. 微服务架构方案 springBoot+dubbo
  9. 准确率 召回率_吴恩达深度学习笔记(61)-训练调参中的准确率和召回率
  10. mysql服务器cpu资源占用满
  11. 像差与zernike多项式
  12. java 线程 数量_Java线程数量随时间增长的原因
  13. 2005/2006/2007/2008/2009/2010/2012/2013/2014/2015/2016/2017/2018/2019/2020高德poi一级类别 二级类别 三级类别
  14. 进程间通信方式 超详细解析全站最全
  15. echart.js给series,xAxis中的data动态赋值(三种方式)
  16. Python学生成绩计算和平均值
  17. 将自己的图片做成cityscape格式(自用)
  18. Linux那些事儿 之 戏说USB(21)向左走,向右走
  19. python手机app开发_python可以开发app吗
  20. 优化静态html页面速度的步骤好人方法,对网站速度优化的10个简单步骤

热门文章

  1. Cleanmymac X2023Mac内存清理功能介绍指南
  2. CodeForces-916C-Jamie and Interesting Graph
  3. GIS十问之三:公司要求工作经验,应届生怎么办?
  4. OSTA-LINUX3-选择题练习题整理
  5. PID控制中Kp Ki Kd 在控制质量中的影响
  6. 解决方案和项目的区别_AI 项目落地应用指南--5.项目售前与解决方案
  7. Photoshop2020绿色特别版
  8. [CLI] mp4box 分割合併mp4
  9. 【博弈论】leetcode2029. 石子游戏 IX
  10. 如何下载全球航拍影像地图