专栏首页纯洁的微笑于码农而言什么样的代码才能叫做好代码?

于码农而言什么样的代码才能叫做好代码?

作者

Christian(编译)

来源

https://sdk.cn/news/4719

好的代码,就像是好的笑话——无需解释就能让别人明白。如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。

好的代码,就像是一辆配备了优秀音响和杯架的汽车,这辆车在行驶到最高速度的时候,你听不到噪音,也不用担心水会洒出来。在它出现故障的时候,任何一名修理工都可以使用最常见的工具,在最短的时间里轻松将其修好。

而坏的代码,就像是一辆向你承诺最高速度可以达到200MPH,但是音响只能播放老式的磁带,而且杯架还不稳的车。你在调整反光镜角度的时候,汽车都会突然出现故障,而且一般的修理工还修不了这辆车,必须要找专家,让专家在生产线上使用专业的工具来修理。

好代码像是一本写作技巧高超的人所写的书

1.容易理解 2.分章明确,每一章都有清晰的主旨

而坏的代码像是刚刚学会写字的人所写的书

1.各个章节之间纷乱复杂,每一章都没有明确的主旨 2.连篇累牍的重复一句话,而且毫无缘由 3.作者在一开始设定了一些规则,但是在后面的内容中却自己不断的违反这些规则 4.突然间书里出现了一个吸血鬼,而且还能在白天出来吸血。

要想写出好的代码,你一定要牢记以下内容

可读性——不只是你,还有你身边与你合作的其他开发者

可维护性——让你的代码在修改的时候很简单

简洁性——不要让你的代码看上去毫无必要的复杂

效率性——尽可能的让你的代码获得最快的运行速度

明确性——如果你的代码能够做到不解自明,在大多数时候,你根本无需为其配备说明文档。在为方法和属性命名的时候,做到尽可能的合理。把长的代码进行拆分。不要复制/粘贴代码块。

如果你的同事不能轻松的看懂你写的代码,那么你的代码就不够好。

代码质量测试

1.找一个从来没读过你的代码的开发者,让他看你的代码,并且让他试着说出每一个模块的作用。 2.如果你经常需要向他进行解释,那么说明你的代码不够好。解释的次数越多,代码的质量就越低。 3.如果你只是静静的坐在一边,他无需问你任何问题,那说明你的代码质量很高。

当你在写代码的时候,一些信号可以证明你写的代码质量不错:

  • 代码写的很聪明,但是又不会过分的聪明
  • 无论在速度上,还是可读性上,你都使用了最佳的算法
  • 类、变量和函数都得到了正确的命名,让人看一眼就能理解
  • 休息了一个周末之后,你继续写代码,发现自己可以立刻继续之前的工作
  • 那些需要重复使用的东西总是可用
  • 你所使用的方法都很短,最理想的情况下要少于50行,最多不超过100行而且能够完美的执行单个任务
  • 在调用方法的时候,你有着足够的信息,无需在代码堆中苦苦寻找
  • 能够很轻松的在此前的代码中进行功能添加和修改
  • try/catch块的体量尽可能的小
  • 毫不费力的就可以写出单元测试

好代码都是模块化的

假设你的项目中有三个不同的层——内层、中层和外层。你的内容不应该从中层和外层那里导入任何东西。中层不应该从外层导入任何东西 ,这样做的好处是,你可以对代码的内层进行独立测试。

“好的代码本身就是最好的说明文档。” — Steve McConnell

本文分享自微信公众号 - 纯洁的微笑(keeppuresmile)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 程序员垃圾代码分类指南

    上一篇文章《程序员垃圾分类图鉴》和大家聊了聊程序员的垃圾分类,有的程序员直呼太真实,有的程序员觉得太讽刺,不应该给程序员进行这样的分类。

    纯洁的微笑
  • 如何写出让同事无法维护的代码?

    原文:http://mindprod.com/jgloss/unmain.html

    纯洁的微笑
  • 微服务化的基石:持续集成

    在很多微服务化的文章中,很少会把持续集成放在第一篇,因为大多数的文章都会将如何拆的问题,例如拆的粒度,拆的时机,拆的方式。

    纯洁的微笑
  • iOS程序员请改掉影响你升职加薪的36个坏习惯!

    IT行业的科技公司们一直苦苦追寻传说中以一当十的超级程序员,最新的研究表明确实存在这样一小撮效率奇高的“程序金刚”,但是一位普通程序猿如何能够蜕变成代码金刚呢?

    原来是泽镜啊
  • 斐波那契数列是一个递归计算

  • 从条件运算符说起,反思什么是好代码

    那什么样的代码才是优秀的代码呢?对于这个问题,我想每个人心中都会有自己的答案。今天我就来和你聊聊我的思考。

    架构师修炼
  • 高级Python工程师教你如何正确写代码

    我接手的第一样东西就是React UI。我们有一个主要组件,它容纳了其他所有组件。我喜欢在代码中加入一点幽默感,我想把它命名为GodComponent。在cod...

    小小科
  • Dead Code为什么能在代码库中永生?

    在一些遗留系统中,经常会看到大片大片灰掉的代码(被注释掉了),这种代码是死代码吗?如果要我下定义,我认为这些不是死代码,因为它们连代码都称不上,如何又能叫死代码...

    袁慎建@ThoughtWorks
  • JS逆向时碰到了恶心的死代码怎么办?手把手教你解决!

    你是否也曾有过「跟着代码跳了很久之后,才发现那一大坨代码其实没有任何作用」的惨痛经历?

    青南
  • JS逆向时碰到了恶心的死代码怎么办?手把手教你解决!

    你是否也曾有过「跟着代码跳了很久之后,才发现那一大坨代码其实没有任何作用」的惨痛经历?

    崔庆才

扫码关注云+社区

领取腾讯云代金券