程序员过了35岁没人要?“这行越老越香”

news2024/11/15 21:37:20

程序员35岁失业?参加完OceanBase开发者大会,我又悟了!

周六参加了OceanBase2024 开发者大会的现场,来之前我其实挺忐忑的,我觉得一个数据库产品的发布会,能有什么新鲜的东西?

踏入酒店的那一刻,发现自己错了.....

现场会很多招聘机会、免费的自助餐、免费的活动奖品,以及近距离接触从业超过30年大佬的机会,体验到了寓教于乐的快感,也打破了程序员35岁危机的说法。

不枉我凌晨4点多就爬起来火速买了去上海的火车票, 倒也不是想白吃白拿找工作,主打一个热爱学习。

现场交流氛围很好,有招聘集市、互动打卡的游戏区域、也有互联网老兵的线下交流沙龙,对开发者和创业者都很友好。大会随手拍一张,居然发现了OceanBase的首席科学家阳老师(图最右)。

诶这个10岁的小鬼,你是怎么进来的,年纪太小不建议写代码哟,因为这样对我们打击太大了555

现场还有工作超30年,现场5位总共超过100年开发经验的资深前辈分享...

最重要的是在这次活动中,收获了许多技术的知识点,对我以后的工作有许多的帮助,下面说几个这次大会主要的收获和帮助。

大会见闻与收获

OceanBase 是由蚂蚁集团完全自主研发的国产原生分布式数据库,当前已助力超过1000家客户实现关键业务系统升级。

下面这张图大家可以看到OceanBase的发展历程,从10年开始,到现在的逐步的提升自己在行业的影响力。

另外本次开发者大会的主题主要是OceanBase 4.3产品的发布升级,在现场听了一些分享和OceanBase的工作人员进行交流后,针对当前的一些业务特点,个人的一些收获。

TP&AP 一体化,轻松实现PB级数据实时分析,驱动业务创新

TP(Transaction Processing,事务处理)模式 业务中需要需要实时给用户反馈的部分

AP(Analytical Processing,分析处理)模式 而对于可以容忍一定延迟、需要大量数据分析的部分

TP&AP在大部分公司都是单独设计的,TP 使用MySQL,再将实时数据单独建立一条链路将数据同步到HoloGress或者ClickHouse,进行实时数据分析 这部分就是AP。

用户通常使用 MySQL 等关系型数据库来处理 OLTP 工作负载,而使用 HoloGress 等专门的 OLAP 数据库来处理复杂的分析查询。

这种架构虽然在一定程度上解决了不同场景下的数据处理需求,但也带来了数据同步、系统切换等问题,影响了分析的实时性和一致性。

同时导致每次方案设计都要写MySQL的代码、Flink的代码(同步的代码)、数据分析的代码,还是挺复杂的。

OceanBase 4.3最新推出了列式存储引擎,进一步提升了AP场景下的性能,极大提升了OLAP实时分析的能力。也就是未来可支持OLTP、HTAP、OLAP不同场景的需求。

用户不再需要在 MySQL 和 HoloGress 等多个数据库之间进行数据交换和同步,而是可以在一个统一的 OceanBase 系统中完成所有的数据处理工作。

这不仅简化了架构复杂度,降低了运维成本,同时使得用户能够对实时生成的业务数据进行即时分析,大大提高了分析的时效性。

下图是一个传统链路和使用OceanBase链路的简单示意:

他能做到这样的原理是因为 OceanBase采用了独特的"行列混存"模型,同时支持行存和列存,在OLTP场景下发挥行存的优势,在OLAP场景下发挥列存的优势。

再加上智能的查询优化器、高效的编码压缩、并行计算等一系列优化手段,使得OceanBase在HTAP方面做的非常好。

关于分析能力的性能,CTO 杨传辉大会现场,在同等硬件条件下,OceanBase 4.3 同业内一流的列存大宽表数据库进行跑分 PK。

结果显示,在大宽表场景,OceanBase 的查询性能与其处于同一水平。

弹性扩容&无限扩展,解放分库分表

OceanBase 4.3.x仍然保持了极强的弹性扩容能力,可以在云上自动的弹性扩缩容。

我们可以在不影响业务的情况下,随时调整数据库的规模,从容应对高峰期的海量请求。

想想自己现在在设计数据库的时候,每次都要进行用户量的预估,进行分库分表的设计,当实际容量和预估容量不一致,某一天由于某个热点导致突然业务量爆炸增长的时候,都要苦哈哈的维护数据库的稳定性,重新在备份数据,分库分表,用了OceanBase之后,我们只需要关注领域模型本身,对一些未来到底多少容量就不需要再额外的进行分库分表的设计。

其实我个人觉得分库分表本身就一种权衡和折中的设计,不是一个好的设计方案,虽然现在很多业务都在用这种方案,业务发展的不确定性导致很难准确预估未来的数据量和访问量,一旦预估不准,就可能导致分库分表的方案难以应对实际情况。

