过早客
  • 首页
  • 节点
  • 成员
  • 广告投放
  • 登录
  • 注册

吐槽java程序员一个陋习

IT技术 • phynos • 发表于 3 年前 • 最后回复来自 xuzhuang1990 • 2 年前

发现招的java程序员特别喜欢用阿里的fastjson,首先这玩意本身经常有高危漏洞(这不最近又出来一个),另外springboot本身自带了非常好用的jackson,非常反感额外引入一个相同功能的json库(是不是觉得用的库多了项目就牛了,某些开源项目还把用了这个写在首页)。
以上还不是让我最生气的,最让人受不了的就是用了fastjson后,在后台把java当成javascript写,还是用api拙劣的模仿,完全丧失了强类型的优势,代码时间长了自己都看不懂,不知道输入是什么,也不知道输出是什么,真的是恶心死我了。
反正目前新项目,我第一件事就是要求团队成员不允许用fastjson
————————
强调一下:工具无罪,只是用的方法有问题

加入收藏 新浪微博 分享到微信 ❤赞 4028 次点击 1 人赞 2 人收藏

打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

共收到27条回复
wuxuguang 3 年前 #1 赞 4

确实,最好不用fastjson

hellohaozi 3 年前 #2 赞 5

你知道触发高危漏洞的case是什么吗? 和前段时间log4j一样,都是为了满足高级特性而引入了可以远程执行脚本的漏洞,平常使用fastjson一丁点问题没有,自己写个main方法然后用fastjson和jackson序列化循环一千次打印耗时,你就知道为什么叫fastjson

changhe626 3 年前 #3 赞 2

多加点钱, 招点高级/资深的程序员, 做好代码的扫描(最好严格到commit信息的格式), 做好代码review, 做好安全扫描管理.

canrom7 3 年前 #4 赞 3

有人跟我一样 喜欢用google 的Gson的吗?

phynos 楼主 3 年前 #5 赞 0

@canrom7 如果框架本身提供,我是不建议额外引入的,因为本身就只会对序列化和反序列化进行封装,其他功能基本不用,再就是一点注解标注实体类,完全没必要额外引入,增加打包体积

mit 3 年前 #6 赞 0

fastjson2

LancerXin 3 年前 #7 赞 3

发现搞java的都喜欢用spring,springboot,这东西又慢,又重,动不动就占1-2G内存。实在想不通为什么这么多人会喜欢,是被培训机构毒害了吗?vert.x ,Quarkus不香吗?golang,rust不香吗?

wuben 3 年前 #8 赞 0

规范没建立起来,年轻的就瞎搞呗。赞同三楼。

phynos 楼主 3 年前 #9 赞 3

@LancerXin 为什么?因为不会和钱和时间过不去
我自己java、golang、C++、前端、Qt甚至嵌入式都会,很清楚每个项目最合适的选择是什么。
做业务系统,java绝对是目前国内最合适的选择,不谈工作,就说接私活,我几个前同事都使用java接,客户也愿意,有几个深圳的前同事每年接私活都能额外赚40~100万,这个时候让你选择,你也会选择最方便,最省事,最快的方案,至于内存,让客户加点钱升级就完了

LancerXin 3 年前 #10 赞 0

@phynos 30多的人程序员都经历过那段被java统治的年代,但是现在的技术发展已经注定spring这套东西东西会慢慢进入历史的垃圾堆,现在还有点余威是因为30多岁的这一批老程序员还在。

现在其他语言的生态都已经慢慢发展起来了,就拿golang来说,生态已经不不比spring生态差多少,同样能够做到更方便,更省事,更快,而且更加贴近云原生。语言本身学习也不难。之所以spirng还有这么大的保有量,很大一部分是因为30岁这批人占了高位又懒,不喜欢技术革新。

不过进入历史的垃圾堆也是迟早的事情,时代的潮流会逼着他们去改变。

phynos 楼主 3 年前 #11 赞 0

@LancerXin 只要钱给够,你让我用C语言写业务后台都没问题,当年写嵌入式CGI用C语言的sprintf构建整个后台又不是没干过,最省内存和流量,只是写和维护都非常恶心而已

phynos 楼主 3 年前 #12 赞 0

@LancerXin 5年以上程序员都不用担心编程语言问题,花1~2个月(语法估计只要3天,主要是学习库的用法),随便切换。
语言从来不是关键,要按你的标准,C#完全是综合了golang和java的优点(NET6也能单个打包不需要安装依赖,占用内存也小,运行效率比golang还高、生态也比golang好,也能在arm架构的linux上运行),为什么不选C#?无非是政治问题而已

ybonfire 3 年前 #13 赞 0

在后台把java当成javascript写,还是用api拙劣的模仿,完全丧失了强类型的优势,代码时间长了自己都看不懂,不知道输入是什么,也不知道输出是什么。

谁要是这么要求立马离职,跟sb一样

phynos 楼主 3 年前 #14 赞 0

@ybonfire 不要断章取义,我是说用的方法不对,就干脆禁止使用,也不是必须非要用

LancerXin 3 年前 #15 赞 0

@phynos 我并没有针对语言,只是针对spring框架,java中也有很多不错的框架比如 vert.x ,Quarkus。之所以只说golang,语言简单易用的特性是一方面,也有泛指golang里一些成熟框架的意思。至于C#,只能说爹的背景不好,宣传也不到位,新特性出来的也晚,这个和政治无关。老程序员可能切换语言很方便,但是他们愿不愿意就是另外一回事了,不可否认大多数程序员干了几年就躺平了,喜欢用自己擅长的那一套东西去解决,长此以往技术栈落后,跟不上时代是是常有的事情。

phynos 楼主 3 年前 #16 赞 0

