作为一名5年以上开发经验的jaer,你为什么放弃ja?
作者:卡卷网发布时间:2025-01-11 16:40浏览数量:82次评论数量:0次
你要相信,在知乎上,每一个ja黑都曾经是ja红。
我本来挺喜欢ja的,在大学的时候ja只是一门选修课,但由于热爱,我当年硬是自学掌握了这门语言,并且ja网络编程写了一个war3的对战平台。
前面几份工作也是ja找的,甚至包括进入阿里。作为知乎某非著名ja黑子,很多人跑来跟我对线,说我对ja一窍不通,我内心平静的像一池粪坑,你扔个砖头,希望听到一声水花,那只能抱歉了,最多几个咕咕的泡泡再冒一团臭不可闻的气味。所以别来跟我对线自讨没趣。
我是什么时候对ja失望的呢?正是进入了阿里。我发现我甚至看不太懂这些人写的ja代码。一开始我以为是我太菜了,后来接触多了我才反应过来。这些人写ja是的啊。
注解滥用
一个函数上面20+个注解,就问你怕不怕?这种代码神仙能吗?我不否认某些注解确实好用,如switch的注解,这个阿里人应该都用过,在一个静态局部变量上面使用switch的注解,变量就会自动进入switch开关配置平台,可以直接在平台上面修改,甚至不需要先在平台上面注册这个开关。但特么还有很多是业务部门自己的自作多情,封装的狗都不用的逻辑,也要封装一个注解出来,调试一下,简直。
炫技
我曾经在阿里见过最炫技的代码是这样:
很清爽吧?我第一次见到的时候,也觉得这位作者是个人才,代码写的如此清爽,直到某天我发现它的查询总是有点偏差,但偏偏代码就这么少,那问题一定出在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:=
但,我不在乎,我不用写ja了。很开心。
免责声明:本文由卡卷网编辑并发布,但不代表本站的观点和立场,只提供分享给大家。
相关推荐

你 发表评论:
欢迎