根据我所阅读的书《代码整洁之道》里的一句话:
“衡量代码质量的唯一有效标准: WTF/min”

从哲学的角度讲,不得不说这真的很客观!!!
毕业不久的我也没有太多关于好代码的定义。应该说没有明确的定义。但是当我看到一段好的代码与坏的代码,作为初学者的我也能够辨别哪个好,哪个不好。
所以客观角度讲。是有好代码跟坏代码的差别的。下面我就简单记录下这本书中讲的一些要点,一方面给自己加深印象。另一方面打发无聊时间,快速度过没有女票的日子。


如何命名

这个真的很重要, 大的不敢说。作为像我们这种二本三本出来的程序员真的很不注重这一点。身边的朋友大部分都是因为自己的英文不好,而导致命名不出符合语意的命名。这样随着时间的推移,会让代码越来越难理解。当然直接影响就是团队的工作效率急速下降。书中第二章提到关于命名的提到的点大概有:

  • 避免使用魔术数字
  • 避免误导
  • 避免使用无意义的字母(如a、b、i…)
  • 使用团队内一致认可的,通用的命名(如:generateXxx生成xxx、searchXxx搜索xxx、doSomethingWithXxx使用xxx做什么操作…)
  • 避免使用编码(避免使用变量前缀、后缀)
  • 类名应该用名词或者名词短语、避免使用动词
  • 方法名应当使用动词或动词短语命名
  • 每个抽象概念选一个词,并一以贯之(团队里面的代码中不应该出现表示同一个抽象概念的不同命名,例如同样表示获取这个抽象概念就不应该在代码里面出现同样表达”获取”这个抽象概念的多个命名fetch、retrieve、get、obtain等等)
  • 多使用解决方案领域命名(例子待完善)
  • 分离解决方案领域跟问题领域的名称命名(遇到与所涉及问题领域更贴近的代码时,应当用问题领域的名称来命名)

函数如何封装

  • 封装基本原则-短小(检验函数是否短小的方法: 查看函数是否可以切分为不同的步骤)
  • 只做一件事情
    • 难点就在如何定义这件事情?难点演化后其实就是一件事情跟、步骤如何划分的问题。
      例如,现在有个问题是如何将一只大象放入冰箱?可以抽象出一个函数叫putElephantToRefrigerator()。
      具体这个函数内部实现可以将这件事情分为三个步骤:

      1. 打开冰箱openRefrigerator()。
      2. 推大象进入冰箱pushElephantIntoRefrigerator()。
      3. 关闭冰箱close()。
        对于将大象放入冰箱这件事情而言,putElephantToRefrigerator()就只做了一件事情。只不过分三个步骤完成而已。但是对于openRefrigerator()这个步骤而言,它其实又是一件事情。只不过相对于putElephantToRefrigerator()这件事情它就是这件事情的一个步骤而已。因此事情步骤只是在抽象层级上不同。函数也是如此
  • 尽量保持每个函数都在最低的抽象层级上(多个层级函数的出现会导致代码让人迷惑)
  • 函数内的语句都要在同一抽象层级上。
  • 遇到switch语句时,应该考虑用多态(抽象工厂+策略可实现多态)替换switch的相关语句

