代码界的“最悲催同学”都经历了什么?(附获奖名单)

    xiaoxiao2023-06-20  196

    Java 开发规约发布后,我们举办了一场“我有礼品你有故事吗 —— Java 开发规约勾起了你什么样的回忆?”的讨论,很多同学说出了自己的悲催经历,我们从中评出了“最悲催同学奖”和“最佳评论奖”,先来看看获得“最悲催同学奖”的他们都经历了什么:

    @substring:

    1.这坑就太多了,旁边一个哥们提交的代码给你们瞅瞅

    List<Map<String, Object>> mapList = new ArrayList<Map<String, Object>>(); List<Map<String, Object>> mapList1 = new ArrayList<Map<String, Object>>(); Integer hiddConred; Integer hiddConh; Integer hiddConl; Integer c = 0; List<Dept> deptList = deptService.queryDeptByPid(1); /* 获取情报分类列表 */ List<AstDictionaries> listf = astDictionariesService.reclassification(); for (AstDictionaries astDictionaries : listf) { Map<String, Object> map = new HashMap<String, Object>(); c = c + 1; Integer sd = polIntelligenceService.huodefenlei(astDictionaries.getId()); map.put("a" + c, sd); mapList1.add(map); }

    2.记得第二年工作的时候经理给过一份类似阿里这样的代码规范,从此之后代码就美观多了

    @Liuzh_533

    前段时间发现新增菜单后显示不出来。。

    看代码后发现同事在比较 parentId == id 的时候用的等号,一旦 id 超过128就开始悲剧了。

    @notreami

    boolean a=true; boolean b=false; while(a=b){ .... }

    比较偏,就这bug,当年排查了好久。

    @zb1482373596384

    不清楚java的内存结构...

    Integer i1=1; Integer i2=1; Integer i3=127; Integer i4=127; Integer i5=128; Integer i6=128; Integer i7=-128; Integer i8=-128; i1==i2 返回true i3==i4 返回true i5==i6 返回true i7==i8 返回true

    最后发现 Integer直接赋值在-128—127不会新创建一个对象,超过才会去创建对象

    @魰hui

    看懂自己写的代码,特别是测试的代码(初学的时候),简直

    int djsjd=8464; int asd=54;

    你见过吗?如此规范的代码,我估计没人看得懂除了当时的我

    @最初幻想

    之前公司用PMD、CheckStyle做静态代码检查,针对魔法数字一刀切,连正常的循环索引下标等数字都需要定义常量,有点画蛇添足之嫌,不过本人对具有业务含义的魔法数字和魔法字符倒是深恶痛绝!

    @夜辰

    一同事SQL根本没写对,还直接提交代码了。功能也没自己跑通,就找别人调试。SQL语句都没有输出,一开始还误导别人是程序逻辑错了,最后找了半天,是SQL语句写错了。

    @小爷胡汉三

    有的同志受不了代码后面多出来的空格,有时候纯粹是为啦重新编译而敲上的空格。我开发很久了,一直没发现这有什么毛病,直到后来,一个同事在改我的代码,几次代码整合都冲突了,我发现他一直在删代码后面的空格,一直删...我忍不住问了句,他说他受不了这种代码,还专门开启啦空格符跟换行符...我也是醉啦!!!

    @gongweixin

    log.error("aa{}bb{}", message, exception)

    异常栈没有打出来,只打了个异常的名字在日志里

    @滔哥

    做为一名PHPer,维护着一个java后台并做二次开发。你告诉哪没有坑.....我第一天配置本地项目用eclipse和idea尽然折腾了一天没跑起来。。。第二天又折腾了半天才算将现有项目在本地demo了...

    获得“最佳评论奖”的他们又有什么想说的:

    @empireghost

    日期格式化线程不安全,SimpleDateFormat是最常见的坑

    @Nehway:

    java编程从业也有几年了,回想多年前刚开始接触java的时候真是感慨良多呀!

    1.了解了定义变量,如String a="i love you",自学了集合类的时候Set<?> x=HashSet<>(),编译错误居然没有发现忘记了"new";

    2.非常喜欢用Integer i=128,来刁难别人。

    3.心烦的时候思考逻辑真的是一团糟呀一团糟

    @debugable

    发现别人代码里面的逻辑

    if(xxxx){ }else{ xxxxx }

    @Cobbage

    "37".equals(abc) abc是个int类型的

    最近遇到的 abc是个int类型的 随手就这样写了

    @守望者翱翔

    取对象从来不判空,运行的时候时不时来一个空指针。方法从来不写注释,用拼音哈哈哈。

    @abcijkxyz:

    -Dfile.encoding=UTF-8 URIEncoding="UTF-8" charset=utf-8 pageEncoding="utf-8" 不想多说什么 @empireghost if (sq.getDistributorId().equals(distributorId)) { ...... }

    Long 类型与String类型 equals永远返回false

    @创业是喝可乐

    我都直接汉语拼音命名类的,咋滴

    @聪聪小可爱

    还是觉得复制粘贴靠谱一点,有些时候有强迫症,觉得这个单词很熟,结果换来的是很久的拍错

    @lolcat

    函数名:thisIsAMethodToRequestBackendData

    以上获奖者将获得由阿里巴巴送出阿里鸡年公仔一个,请及时将联系方式及喜欢的鸡年公仔留言@两味真火。

    留言格式姓名:xxx地址:xxxx省xxxx市xxxx路xxxx xxxx手机:xxxxxxxxxxx公仔款式:xxxxxx(可从以下 5 款公仔中任意挑选一款):

    从这二十位“最悲催同学”的经历看来,Java 开发规约确实给开发者带来的便利,当然开发者们也可以继续讨论其存在的必要性。

    本文来自开源中国社区 [http://www.oschina.net]

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)