分享生活百科知识

注册/登录|最近发布|今日推荐

主页 综合百科生活常识数码科技传统文化互联网健康时尚影视娱乐教育学习
当前位置:首页 > 传统文化

你见过最坑的代码是什么?

提问时间:2023-07-05 11:51关键词:代码

你见过最坑的代码是什么?

点赞1、大理白族自治州 网友:过云雨

14年我进入一个公司,接手了一个bi项目,这个项目的代码真是让我打开眼界,让我见识到还能这么写代码!!!

具体例子找不到了,但是写法我记得很清楚。可以说是记忆犹新。

以下是样例代码,与原有代码逻辑一致。

你敢信?把业务代码捕捉异常之后,重新又在catch块里又执行了一次,我也不清楚这个try catch有啥用。项目中有大量类似代码,我改代码都改的怀疑人生了。

真是涨了见识了!

点赞2、枣庄市 网友:抹茶落季

作为一名编码老兵,见过的代码和写过的代码少说也有几十万行。说有些代码是最坑的有些极端,比较坑的情况曾遇到多次。这么多年来,就编码层面来说,小编的感受好的代码千篇一律,坑的代码千姿百态。举几个栗子,大家自行评判。

通篇无注释,也无文档。只有写代码的人才知道这个程序能做什么,具体怎么干的。随着程序功能的增加,出现人员变动时,痛苦指数可用5个加号表示。

有注释,有文档,两者对应不起来。这种情况一般是偷懒所致,单方面的问题解决之后就算完事。

有注释,但是文不对题。出现问题时,由于时间久远,编写者也忘记当时的想法,是不是很滑稽?

各位朋友,上述几种情况算是比较坑的情况,你遇到过几种?

点赞3、菏泽市 网友:向天宣戦

我见过最坑的代码让我明白什么叫作:有坑不在行多


点赞4、洪湖市 网友:飞奔的鱼

爱编程,爱分享,有梦想一起实现。

我遇到最坑的代码,就是一个函数一千行,没有个注释,还需要在这个基础之上进行更改。

所以代码规范真的很重要。

阿里巴巴开发者手册提供了很好的代码规范要求。IDEA中可以下载阿里巴巴的代码规范。

可以在我们写完代码之后进行代码格式的校验,非常不错的一款插件

具体下载方式是,找到IDEA的file,选择settings,然后在搜索框中搜索plugins。找到Plugins之后,在右边的Marketplace中搜索alibaba,然后点击install进行安装。

刚入门的小伙伴,一定要养成良好的编码习惯。

加油!!ヾ(?°?°?)??

点赞5、黄南藏族自治州 网友:狂想二曲

工作接触的以c居多,最讨厌几点:
1.没有注释,变量函数作用靠猜
2.接口不明确,入参出参没有说明
3.无用代码仅注释掉而不是删除
4.代码不分层:驱动代码和业务代码混杂在一起
5.全局变量满天飞,而且还随意extern引用而不在定义全局变量的c对应的头文件中extern,也就是用的时候才知道这是个全局变量
6.全局变量不说明哪里会被读,哪里会被写
7.单文件内的变量和函数未用static限定为私有
8.随意使用缩写

点赞6、偃师市 网友:触摸。

看过的奇葩代码也就越多。发现烂代码的目标并不是鞭挞和取笑,次要还是为了防止让本人或者身边的人写出相似的代码。

码云下面就有个热门仓库 bullshit-codes[1] 专门收集史上最坑爹的代码片段。上面放几个比拟有意思的给大家看看:

1.一行代码就能够搞定的,非要写的啰里啰嗦。不要给我扯什么可读性,以下代码一行的写法可读性也更好。


2.前大厂程序员设计的智能 AI 客服零碎


成果展现:


3.只有我的代码够多,那你就很难看出有啥问题