什么是好代码-代码整洁之道阅读笔记相关推荐

  1. 3.注释(代码的整洁之道)

    3.注释(代码的整洁之道) 目录 注释不能美化糟糕的代码 用代码来阐述 好注释 坏注释 注:代码的整洁之道PDF: https://pan.baidu.com/s/16PLDWPiusGjcUfW_j ...

  2. 2.函数(代码的整洁之道)

    2.函数(代码的整洁之道) 目录 短小 只做一件事 每个函数一个抽象层次 switch语句 使用描述性的名称 函数参数 无副作用 分隔指令与询问 使用异常代替返回的错误码 别重复自己 结构化编程 如何 ...

  3. 1.有意义的命名(代码的整洁之道)

    1.有意义的命名(代码的整洁之道) 目录 名副其实 避免误导 做有意义的区分 使用读的出来的名称 使用可搜索的名称 避免使用编码 避免思维映射 类名 方法名 每个概念对应一个词 别用双关语 使用解决方 ...

  4. 四月书单--《你一年的8760小时》,《代码的整洁之道》

    当你深刻的认识到自己的不足时,就会激发无限的潜能.成为一个优秀的自己.前几天和发小聊天,她告诉我,一年前想通了一件事,只和过去的自己比较.从农村来到北京的她曾经因为别人的辉煌而不自信,但是庆幸她能告诉 ...

  5. 技术人修炼之道阅读笔记(二)重新定义自己

    技术人修炼之道阅读笔记(二)重新定义自己 在工作中有一个非常普遍的现象:有些人根本不知道自己想要什么或者什么都想要,无法取舍,但是人的精力毕竟是有限.那么我们如何来避免浪费自己的青春年华呢? 这就需要 ...

  6. 开课吧:分享C++代码的整洁之道!

    大家好,今天分享的主题是:C++代码整洁之道. 整洁的代码在团队中无疑是很受欢迎的,可以高效的被其它成员理解和维护,本文参考<C++代码整洁之道>和<Google C++编码规范&g ...

  7. 《Clean Code》代码的整洁之道(一)

    <代码整洁之道>:细节之中自有天地,整洁成就卓越代码 概述 软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派还是传统开发流派,都不得不承认.<代 ...

  8. 不能将紧实的字段 绑定到_代码整洁之道【笔记】

    一.整洁代码 A.混乱的代价 1.有些团队在项目初期进展迅速,但有那么一两年的时间却慢去蜗行.对代码的每次修改都影响到其他两三处代码 2.花时间保持代码整洁不但有关效率,还有关生存 3.程序员遵从不了 ...

  9. 代码整洁之道-读书笔记之整洁的代码

    1.整洁代码 阅读本书有两个原因,第一,你是个程序员,第二,你想成为更好的程序员 1.1 要有代码 有人认为随着时代的发展,写代码不再是问题,我们更应该关注建模和需求 这句话后半句没有问题,因为语言在 ...

最新文章

  1. linux free 命令 显示内存使用情况
  2. 关于linkedin的network的观察和自己的职业道路的追求
  3. 「每天一道面试题」如何理解方法的重载与覆盖?
  4. 从单机应用到微服务,用户认证走几步?
  5. Machine Learning(Stanford)| 斯坦福大学机(吴恩达)器学习笔记【汇总】
  6. 数据绑定 单个对象和集合绑定差异
  7. 专升本C语言习题知识点笔记
  8. matlab filter zf,什么是MATLAB函数过滤器中’zf’的内容
  9. 什么是RESTful风格的API设计?
  10. c语言改变图片颜色,用c语言把bmp格式的彩色图片转换成黑白的
  11. jQuery 事件 - blur() 方法
  12. 李振杰:中科红旗的生与死
  13. oracle的rowid和rownum,【oracle rowid与rownum的使用与区别 】
  14. 什么镜头最适合拍风景_风景用什么镜头好
  15. 3050ti跑tensoflow-gpu,屡次碰壁,总结原因如下
  16. 利用python对图像进行傅里叶变换_python用opencv 图像傅里叶变换
  17. Android中实现按钮自动点击
  18. 如何搭建智慧连锁店物联网
  19. EXCEL批量打开超链接
  20. Latex中如何实现图并列/表并列/以及混合并列排版以及双列变单列

热门文章

  1. Ubuntu关机和重启的命令
  2. 软件测试实训的意义和目的,软件测试报告目的是什么
  3. PySide2 环境安装
  4. 【oracle】oracle创建表、创建索引、创建自增id
  5. Matlab各历史版本
  6. hosts.allow和hosts.deny
  7. 【SSD测试专题四】Performance
  8. ARP与RARP协议详解 (三)
  9. 【架构实践】分布式环境脑裂与Lease机制具体是什么?
  10. 安卓新闻发布系统源码,后台java springboot框架