分库分表把原本的大表拆分成了多个小表,一些跨表的查询、事务等操作变得非常困难,需要应用层自己实现,对开发人员的能力要求高,等等一系列问题吧。

这次参加大会,发现OceanBase把这种长期存在互联网设计中的痛点问题解掉了,OceanBase 采用了一种原生的分布式架构,数据可以自动分片并均匀分布在多个节点上。

这种分布式设计使得 OceanBase 能够横向扩展,通过增加节点来线性提升系统的存储容量和处理能力,而无需修改应用程序代码,也就避免了传统的分库分表。

如果以后再遇到分库分表的场景,真的可以考虑下使用OceanBase。

开发者友好,无缝兼容MySQL,丰富文档

OceanBase带来了这么多的好处,原本在想是不是又要学习一套新的数据库概念,理论等等。

但发现OceanBase还是比较关注用户体验,可以做到与MySQL完全兼容,支持所有MySQL语法和协议。

我在现场就用MySQL的语法现在进行了开发,完全无感知,连驱动都是MySQL的db驱动,甚至支持非关系数据库数据的写入,再用sql的方式查询数据。

Java、Python、Go主流的开发语言和框架也完全兼容,云上来说阿里云、华为云、腾讯云、AWS 、GCP没错也完全完全兼容。

它的官方网站资料、文档也很全,我觉得在开发者体验这一块确实是拉满了,他们还和AI做了结合,文档回答速度和准确度都非常高。

总结

其实关于这次大会我最深的感触,就是终于可以打破一些外界对程序员的年龄偏见了,因为在现场来来往往不少都是35+的研发人员,大家依旧保持着学习的热情和对行业的探索欲。

另外也确实收获到了关于数据库行业的诸多知识点,扩展了我的视野,对个人的工作也有了一定的启发,当然也了解到了像OceanBase这么优秀的产品。

一天下来,我真切地感受到,数据库领域一样正在发生翻天覆地的变化。云计算、分布式、一体化等新技术,正在颠覆我们对传统数据库的认知, 同时也有AI技术浪潮铺面而来~

作为程序员,要紧跟时代的步伐,我们和OceanBase一样,拥抱变革,学习创新。只有这样,才能在这个瞬息万变的数字时代立于不败之地!

年龄永远不会成为阻碍。我们的价值不应随着年岁增加而减少,保持年轻的心态,学习新事物,并将其应用到实践中,我们就能不断创造价值。

这一次我看到的远不止于技术层面的升级,是实实在在的业务价值和发展机遇,是关于开发者的无限可能。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1620419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

monorepo搭建记录

最终文件效果 1、准备环境 npm pnpm 2、创建文件夹npm init vite // 名字可以为main(自定义) 创建主应用main npm init vite // 名字可以为main monorepo下创建文件夹web 创建辅助应用 例:react-demo,具体步骤:1、 cd…

深入理解JavaScript:对象什么时候创建

🌟 我们在chrome浏览器中debug程序。为了好debug我们会写一些在日常开发中基本不会采用的代码书写方式。 JavaScript中创建对象有3中方式: 1、对象字面量; 2、new; 3、Object.create(对象); 1、使用new创建对象 fun…

10分钟揭秘摘要抽取:探索信息提炼的奥秘

Introduction 本文分别介绍摘要数据集,摘要分类,摘要架构,相关baseline。并介绍若干篇EMNLP2023论文,介绍其最新工作。 1.数据集 1.1 文本摘要 DUC/TAC 英文|数据集较小|适用于传统摘要方法的评估 Gigaword 英文|启发式规则构…

【数据结构与算法】8.二叉树的基本概念|前序遍历|中序遍历|后序遍历

📚博客主页:爱敲代码的小杨. ✨专栏:《Java SE语法》 | 《数据结构与算法》 | 《C生万物》 |《MySQL探索之旅》 |《Web世界探险家》 ❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更…

【Linux】iptables的应用

iptables 防火墙 防火墙是一种网络安全系统,它位于内部网络与外部网络(如互联网)之间,通过实施预定义的安全策略来控制网络间的通信。防火墙的主要目标是保护内部网络资源免受未经授权的访问、攻击或潜在威胁,同时允…

经风靡全球的 PHP 为何逐渐失去优势?

TIOBE 编程语言人气指数发布更新,并提出“PHP 的魔力是否正在消散?”的灵魂拷问。今年 4 月,PHP 在 TIOBE 编程语言指数榜上仅位列第 17,“成为其有史以来的最低排位”。 暴露 PHP 人气急剧下滑的还不只是 TIOBE 榜单。在年度 Sta…

到底什么是爬虫

