在鹅厂做java开发是什么体验

news/2025/2/26 22:40:00/文章来源:https://www.cnblogs.com/w1570631036/p/18739930

离职已有好几个月,准备写一篇关于之前在腾讯做Java开发的经历,现在来谈谈在Java领域里,在腾讯做Java开发的体验。随便写写别较真。

首先,介绍一下腾讯里与Java相关的部门。主要有CDG(云与智慧产业事业群)中的腾讯广告和FIT(金融科技事业群)理财通。其他部门则包括TEG中的一些大数据部门,以及IEG中的大数据相关团队。在腾讯,大部分Java工作都是与大数据相关的,因此在腾讯写代码的项目通常B2B或大数据相关的业务,其他类型项目较少。

一、Spring Boot

接下来谈谈在腾讯的一些开发工具。首先,在框架方面,大部分项目仍然使用Spring Boot,也有一些项目选择不知名的框架,曾经看到过使用Grizzly(号称高性能目前已过时)的项目,然后加了Spring Boot变成了大杂烩,可能是因为晋升有东西可讲吧。

还有一些历史较悠久的项目,各种奇怪的框架都有存在。关于JDK,绝大多数项目使用的版本各异,某些项目甚至源自十几或二十年前,可能会基于JDK1.8,更新的则普遍使用JDK 17,具体还是看各个部门的选择。一些ToB业务由于需要迁移到云端,使用了腾讯云的微服务框架TSF,没用过不评价吧。

二、中间件、服务发现、网关等

中间件其实都是以来腾讯云,有些BG会二次封装一下,基本也都是Kafka、Mysql、Elasticsearch、Redis这些,二次改装后可能交Tendis,TKafka,TDSQL之类的,是不是很好奇都加了个T,之前有人在脉脉调侃会不会出个TDeepSeek哈哈哈。

在服务发现方面早期的有Taf,搭配nginx实现微服务框架,同时提供服务发现功能。令人惊讶的是,这些技术已经存在十几、二十年了,由于历史原因,也不敢动,不得不持续使用。内部大部分使用北极星(即在GitHub上开源的Polaris)。也存在一些较老的网关,名字记不太清了。

RPC的话,内部频繁提到的是TRPC,这是一种类似于开源gRPC的框架。TRPC是基于TAF演变而来,是专为RPC设计的框架。公司为了推广这一框架,已成功在不少项目中应用。然而,TOB业务使用这一框架的情况较少,大部分仍使用SpringCloud框架,尤其是Spring Cloud。我个人觉得,灵活性是最佳策略,绝大多数项目选择Spring Boot。如果整合Kubernetes(k8s),再加上北极星网关,这样基本能够满足大部分业务需求。内部主要还是看团队的工具为主,基本每个BG都在搞自己的paas相关服务,比如tkex、天机阁,各种名字都有。

ToB的业务可能比较惨,一边公司要求必须使用公司组件,一边客户要求不能使用鹅厂内部的东西,有时就得准备两套应对。。。

三、大数据

内部也是封装了spark、flink这些,有的叫taiji、有的叫洛子(us),现在不知道啥情况了,迭代很慢,spark on k8s这个天然适合调度的,不知道现在集成情况怎么样了。ui的话,感觉洛子交互更加友好(个人感觉哈),任务之间拉条线就能上下依赖,外面也有海豚apache dolphinscheduler类似的。虽然整体大数据平时吐槽会有点老旧,好像外面的集成更差一点哈哈。

四、监控

在监控方面,各种工具层出不穷。早期有秒级监控,还有天机阁。内部主流的监控产品是孵化出来的,其次有资源监控功能。确实有一些会议类似Prometheus的开源项目,资源监控的实现相对困难,设计上存在一些冗杂的环节。当一个服务不属于任何具体服务时,必须依赖于Agent(这可能指某种特定的日志或监控工具)来收集日志或监控数据。个人觉得这种设计有点奇葩,不知道怎么想的,部署一个服务还得配置考虑怎么配置日志、监控相关的agent。

早期的秒级监控确实良好,并配有成熟的告警机制,但之后维护减少。我推测,监控逐渐被当作数据库使用,因为多维度相乘的成本相当高,最终的成本由业务自行承担,跨越发展时期的项目因无法承受过高的成本而被迫退出。许多项目在无奈的情况下,选择继续迁移至资源监控,导致监控的使用过程中显得相当不合理。

此外,也了解到一些部门使用Prometheus,外部生态的确较好,不过Prometheus在腾讯内部使用较少。关于PaaS服务,公司内部有很多平台,主流的是腾讯云及PCG的007平台,还有TEG的TKEX。内部孵化的平台较多,同时保留了一些早期云平台的遗留产物,毕竟是在云原生技术成熟之前形成的。

由于历史原因,维护这些老旧服务的工作极具挑战性,始终难以去除(这可能指这些古老服务一直以来存在且难以消除的现状),业务方面的调整往往比较谨慎。不同产品线的输出中,也有CICD(持续集成/持续部署)相关的工具。确实存在许多优秀的CICD工具,以蓝鲸平台为主,还有一些收购的公司如Coding等,提供多样化的CICD工具。

