当前位置:首页 > 每日看点

作为一名5年以上开发经验的jaer,你为什么放弃ja?

卡卷网2年前 (2025-01-11)每日看点340

你要相信,在知乎上,每一个ja黑都曾经是ja红。

我本来挺喜欢ja的,在大学的时候ja只是一门选修课,但由于热爱,我当年硬是自学掌握了这门语言,并且ja网络编程写了一个war3的对战平台。

前面几份工作也是ja找的,甚至包括进入阿里。作为知乎某非著名ja黑子,很多人跑来跟我对线,说我对ja一窍不通,我内心平静的像一池粪坑,你扔个砖头,希望听到一声水花,那只能抱歉了,最多几个咕咕的泡泡再冒一团臭不可闻的气味。所以别来跟我对线自讨没趣。

我是什么时候对ja失望的呢?正是进入了阿里。我发现我甚至看不太懂这些人写的ja代码。一开始我以为是我太菜了,后来接触多了我才反应过来。这些人写ja是的啊。

注解滥用

一个函数上面20+个注解,就问你怕不怕?这种代码神仙能吗?我不否认某些注解确实好用,如switch的注解,这个阿里人应该都用过,在一个静态局部变量上面使用switch的注解,变量就会自动进入switch开关配置平台,可以直接在平台上面修改,甚至不需要先在平台上面注册这个开关。但特么还有很多是业务部门自己的自作多情,封装的狗都不用的逻辑,也要封装一个注解出来,调试一下,简直。

炫技

我曾经在阿里见过最炫技的代码是这样:

pulicList<User>getUsers(mapqueryMap){ Stringsql=SqlFactory<User>().where(queryMap).getSQL(); retn(List<User>)newProcRunner().execute(sql,User.class); }

很清爽吧?我第一次见到的时候,也觉得这位作者是个人才,代码写的如此清爽,直到某天我发现它的查询总是有点偏差,但偏偏代码就这么少,那问题一定出在sql对吧,我熟练的Ctrl按住,鼠标点击SqlFactory的时候,发现是一个intece,行,难不倒我,我开始查找所有的实现类,发现没有一个类是明确impl了这个intece的。我查遍了整个项目都没有。你仔细看那个where就应该猛的有一种不好的感觉,这玩意八成压根就是动态的,不然怎么解决注入问题?也就是说这个sql压根就不是模板,而是运行时动态生成一条拼接好的sql,如果想看一下逻辑,那抱歉,恐怕又是一堆又臭又长的ast生成逻辑。。当然我不否认这位哥的技术修为,但是cornercase是需要持续打磨的,这种只管生不管养的项目也多的一逼。

复杂度失控

代码clone下来,IDEA全程红色波浪线,它自己分析分析着就卡死了,完全提示不了任何代码,写ja没有代码提示,那代码还能写?什么代码复杂到IDE都无法分析了?那是人能?最无厘头的是几乎每行代码都异常标红,但是你点击run,居然可以跑,他,居然可以跑!是不是贼恶心?我的不想再看到任何一行ja代码,我感觉我已经ptsd了。

自作多情

学人家C/C++,玩接口和实现分离成两个项目,向slf4j看齐,觉得我出标准,各位来实现,可是我自始自终也没看到你的第二种实现呀?反而是搞一大堆间接依赖,冲突不断,整天都在解决依赖风暴。他两个项目依赖第三方类库,版本还不一样,这没5年脑血栓干不出来这个事儿。

还有那种强行fluentapi,起来的要掉不少头发呢,动不动十几二十个方法的串联。这导致你要修改其中之一,它后面的整个链条上面所有节点全部改一遍,这种事情我在阿里里面的时候,碰到不下于10次。这种代码那简直堪。你别说你看的开源也是这种哈,人家那都是uilder模式,是平级的,就最后一个节点才是作。而不是链条上每个节点的出参是后一个节点的入参这种。

每次打开一个ja文件,看到里面的人自以为是的“封装”,那已经不是代码了,每一行分明写着:“你也配写Ja?”,“小子退后,我要开大了”,“我若不这么写,你怎么会知道老子高考675?”。

我每一天都想逃离这种环境,的,这种玩了命要在一门静态编译型语言里面搞动态化又不肯直接上动态语言的精神氛围。所以我开始寻找脱离写ja的机会,直到我去了阿里云,在里面写go,那简直是我在阿里最愉快的时光了,到不是说阿里云全是go,其实还是有很多写ja的,但重要的是我开始写go了。尽管go某些设计简直逼死强迫症,甚至语义都无法一。如:result,err:=://xxx.xxx(),iferr!=nil判断完了,某些情况下你还是需要判断result。

但,我不在乎,我不用写ja了。很开心。

扫描二维码推送至手机访问。

版权声明:本文由卡卷网发布,如需转载请注明出处。

本文链接:https://www.kajuan.net/ttnews/2025/01/8749.html

分享给朋友:

相关文章

计算机专业不干互联网不热爱技术,还能转行干什么?

转行的思路,无非也就是那几个。 我们顺着每个思路,一路捋一遍,基本上,大致可行的方向,也就有了。 一、跟对口职业和岗位业务链条相邻的职业和岗位计算机专业如果找到了对口的技术岗位,跟技术工作联系最紧密的岗位是什么? 产品经理。当然,大多数产品…

报名的网课分期付款怎么退?

你在你分期付款的订单下面有客服电话,直接打电话描述一下你的问题,你可以告诉他你是被恶意绑定的,在不了解有退学条件这一说的情况下报的课程,可能遇到消费者诈骗了,不承认有退学金,说是霸王条款,诈骗消费者,你若分期了先把自动续费关了,别让自己个人…

无意中发现技术主管写的代码,大家帮忙看看什么水平?

无意中发现技术主管写的代码,大家帮忙看看什么水平?

虽然很多答主用了诸如“典范级”、“心旷神怡” 的形容, 赞美这段代码, 但这里, 出于技术讨论的动机, 我说说不同看法. 栈, 如果善于利用栈来处理树结构, 那么可以写出更简洁的代码, 根本不需要 recuresiveFn 这种方法. 泛型…

有没有高手指点一下Google做SEO现在的技巧啊?心好累。

有没有高手指点一下Google做SEO现在的技巧啊?心好累。

搜索引擎优化 (SEO) 的目标是让 Google 在用户输入相关搜索查询时提供您的网页链接。 虽然没有固定的蓝图可以保证您获得最高排名,但有几种 SEO 最佳实践(您可以将其视为 SEO 规则)可以增加您在非付费结果中获得良好排名的机会。…

如何评价小米14pro顶配可以选配卫星通话,小米15全系都无法选配?

如何评价小米14pro顶配可以选配卫星通话,小米15全系都无法选配?

雷总不是说了吗,我可以不用,但你不能没有。市面上OPPO Find X8 Pro和vivo X200 Pro的卫星通信版分别加价300,而荣耀Magic7和Magic7 Pro有卫星通信版且不加价,荣耀更显诚意。 我觉得有是更好的,虽然使用…

在 Kubernetes 中,Service 的实现原理是什么,它是如何实现服务发现的?

行,问的这个问题挺有意思,Kubernetes 里 Service 是怎么实现的,服务发现是怎么回事,咱就直说了。这事儿看起来挺玄乎,但掰开揉碎了讲,也就那么回事。你得把这事儿想得简单点,别一上来就被啥术语吓住了——其实全是些搬砖的套路。…

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。