/** * 三年前接手的一个政府网站我的项目,虚实不知,据说是一个两年web开发教训的程序员写的, 用的spring系列还是3.x版本,前端还是jsp,可能是老我的项目。 * 次要特点是:实体类中不写正文,数据库表中也没有正文,命名常常应用英文拼音混合,而且还可能是简写(grzlChangeStatus:个人资料变更状态) * * 挖坑不填坑,菊花塞电灯 */@Controllerpublic class DemoController { /** * 这个办法一共有800多行,有30多个if或else if的条件判断,只写代表性的几个 * * 具体方法名称记不得,逻辑是这样,前端jsp提交一个申请过去,界面中除了一些必填信息外,还有有5个下拉框,后盾判断各种组合, * 别离往request外面塞入不同的对象,返回的页面视图也可能不同。 */ @RequestMapping("/submit") public String template(HttpServletRequest request, HttpServletResponse response, HttpSession session) { String param1 = request.getParameter("param1"); String param2 = request.getParameter("param2"); String param3 = request.getParameter("param3"); String param4 = request.getParameter("param4"); String param5 = request.getParameter("param5"); // 你没看错,各种状态全副存字串,而且判断的时候不思考空指针问题 if (param1.equals("已消毒")) { // 逻辑 request.setAttribute("attr", "value"); return "jsp1"; } else if (param1.equals("已消毒") && param2.equals("1.8米以上")) { // 逻辑 request.setAttribute("attr", "value"); // 你没看错,可能又是另一个视图 return "jsp2"; // 你没看错,还可能呈现多个条件,|| 和 && } else if (param1.equals("已消毒") && param2.equals("2米以上") || param3.equals("缅甸")) { // 逻辑 request.setAttribute("attr", "value"); return "jsp3"; // 你没看错,因为他的状态或选项没有用数字类型,所以不能用 > < 之类的来判断,要列举所有状态 } else if (param1.equals("未进站") || param1.equals("已进站") || param1.equals("已消毒") && param2.equals("2米以上")) { request.setAttribute("attr", "value"); return "jsp3"; //你没看错,还会呈现 true==true 或false==false这样的代码 }else if(param4.equals("禁止入境")==true && param5.equals("农用车")) { request.setAttribute("attr", "value"); return "jsp4"; //你没看错,还会呈现逻辑非,而且,要先判断什么条件,从来不用括号包起来,要理他的逻辑,还要先理条件判断优先级 }else if(param1.equals("未进站") || param1.equals("已进站") || param1.equals("已消毒") && param2.equals("2米以上") && !param3.equals("缅甸")) { request.setAttribute("attr", "value"); return "jsp5"; } //省略剩下的30多个相似的判断 else { return "default"; } }}

以上代码的问题:

  • 空指针异样
  • 逻辑凌乱,局部 else if 基本进不去

4.获取一天后的日期:让线程睡一会


5.新上的我的项目的代码命名,示意看不太懂


6.为了失去了一个用户总人数,把所有的 User 对象查问进去。

/** 统计用户总数,来源于N年前某个用户埋怨执行效率低,贴出相似逻辑的代码. @author wendal */ @IocBean public class CountUserTable { @Inject Dao dao; @Test public void test_user_count() { // 取出全副用户对象(dao.query返回List<User>),而后取list大小就能够啦,是不是很机智 int count = dao.query(User.class, null).size(); System.out.println("用户总数是" + count); } }

点赞7、莆田市 网友:昔年。

没有最坑,只有更坑——逻辑极其混乱,但却实现了全部功能,可谓是最可怕的结果,即“代码屎山”。

点赞8、吐鲁番市 网友:只是爱了

去年面试了一个程序员,理论知识基本上能说得上,但让他在电脑上写一个tcp服务端程序,半个小时写了3行程序代码,你说坑不坑?

知识推荐

八哥问答——日常生活学习知识分享。 垃圾信息处理邮箱 tousu669@163.com 网站地图
icp备案号 闽ICP备2023007808号-3 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.12606.com All Rights Reserved