@LancerXin 这个你倒是多虑了,工资高的人其实都很爱学习,只要是钱给够,也愿意换,比方说一个深圳的前同事就是最近被裁员,然后去虾皮,换成golang,他也愿意换,另外即使他没golang经验,虾皮也愿意50W+的年包让他过去,所以跟不跟得上时代,完全看个人平时的努力,和语言框架基本没有关系

canrom7 3 年前 #17 赞 2

@LancerXin 老程序员都知道,不是面向技术编程,是面向需求编程,面向money编程
各种java这种技术能保持一定的占有率 绝对不是你一两句片面的观点就能否定的,要考虑历史问题,比如很早期有些特殊的行业一些支撑的API ,就是用java 或者 C 实现的,早就稳定固化了 非得用go or python 等等 去重新实现一边? 你的观点就是典型的历史虚无主义。 不承认过去的环境的一些限制和条件,在这里大肆贬低 JAVA 体系,我只想说 too young

phynos 楼主 3 年前 #18 赞 0

不讨论了,今天因为改别人代码和安全升级被气到,不冷静

jacky098123 3 年前 #19 赞 1

@LancerXin 我觉得你这是和幸存者偏差一样的情况

写代码,生态最重要,不会因为需要个特性,项目全部重来。Java 就是这点好。Sprint 框架几乎能解决绝大部分的问题

Golang 我也用了几年,生态太差,一堆依赖,连个靠谱的 framework 都没有

sky0014 3 年前 #20 赞 0

前端更蛋疼,啥标准框架都没有,都得自己找各种库搭在一起,调个半天,打包还得写一堆配置

benjw 3 年前 #21 赞 0

哈哈哈。我大概知道楼主说的什么
Map<> Hell
另外,fastjson1 其实也并不快
实际评测过,gson 2.9 目前是最快的
实际上那点性能差别,多数业务场景下不是最重要的

LancerXin 3 年前 #22 赞 0

@canrom7 我并没有说spring马上被淘汰啊,我说它慢慢在被淘汰,它已经跟不上步伐了,也没有错啊,之所以没有马上被淘汰,的确有你说的老系统原因,但是从我们一直学习的哲学思想上来看,新事物必将取代旧事物。或者你认为spring不会被淘汰,它仍然会,并且会长久的存在下去?

wy502 2 年前 湖北省 #23 赞 2

首先fastjson在现在看来的确是个质量比较差的库,但是这里面也有很多历史原因,首先它的确是在当时很快,因为它在jdk1.7版本前针对性的做了很多快方面处理,现在看来是投机取巧,也暴露了兼容性,安全性上的很多问题,但是那个时候的确是好用的,它的好用我认为主要不是因为性能,一方面部分程序员是对阿里的迷信,另一方面是因为它比较符合中国程序员对一个库api使用的语义习惯。所以你不能抛开历史谈垃圾,还有说springboot这种框架,生态,java这种语言垃圾的, 大家也没必要这么戾气,技术是在更新,人也是在老去,但是修养,胸怀一样要跟着技术螺旋上升的更新迭代,这些在你看来过时垃圾的技术栈,它里面包含的编程技巧,设计思想,它一定是有相当大的价值的,会为你学习一门新技术,新语言,新思想开辟道路,被淘汰的只是具体的实现和有些人的自大,技术人应该是不停学习进步,也不停包容交流的

irving2016 2 年前 湖北省 #24 赞 0

楼主没吐槽到重点。
1.烂人无脑复制烂代码,跟语言无关。
2.上阿里的贼船一开头就是个错。阿里所有的开源工具版本维护都稀烂,我发现就没有例外。Dubbo之前一堆问题,万年不更新。上了贼车,想下车都难;同时也看看RocketMQ看看版本更新速度;FastJson持续5,6年每年都爆个惊天大漏洞,阿里哪里体现点责任心整顿下这个包?更不用说一堆它的受众面小的jar包,maven的version信息清一色填alpha,beta,有没有决心搞个正式版的?

phynos 楼主 2 年前 湖北省 #25 赞 1

我靠,谁挖的坟
我主要吐槽是利用fastjson把java当成javascript写,一个方法参数和返回都是JSONObject,方法体里面各种从JSONObject里面取数组或属性,然后强制转换。
我当然知道工具本身没撒大问题,即使有安全问题,安全部门提邮件后,直接升级就行了。
至于上面吐槽java和springboot的,我都懒得理他们,都是面向money编程,没有工具高人一等,见过几个用java接外水年入50W的(前提是有个好销售朋友,能将一些小项目给你)

hemingyangyang 2 年前 湖北省 #26 赞 0

一个原因 阿里大树背景
二个原因 好多都是baidu而不是Google

xuzhuang1990 2 年前 湖北省 #27 赞 0

@canrom7 不好用

请绑定手机号后,再发言,点击此处
Guozaoke.com—源自武汉的高端交流分享社区
相关主题
有多少人知道华为在AI算力的基础建设上已经超越英伟达了?
EDA断供
最近时间少了, 隔了这么久, 才做了一个网站
求推荐一个AI智能体客服
Android手机推荐
请教机器学习人工智能的一个技术问题
搞了个AI 生图的网站,不需要登录,永久免费
[第二波送码]动动嘴皮,AI秒出图!2025最炸裂图标神器:免费生成+手机实时预览
我没房子的时候,每年赚的钱比不上房子每年涨的钱。等我咬牙买了,每年赚的钱,比不上房子每年亏的钱
开发了一个管理 Linux 服务器的桌面可视化管理工具,求蹂躏

过早客微信公众号:guozaoke • 过早客新浪微博:@过早客 • 广告投放合作微信:fullygroup50 鄂ICP备2021016276号-2 • 鄂公网安备42018502001446号