五、职场那点事-有人的地方就有江湖。

腾讯主要还是以C++、Go为主,做为Java在里面的位置可想而知。10位组长中大约有4位曾经负责C++和PHP开发,另1位可能来自算法研究,剩余5位才是Java相关的。所以和组长的沟通中,就显得非常重要,比如周会说下进度的时候,有的人就简单两三句说完了,有的人就会把很简单的事情说的很复杂,甚至还把别人的成果也说了进去,那么在组长眼里,你做的事情太简单了,别人做的事情更有成果。当然了,大厂还是主要看组,每个组的氛围都不同,也跟组织架构有关,有时候每半年换个总监,每次换领导之前的项目就没有意义了,每个领导的想法不同吧。整体而言,外面也一样,都是看运气和个人如何面对吧。

六、总结

滨海里的夕阳很好看

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件二次开发

软件来源:舍友期末大作业 软件运行环境:dev C++ 软件运行图: 软件伸缩代码图: 问题:菜单只会出现一次,在多次操作之后菜单会被顶走,届时用户只能依照记忆操作系统 更改的代码: 在循环执行选项的代码部分增加了菜单的输出 更改后的代码运行:

换根dp

概念 换根 \(dp\) ,又被称为二次扫描,是属于树形 \(dp\) 的一类但比一般树形dp更难。 特点通常是没有指定根结点,且根结点的变化会对一些值产生影响。通常需要两次 \(dfs\) ,第一次 \(dfs\) 预处理信息,第二次 \(dfs\) 开始换根动态规划。求解的答案通常需要结合所有相连的…

千锋教育MyBatisPlus全套课程,简单快速一套精通MyBatisPlus框架(代码生成器_引入_使用)

https://www.bilibili.com/video/BV1aa4y1A7iN?spm_id_from=333.788.videopod.episodes&vd_source=0d7b1712ce42c1a2fa54bb4e1d601d78代码生成器_引入_使用 https://github.com/godmaybelieve

【PLSQL】使用PLSQL查看创表SQL踩坑

背景 通过PL/SQL Developer的View SQL查看表的创表语句,结果发现创表语句少了字段 可能原因PL/SQL Developer 的对象浏览器会缓存元数据信息以提高性能。如果修改表结构后未手动刷新,工具可能继续展示缓存中的旧元数据。 Oracle 的数据字典视图(如 USER_TAB_COLUMNS)本身是…

从 0 到 Offer:Dynamics 365 CRM 学员的普华永道逆袭之路

在竞争激烈的就业市场中,如何才能脱颖而出,收获理想的工作?李先顺(化名)的经历或许能给我们带来深刻的启示。这位出身普通高校信息管理专业的应届毕业生,通过在爱码士IT培训www.aimashi365.com机构的报名和培训,凭借着对 Dynamics 365 CRM 技术的深入学习和实践,成功入…

本地?线上?分布式系统前后端架构、部署、联调指南,突破技术

“ 引言:对于常见的BS架构系统,程序员如何进行本地或者线上环 境联调,这有助于提高个人工作效率,站在更高的角度审视系统, 从此以后再无惧Bug,让你早干完活,早摸鱼🐟,早下班。 对于Java初学者,或者是三年工作经验的“新手” ,希望此文对你有所裨益! -- 诗经有云,…

Spring AI 学习之路 快速上手

随着人工智能(AI)技术的迅速发展,越来越多的开发者开始关注如何在自己的应用中集成 AI 功能。Spring 框架作为一种流行的 Java 开发框架,提供了强大的支持来构建现代应用程序。本文将为你介绍如何快速上手 Spring AI,帮助你在项目中轻松集成 AI 功能。什么是 Spring AI? …

【PWN】初识Orw

例题:NPCCTF - Ooooorw发现开启了沙箱,禁用了execve函数,所以只能利用open,read,write函数来进行输出flag from pwn import *file = ./pwnlibc = ELF(./libc.so.6)i = 0if i == 1: io = process(file)else: io = remote(175.27.249.18,32438)elf = ELF(file)context…

洛谷2025省选模拟赛D1T1“Ball” 题解

洛谷2025省选模拟赛D1T1“Ball” 题解首先可以写出一个暴力的 dp : 令 \(f_{i,j}\) 表示有 \(i\) 个选了一次的球和 \(j\) 个选了大于一次的球的期望答案,有等式: \[f_{i,j}=\frac jnf_{i,j}+\frac{n-i-j}nf_{i+1,j}+\frac in f_{i-1,j+1} \]进一步得 \(f_{i,j}=\frac{n-i-j…

[计算机网络/网络抓包/以太网] `.pcap` 数据报文存储格式

序:一份以太网报文概述:.pcap 数据报文存储格式 简介.pcap文件:一种常用的数据报文存储格式,主要用于网络数据包的捕获和存储。pcap文件格式由PCAP库提供,支持将网络上的所有数据包保存到文件中,并可以从文件中读取数据包。 pcap文件通常由文件头和数据包头组成,每个数据…

C#/.NET/.NET Core技术前沿周刊 | 第 27 期(2025年2.17-2.23)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。欢迎投稿、推荐或自荐优质文章、项目、学习资源等…