1. 引言 在数据驱动的世界里,网络爬虫(Web Crawling)技术扮演着获取和处理网上数据的关键角色。无论是为了数据分析、机器学习项目的数据集构建还是简单地监测网页变化,学习如何创建一个基本的网页爬虫可以大大提升你的工作效率和…

JAVASE基础语法(异常、常用类)

一、异常 1.1 什么是异常 异常就是指不正常。是指代码在运行过程中可能发生错误,导致程序无法正常运行。 package com.atguigu.exception;public class TestException {public static void main(String[] args) {int[] arr {1,2,3,4,5};System.out.println(&quo…

【c++】探究C++中的list:精彩的接口与仿真实现解密

🔥个人主页:Quitecoder 🔥专栏:c笔记仓 朋友们大家好,本篇文章来到list有关部分,这一部分函数与前面的类似,我们简单讲解,重难点在模拟实现时的迭代器有关实现 目录 1.List介绍2.接…

CSS3新增特性(二)

四、2D 转换 • 属性名:transform (可用于制作2D转换,也可用于制作3D转转换;2D转换是平面上的转换,3D转换是在三维立体空间的转换) • 作用:对元素进行水平或垂直方向的移动、缩放、旋转、拉长…

你们项目日志是如何处理的???

ELK日志采集系统 1.什么是ELK ELK 是一套流行的数据搜索、分析和可视化解决方案,由三个开源项目组成,每个项目的首字母合起来形成了“ELK”这一术语: Elasticsearch (ES): Elasticsearch 是一个基于 Apache Lucene 构建的分布式、实时搜索与…

【Python性能优化】list、array与set

list、array与set 详述测试代码 详述 本文对比 list 与 set 在插入和取值时的性能差异,以提供一条什么时候该选择什么数据类型的建议。先上结果: array 与 list 的不同: 内存方面 array 是 C array 的包装,它直接存储数据&#xf…

Vu3+QuaggaJs实现web页面识别条形码

一、什么是QuaggaJs QuaggaJS是一个基于JavaScript的开源图像识别库,可用于识别条形码。 QuaggaJs的作用主要体现在以下几个方面: 实时图像处理与识别:QuaggaJs是一款基于JavaScript的开源库,它允许在Web浏览器中实现实时的图像…

授权协议OAuth 2.0之通过OIDC实现SSO

写在前面 本文来一起看下OIDC(openid connect)相关内容。 1:什么是OIDC OIDC的全称是openid connect,和OAuth2.0一样,也是属于协议和规范的范畴。OAuth2.0是一种授权协议,即规定了what you can do的内容…

kafka部分partition的leader=-1修复方案整理

kafka部分partition的leader-1修复方案整理 1. 背景说明2. 修复测试2.1 创建正常的topic并验证生产和消费2.2 停止kafka模拟leader-12.3 修复parition2.4 修复完成验证生产消费是否恢复 3. 疑问和思考3.1 kafka在进行数据消费时,如果有partition的leader-1&#xff…

MySQL基础之多表操作(多表查询,事务,索引)

目录 一、多表关系1.1 一对多1.2 外键约束1.3 一对一1.4 多对多 二、多表查询2.1 测试数据准备2.2 笛卡尔积2.3 内连接2.4 外连接2.5 子查询1.标量子查询2.列子查询3.行子查询4.表子查询 三、事务3.1 问题场景引入3.2 概念3.3 事务操作3.4 事务的四大特性ACID 四、索引4.1 概念…

人工智能高速发展 苹果能否赶上AI热潮

近年来,人工智能高速发展,科技大佬们竞相布局人工智能赛道。苹果虽然“晚”了一步,但也在不断追赶这股热潮。随着AI技术不断发展,这项技术已经成为手机发展的新风向标,甚至2024年被视为AI手机元年。 众多手机厂商铆足了…

vue做导入导出excel文档

系统中经常会遇到要实现批量导入/导出数据的功能,导入就需要先下载一个模板,然后在模板文件中填写内容,最后导入模板,导出就可能是下载一个excel文件。 1、导出 新建一个export.js文件如下: import {MessageBox,Mes…

【Xilinx】时序约束学习 TIMING-2: 基准时钟源管脚无效

在错误的管脚 <pin_name> 上创建了基准时钟 <clock_name>。建议仅在适当的时钟根&#xff08;不含时序弧的输入端口或原语输出管脚&#xff09; 上创建基准时钟。 描述 基准时钟必须在时钟树的源时钟上定义。例如&#xff0c; 源时钟可能是设计的输入端口。如果在…

4.20.1 深度神经网络提高放射科医生在乳腺癌筛查中的表现

新颖的两阶段神经网络&#xff0c;用于将全局和局部信息与适当的训练过程结合起来。这使我们能够使用非常高容量的块级网络从像素级标签中学习&#xff0c;同时网络也可以从宏观乳房级标签中学习。模型可以生成可解释的热图&#xff0c;指示可疑发现的位置。即使在拥有大量图像…