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

来源: OSCHINA
编辑: oschina
2017-03-14 08:26:30

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 开发规约确实给开发者带来的便利,当然开发者们也可以继续讨论其存在的必要性。

展开阅读全文
点击加入讨论🔥(22) 发布并加入讨论🔥
22 评论
18 收藏
分享
返回顶部
顶部