相信不少聪明的程序员已经知道是为什么了会吃屎了~
说一个网友经历过的一座「屎山」,入职一家成立10年的软件公司,网友当时应聘的是中级程序员,但在入职几个月后,就神奇的调整到了高级程序员,这并不是因为他在几个月中技术水平跨越式提升,而是因为这三个月中发生了以下事情:
-
前任组员一号和我完成交接之后跑路了!
-
前任组长和新招来的组长交接之后跑路了!
-
前任组员二号和新招来的初级程序员交接之后跑路了!
-
新任组长和我交接之后跑路了!
-
新人组员(女)在工位掩面痛哭之后,换组了!(捂着脸掉眼泪不发出声音的那种哭)
-
组内人手严重不足,我白天解决生产bug,晚上写新需求!
以上只是「屎山」一角,「屎」是因为祖传代码里面有很多问题是真的臭,「山」是因为屎太多了。最讽刺的是,你可能为了治理「屎山」,也在里面拉了几次「屎」…
有时候心血来潮改点东西……代码从头错到尾……//动都不要动,我试过了
有时候当你只删了一行代码时,可能会发生下面这种情况
你永远都不知道成年人的崩溃往往只在一瞬间!!!!
有的人会说我不过就是动了一点点,为什么会翻车,往往自己的一点点想法,都有可能成为压死骆驼的最后一根稻草。
针对祖传代码,我总结一下我的人生感悟,就是四个大字:
=================================================================
作为一个经历过几次祖传代码的过来人的建议。
相信大家都听说过这么一句话。十年程序员血与泪,千万别重构代码!
别把重构的路想得太容易走了,因为,重构可以出乎你意料地简单,也可以出乎你意料地复杂
对屎山为什么不重构?
比较年轻的程序员往往会有重构屎山的冲动,这种想把代码写好的意愿是极好的。但是重构并非只是把烂代码删掉后简单的再写一遍。如果在重构之前没有深思熟虑,再写一遍的代码不见得会比“屎山”更好。要不要重构
第二条:代码精简祖传代码有很多没用的代码,全是前辈们在走成仙路的时候留下来的坑
你可以把它们全删掉,有的时候能起到优化祖传代码的目地的,这是最简单直接的优化手段,简单干脆直接暴力,可能会提高后期代码的编译速度。
作为一个程序员,你应该感谢屎山代码,以及大公司必然屎山代码的工程本质。
如果代码工程跟造桥打灰一样是可以用工具集约化规模化,
用仪器保证精确性,从而保质保量的……缝缝补补又一年。如果不想再努力内卷,这么做那么可以长长久久的在公司过下去。
其实这个很好办,开启慢查询,找到查询慢的地方,做减法,如果是多联表的查询,进行数据冗余,减少查询量。检查索引(既然是祖传屎山了,我就不相信数据库索引就一定会建得很完美),重写SQL语句。这种改法非常实用,从源头解决慢的问题。比如你一个页面祖传代码有100句SQL查询,你优化了一下,变成50句,速度能不上去?可比改代码方便多了。或是你加一个索引,原来一句SQL要查20秒的,现在就变成5秒了,真的是不要投入的买卖。
第五条:第五条是从内部改良,或者是从外部改良。
最后
由于文案过于长,在此就不一一介绍了,这份Java后端架构进阶笔记内容包括:Java集合,JVM、Java并发、微服务、SpringNetty与 RPC 、网络、日志 、Zookeeper 、Kafka 、RabbitMQ 、Hbase 、MongoDB、Cassandra 、Java基础、负载均衡、数据库、一致性算法、Java算法、数据结构、分布式缓存等等知识详解。
本知识体系适合于所有Java程序员学习,关于以上目录中的知识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,其中也总结了很多面试过程中遇到的题目以及有对应的视频解析总结。
识点都有详细的讲解及介绍,掌握该知识点的所有内容对你会有一个质的提升,其中也总结了很多面试过程中遇到的题目以及有对应的视频解析总结。
[外链图片转存中…(img-R5NgfeUc-1714283555569)]
[外链图片转存中…(img-mp3vyWxB-1714283555569)]