代码整洁规范之道

有意义的命名

  1. 见名知意:可轻松根据名称,知道大致用途,而不是使用拼音缩写等,让人费解

  2. 有意义的区分:用途不同时,名称也记得区分开来,避免因名称类似而导致误用

  3. 避免使用编码(字母、数字前后缀区分等):不能很好知道用途和差异,增加了理解成本

  4. 类名、对象名,使用名词或名词短语

  5. 方法名应是动词或动词短语:方便理解方法要做什么

  6. 每个概念对应一个词,一以贯之,方便后续查找:

    例如表示查找有get/find/obtain/search等,建议使用统一的概念,减少理解和沟通成本

函数

  1. 简短,避免过长函数,太长可提取为小函数:增强可读性,且小函数可复用,减少主函数修改成本
  2. 单一职责:一个函数只专注一件事,避免函数臃肿
  3. 输入参数尽可能少:太多参数增加理解成本,且容易传错参;过多参数可考虑封装为一个实体
  4. 使用异常替代返回错误码:错误码的判断会导致更深层次的嵌套结构,调用者需要了解错误码,且错误码不好判断是异常还是业务错误
  5. 提取try/catch代码块为新函数,try/catch只囊括存异常代码:缩小try/catch的粒度,保持性能
  6. DRY原则,避免重复代码:可将重复代码提取后复用,减少后续代码变更的成本
  7. 使用第三方库:优先使用类库提供的方法,经过多次验证的代码出现Bug的概率更低,可择优使用;避免自行编写踩坑、重复造轮子

注释

  1. 注释不能美化糟糕的代码:优雅的代码才是基础,不要试图用过多的注释,来掩盖代码的糟糕
  2. 用好的代码命名自解释:避免过多冗余的注释
  3. 警示地方须注释:关键地方添加注释,促使变更时的重视

格式

  1. 垂直格式

    1. 向报纸学习
    2. 不同概念代码块,空行隔开:提升可读性
    3. 紧密联系的代码,应靠近:高内聚
    4. 垂直距离
      1. 局部变量:尽可能靠近其使用位置
      2. 实体变量:类的顶部声明
      3. 相关函数:同类中相互调用函数,调用者尽可能放在被调者上面
      4. 概念相关:相关代码应该放到一起
  2. 横向格式
    1. 避免单行过长
    2. 水平对齐
    3. 注意缩进层次

编码

  1. 卫语句返回:对于不符合的条件,使用卫语句快速失败返回,避免过多分支判断
  2. 避免魔法值:魔法值可能只有当时编写时知道意义,后续理解成本极大;可提取到常量类或者枚举中,统一管理
  3. 当成员变量值不改变时,优先定义为静态常量
  4. 注意检验空指针,尤其是链式调用时
  5. 类成员与方法的可见性最小化:最少知道原则,避免错误调用
  6. 尽量减少对变量的重复计算

参考文献
《代码整洁之道》
如何写出优雅的代码
25种代码坏味道总结+优化示例

如何编写整规范的代码相关推荐

  1. Python代码规范:代码规范整改和编码技巧-flake8扫描问题整改

    为了修正flake8扫描出的问题,需要按照以下步骤进行: 1. 分类问题:首先需要对扫描得到的问题进行分类,以便更好地理解和解决它们.例如: - 代码格式问题(如缩进不正确.行长度超过限制等) - 变 ...

  2. 初学编程,不了解编写规范,代码不能运行,幸好有入门宝典

    本章节我们来讲述一下Python的编码规范,通过详细对代码编写规则以及命名规范等进行介绍. 1.编写规则 Python采用PEP 8 的编码规范,接下来会讲解一些我们在学习Python过程应该严格遵守 ...

  3. 基于java 工单管理_实训任务工单1-2(编写规范Java代码) 实训任务工单1-2(编写规范Java代码).docx_学小易找答案...

    [其它]实训任务工单4-1(泛型类.泛型方法的应用) 实训任务工单4-1(泛型类.泛型方法的应用).docx [简答题]教学工单5-1Java序列化机制的使用 [填空题]The name of my ...

  4. 表示python代码块的是_编写高质量Python代码的59个有效方法,你用过几个

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 这个周末断断续续的阅读完了<Effectiv ...

  5. [转]敏捷开发中编写高质量Java代码

    本文转自:http://dev.yesky.com/103/11164603.shtml 敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整个项目的 ...

  6. python中如何编写代码输入多个数据并把它们放在一个列表中去_编写高质量Python代码的59个有效方法,你用过几个...

    欢迎点击右上角关注小编,除了分享技术文章之外还有很多福利,私信学习资料可以领取包括不限于Python实战演练.PDF电子文档.面试集锦.学习资料等. 这个周末断断续续的阅读完了<Effectiv ...

  7. 敏捷开发中编写高质量Java代码

    原文出处:http://java.csdn.net/a/20100308/259219.html 敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整 ...

  8. html5转apicloud,使用APICloud编写优雅的HTML5代码

    使用APICloud编写优雅的HTML5代码<一>一.实现下拉刷新: 默认样式>代码清晰简洁明了,符合ECMA262规范的callback,最少只需5行代码: apiready = ...

  9. 中文 Markdown 编写格式规范的命令行工具 lint-md

    lint-md 用于检查中文 markdown 编写格式规范的命令行工具,基于 AST 开发,且方便集成 ci.Cli tool to lint your markdown file for Chin ...

最新文章

  1. komodo edit linux,Komodo Edit是什么
  2. Git(创建版本库)
  3. 使用 Node.js、Express、AngularJS 和 MongoDB 构建一个Web程序
  4. 无向图双连通分量BCC(全网最好理解)
  5. 服务器安装三节点RabbitMQ集群(2)
  6. 尝试自动重定向的次数太多_阿里Arthas 3.1.0版本:在线教程、内存编译器和强大的自动补全...
  7. 201509-2-日期计算
  8. python 无法初始化设备prn_彻底搞懂Python一切皆对象,面试必过
  9. Trac常用插件描述! - wang_xf的Study home - 博客频道 - CSDN.NET
  10. SVN代码更新群发邮件通知
  11. 二叉搜索树的学习笔记(有解释)
  12. 整理C知识点--函数(重点)
  13. .com.cn域名是什么?.com.cn域名有哪些优势?
  14. Hive on spark 执行加载不了spark的jars
  15. 字体图标svg改变颜色
  16. speedoffice(PPT)怎么设置文字竖向
  17. 信息安全与管理2002_李付贵
  18. 用element-ui el-select 实现拼音码搜搜功能ts版
  19. 计算机网络基础之域名系统
  20. 手持PDA助力零售卖场管理

热门文章

  1. macs-fan-control 监视和控制Apple计算机上的风扇
  2. 东原地产:错配的野心与千亿黄粱梦
  3. 全屋榫卯结构拼装——中式全屋红木整装定制
  4. 服务器安全设置Centos7 防火墙firewall与iptables
  5. 忘记一个人的N种方式
  6. 网络安全自学笔记+岗位介绍
  7. RTOS论文笔记(一)
  8. 鸿蒙 Image 方法及应用
  9. 【Git】git代码统计分析工具-gitstats
  10. android sqlite foreign key,SQLite外键(Foreign Key) 的使用例子