程序员,请写健康的代码

开心一笑

【记得书上说过,男人为什么要管妻子叫老婆。因为这段姻缘从月老开始,一直到孟婆才会结束。】

提出问题

如何写出健康的代码???

解决问题

前言

程序员一天的生活基本就是:分析与设计,编写代码,开会,撰写技术文档等等。而编写代码基本占用程序员大部分时间。每个人都希望在这美好的一天里,写出让别人刮目相看的代码。生活已经够累,没必要写出病态的代码,背后遭人指责,受人唾弃。鲁迅先生曾经说过:生命是以时间为单位的,浪费别人的时间等于谋财害命;浪费自己的时间,等于慢性自杀。而病态的代码不仅慢性自杀,而且谋财害命。

病态代码种类

病态代码总类很多,无法在这里一一列举。但大致可以分为以下几类:

  • Bug
  • 代码不整洁
  • 业务逻辑混乱
  • 代码性能差

你很难想象,一个小小的功能,居然能产生一堆的bug,排除你想追漂亮的测试妹子不说,这样的代码让人难于接受;你很难想象,一段代码糟糕的格式,天女散花似的逻辑;你很难想象,一段代码性能差到,用户都喝了好几杯拿铁咖啡,页面仍旧无法显示的锥心之痛。

例如:

//程序清单 1.1
public boolean test(){
    List<String> userIds = new ArrayList<>();
    for(int i = 0,len = userIds.size();i < len;i++){
        //在for循环实现数据库查询数据,和异常捕获。
        User user = this.findByUserId(userIds.get(i));
        try{
            .....
        }catch(){
            
        }
    }
    return Boolean.TRUE;
}

病态代码的危害

代码生病,就像人得了流感一样。势必头晕脑胀,精神萎靡。同时还会传染。

对于自己
  • 自身技术得不到提升
  • 给周围的人留下不好印象
  • 投入更多修复问题时间

程序员不是代码写的越多,技术就越强。写代码和写文字是差不多的。有一句话,一个字觉得不妥当就得改,改到无可再改才罢手。这个习惯是必须养成的。代码细节处理很重要。细节决定成败,同时,细节也决定成长。注重细节处理的程序员和不注重的程序员,成长速度是不一样的。

例如:

//程序清单 2-1  
public boolean test(){
    //正确写法
    return Boolean.TRUE;
}

public boolean test(){
    //错误写法
    return true;
}
对于他人
  • 团队集体为病态代码加班
  • 领导的坏印象

自己留下的坑,不是自己买单,就是让别人买单。自作自受就算了,拉着别人受苦受难就不好了。

对于项目
  • 延长项目工期
  • 加大项目成本
  • 降低客户体验

对于这种情况,问题就已经升级到一定的层次了。就好像发烧感冒造成的肺炎一样。有可能造成生命危险。客户要的是结果,才不管你发烧感冒。

总而言之,和破窗效应一样,生病的代码影响恶劣,是病得治。该吃药就得吃药,忍太久不好哦。

病态代码的原因

感冒病因很多,有内在因素,也有外在因素。内在因素比如:熬夜加班,生活不规律,要风度不要温度等。外在因素比如:气候突变,寒暖失调,风热之邪乘机侵入等。

内在原因
  • 程序员经验不足
  • 程序员素质:对于在职或者即将离职程序员
  • 前期设计缺陷

程序员的经验不足,没办法一开始就写出完美健康的代码,无可厚非,这需要一个过程。但是却不能作为一个借口。虽然不是每个人都能成为某一方面的顶尖高手,但是每个人都有能力保持身体健康。你不可能一开始写出完美的代码,但是却可以写出能运行,可交互,无bug的健康的代码。程序员的素质也很重要。我曾经碰到过一个即将离职的程序员,提交一堆未经测试的代码到服务器,叫测试妹子如何爱你。

外在原因
  • 项目工期紧张

外在因素无法避免,只是希望在项目结束之后,能留下时间,重构代码,吃吃药。毕竟欠下的,迟早都要还的。不是自己还就是别人替你还。

防止病态代码建议

  • 开发功能时间评估,在允许的范围内,尽量多估些时间,保证代码健康
  • 加强自测,别让测试妹子频繁找你麻烦。
  • 沟通讨论实现方案:和同事,技术负责人,主管多沟通,多交流。
  • 多阅读技术书籍
  • 合理重构,重构,重构
  • 代码审查:对于Master,需要审查团队提交的代码,或者公司成立代码审查小组
  • 想清楚再动手:把功能想清楚,选好实现技术再动手写代码也不迟

这里给个药方,推荐几本书籍。虽不能药到病除,但起码可以强身健体:

《Clean code》《重构:改善既有代码设计》《Effective Java》《Thinking in Java》《编写高质量代码:改善java程序的151个建议》《阿里巴巴Java开发手册公开版》等等。

结束语

忠心祝愿每个人都能写出健康的代码,切勿留下生病的代码在那里苟延残喘,自生自灭,伤人害己。

这里写图片描述

读书感悟

来自《摔跤吧,爸爸》

  • 如果你获得了银牌,你总会被遗忘 如果赢了金牌 你会成为典范。
  • 不要忘记,你是怎么一步步走到今天的。
  • 这个世界充满假象,唯有痛楚从不说谎。
  • 这个时候所有的鄙视都变成了掌声。
  • 记住,爸爸不能时刻保护你,爸爸只教你如何战斗,你要战胜自己的恐惧。

经典故事

【在清代乾隆年间,有两个书法家。一个极认真地模仿古人,讲究每一画都要酷似某某,如某一横要像苏东坡的,某一捺要像米芾的。自然,一旦练到了这一步,他便颇为得意。另一个则正好相反,不仅苦苦地练,还要求每一笔每一画都不同于古人,讲究自然,直到练到了这一步,才觉得心里踏实。有一天,第一个书法家嘲讽第二个书法家,说:“请问仁兄,您的字哪一笔是古人的呢?”后一个并不生气,而是笑眯眯地反问了一句:“也请问仁兄,您的字究竟哪一笔是您自己的呢?”
第一个听了,顿时张口结舌。大道理:人要从没路的地方走出一条路来,不要泯灭了自己的个性,一味地模仿别人,那样只会迷失自我,连自己的命运都把握不了了。】

生活常识

【如何保持口气清新】

  • 使用口气清新剂。
  • 喝柠檬水。
  • 口嚼茶叶。
  • 多吃蔬菜水果。
  • 正确的刷牙及清洁舌苔。

大神文章

其他

如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎点赞、顶、欢迎留下宝贵的意见、多谢支持!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,948评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,371评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,490评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,521评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,627评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,842评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,997评论 3 408
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,741评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,203评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,534评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,673评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,339评论 4 330
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,955评论 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,770评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,000评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,394评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,562评论 2 349

推荐阅读更多精彩内容

  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,088评论 6 244
  • 咱们接着“谷歌小哥出品程序员必读书单1.0(上)”继续说。 软件开发 1. 编程实践 Brian Kernigha...
    图灵教育阅读 70,826评论 1 124
  • 从小我们接触影响最多的人就是父母,父母的一言一行对一个孩子心灵的影响是巨大的。一句温暖的话语能让孩子体会到家...
    开往春天的绿萝阅读 542评论 0 0
  • 流多少眼泪才可以把心里的委屈全部发泄出来,讲多少遍过去才可以一一放下爱恨情仇,走多远的路才可以看清最远的...
    王子宇阅读 266评论 0 1
  • 关键词:逆境 不知道该怎么描述这个让我望而生畏的八月,真的挺可怕的,它改变了我的生活。 平...
    精进么阅读 320评论 2 1