猿创征文|那些年我们追过的那些技术

yelangking1 yelangking1     2022-12-01     504

关键词:

那些年

编程语言之争

       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这条从业之路,有辛酸也有一丝成就感,祝大家都不迷茫,勇往直前。

 

 

 

那些年我们追过的计算机经典书

点击关注 异步图书,置顶公众号每天与你分享IT好书技术干货职场知识参与文末话题讨论,每日赠送异步图书。——异步小编经典作品是一些产生某种特殊影响的书,它们要么自己以遗忘的方式给我们的想像力打下印记,要... 查看详情

那些年我们追过的源码

SpringSpringmvcMybatisSpringbootTomcatRocketMQKafkadubboFeign&RibbonNettyNacos(zk,eureka,nacos,consul,etcd)sentinel(熔断限流框架)seata(分布式事务框架)canal(MySQL增量订阅中间件)xxljob(... 查看详情

那些年我们一起追过的51学院

          从51学院的免费到现在的会员,走过几个春秋,最开始的时候,我刚刚读大学,那时候还读大一,由于我上的是软件工程专业,正好和计算机编程打交道,最开始的时候我在网上搜索学习网站,... 查看详情

那些年,我追过的绘图语言(续)

https://zhuanlan.zhihu.com/p/19901245****************************那些年,我追过的绘图语言(续)陈天3年前自从上一篇文章发布后,大家给我推荐了不少绘图工具,比如startUML,rose,TikZpackage,flowchart.js,matlab,R等等。感兴趣的可以自行研究... 查看详情

你是否还记得?那些年我们一起追过的(fidl:flutter界的aidl)(代码片段)

前言大家好!今天给大家安利一个自认为比较重磅的Flutter开源项目。Flutter的产品定义是一个高性能的跨平台的移动UI框架,能够用一套代码同时构建出Android/iOS/Web/MacOS应用。作为一套UI框架,它不具备一些系统的接口,自然还是... 查看详情

猿创征文|2022年快过完了,是时候总结一下那些优秀的react组件库(代码片段)

⭐️本文首发自前端修罗场(点击加入),是一个由资深开发者独立运行的专业技术社区,我专注Web技术、Web3、区块链、答疑解惑、面试辅导以及职业发展。2022年只剩下2个月,在这快一年的开发过程中,我觉得是... 查看详情

猿创征文|深入理解高并发编程~开篇(代码片段)

目录一、进程与线程二、线程组与线程池1、线程组2、线程组和线程池有啥区别?三、用户线程与守护线程四、并行与并发五、悲观锁与乐观锁1、悲观锁2、乐观锁六、CAS1、什么是CAS?2、CAS带来的问题七、那些年学过的... 查看详情

那些年我们说过的110%战略

今天是2022年技术人365篇写作计划的第11篇,计划仍在继续;今天我们主要来探讨,110%战略。硅谷王川在网上发了一段文字,他说:所有的我们以为的质量问题,大多本质是数量问题,因为数量不够,差几个数量级而已。数量就... 查看详情

那些年我们一起犯过的错

最后更新于2018/11/16我们和一般技术公司不一样的地方,在于对待错误的态度。接下来大家会对这一点深有体会。 我所能做的,就是和每个人谈谈我的失败经历,我倒是敢保证,如果你们都重蹈我的覆辙,那么你们也一定会... 查看详情

征文|毕业季,那些年我在大学里了解的技术内幕

2020,是个极其特殊的一年!自2月以来,各位小伙伴经历了在家网课,毕业设计在家完成,毕业答辩网上进行,找工作更是犹如九九八十一难,一重接着一重…但不历经风雨,又如何见得彩虹?你或许是从大学毕业,又或许从一... 查看详情

猿创征文|计算机科班生的成长路之那些相见恨晚的开发工具(代码片段)

文章目录1.前言2.代码编辑器2.1记事本2.2Notepad++2.3VScode3.本地IDE3.1VisualStudio3.2Dev-C++3.3IntelliJIDEA4.在线IDE4.1Ideone4.2菜鸟教程5.数据库工具5.1Navicat6.笔记工具6.1Typora2.CSDN7.常用高效工具7.1Everything7.2Snipaste1. 查看详情

那些年我们踩过的flink坑系列

1.FlinkSQLFlinkSQLxxxisnotserializable.TheobjectprobablycontainsorreferencesnonserializablefieldFlinkSQLClassNotFoundException:org.apache.commons.compress.compressors.zstandard.ZstdCompressorInFlinkCo 查看详情

那些年我们踩过的flink坑系列

1.FlinkSQLFlinkSQLxxxisnotserializable.TheobjectprobablycontainsorreferencesnonserializablefieldFlinkSQLClassNotFoundException:org.apache.commons.compress.compressors.zstandard.ZstdCompressorInFlinkCo 查看详情

那些年我们踩过的flink坑系列

1.FlinkSQLFlinkSQLxxxisnotserializable.TheobjectprobablycontainsorreferencesnonserializablefieldFlinkSQLClassNotFoundException:org.apache.commons.compress.compressors.zstandard.ZstdCompressorInFlinkCo 查看详情

那些年,我们一起做过的性能优化(代码片段)

简介:性能优化是一个体系化、整体性的事情,印刻在项目开发环节的各个细节中,也是体现技术深度的大的战场。文章以QuickBI的复杂系统为背景,详细介绍性能优化的思路和手段,以及体系化的思考。一直... 查看详情

那些年我们一起踩过的springcloudgateway获取body的那些坑

SpringCloudGateway-获取body踩坑实践问题1:无法获取body内容问题原因分析在使用过程中碰到过滤器中获取的内容一直都是空的,尝试了网上的各种解析body内容的方法,但是得到结果都是一样,死活获取不到body数据,一度很崩溃。后... 查看详情

那些年我们爬过的山-mybatis批量导入

...着给这篇博客起一个文艺一点的标题,思来想去,想到了那些年我们爬过的山,或者我们一起趟过的河?代码不规范,同事两行泪,这是多么痛的领悟啊!背景本组一名实习生,由于学校有事情需要回去处理,我便将他的代码接... 查看详情

那些年,我们一起做过的性能优化(代码片段)

简介:性能优化是一个体系化、整体性的事情,印刻在项目开发环节的各个细节中,也是体现技术深度的大的战场。文章以QuickBI的复杂系统为背景,详细介绍性能优化的思路和手段,以及体系化的思考。-更多... 查看详情