格式化是主观的。就像这里的很多规则,没有你必须遵守的硬性规则。主要观点是:不要因为格式去争论。这里有大量的自动化格式工具(tons of tools )。使用一个,程序员们为格式争论就是浪费时间。

针对自动格式化工具不能覆盖的问题(缩进、 制表符还是空格、 双引号还是单引号等), 这里有一些指南。

一、大小写一致

js是一种弱类型语言,所以大小写可以告诉你变量、函数等很多事情。这些规则是主观的,所以你们团队可以任选。主要观点是,无论你们选择什么,要一致。

Bad:
const DAYS_IN_WEEK = 7;
const daysInMonth = 30;const songs = ['Back In Black', 'Stairway to Heaven', 'Hey Jude'];
const Artists = ['ACDC', 'Led Zeppelin', 'The Beatles'];function eraseDatabase() {}
function restore_database() {}class animal {}
class Alpaca {}Good:
const DAYS_IN_WEEK = 7;
const DAYS_IN_MONTH = 30;const SONGS = ['Back In Black', 'Stairway to Heaven', 'Hey Jude'];
const ARTISTS = ['ACDC', 'Led Zeppelin', 'The Beatles'];function eraseDatabase() {}
function restoreDatabase() {}class Animal {}
class Alpaca {}

二、调用函数和被调用的函数应该近一些

如果一个函数调用另一个函数,保持这些函数在代码中垂直接近。理想的情况是调用函数在被调用函数上面。我们读代码就像读报纸一样,自上而下。正是这个原因,让你的代码像读的时候一样。

Bad:
//顺序乱
class PerformanceReview {constructor(employee) {this.employee = employee;}lookupPeers() {return db.lookup(this.employee, 'peers');}lookupManager() {return db.lookup(this.employee, 'manager');}getPeerReviews() {const peers = this.lookupPeers();// ...
  }perfReview() {this.getPeerReviews();this.getManagerReview();this.getSelfReview();}getManagerReview() {const manager = this.lookupManager();}getSelfReview() {// ...
  }
}const review = new PerformanceReview(employee);
review.perfReview();Good:
//顺序自上而下,调用函数在被调用函数上面
class PerformanceReview {constructor(employee) {this.employee = employee;}perfReview() {this.getPeerReviews();this.getManagerReview();this.getSelfReview();}getPeerReviews() {const peers = this.lookupPeers();// ...
  }lookupPeers() {return db.lookup(this.employee, 'peers');}getManagerReview() {const manager = this.lookupManager();}lookupManager() {return db.lookup(this.employee, 'manager');}getSelfReview() {// ...
  }
}const review = new PerformanceReview(employee);
review.perfReview();

转载于:https://www.cnblogs.com/xxchi/p/7243840.html

代码整洁之道——9、格式化相关推荐

  1. 《代码整洁之道》阅读笔记 4注释

    "Comments Do Not Make Up for Bad Code."(注释不是对劣质代码的补救).事实上好的代码即便没有注释也拥有良好的可读性,但恰当的注释会让代码变得更 ...

  2. 代码整洁之道(上篇)

    目录 整洁代码重要性 有意义的命名 函数 注释 格式 对象和数据结构 错误处理 边界 单元测试 类 系统 迭进 总结 推荐一本书:罗伯特 C. 马丁的<代码整洁之道>. 组内最近在强调研发 ...

  3. Python好书推荐《Python代码整洁之道》——编写优雅的代码

    前言 Python是当今最流行的语言之一.相对较新的领域如数据科学.人工智能.机器人和数据分析,以及传统的专业如Web开发和科学研究等,都在拥抱Python.随着时间的推移,Python有可能会发展成 ...

  4. 代码整洁之道 - 读感

    最近翻看了下代码整洁之道这本书,下面简单说下这本书都写了些啥,要告诉我们哪些东西. 能学到些什么? 阅读<代码整洁之道>需要你做些什么呢?你将阅读代码--大量代码.<代码整洁之道 ...

  5. JavaScript 代码整洁之道

    目录 介绍 变量 函数 对象和数据结构 类 测试 并发 错误处理 格式化 注释 介绍 本文作者根据 Robert C. Martin <代码整洁之道>总结了适用于 JavaScript 的 ...

  6. 重读【代码整洁之道】

    一.前言 [代码整洁之道]很经典,但也有些过时,翻译上也有些啰嗦,但总体上是好书.通过对本书核心内容的摘抄,结合自己的经验,整理了一些精简的点,这样你就省的去啃那本400多页的书了. 软件质量 = 架 ...

  7. 《代码整洁之道》(Clean Code)- 读书笔记

    一.关于Bob大叔的Clean Code <代码整洁之道>主要讲述了一系列行之有效的整洁代码操作实践.软件质量,不但依赖于架构及项目管理,而且与代码质量紧密相关.这一点,无论是敏捷开发流派 ...

  8. 代码整洁之道(一)最佳实践小结

    摘要: Any fool can write code that a computer can understand. Good programmers write code that humans ...

  9. 2015年第11本:代码整洁之道Clean Code

    前一段时间一直在看英文小说,在读到<Before I fall>这本书时,读了40%多实在看不下去了,受不了美国人啰啰嗦嗦的写作风格,还是读IT专业书吧. 从5月9日开始看<代码整洁 ...

  10. 《代码整洁之道:程序员的职业素养》一一1.5 参考文献

    本节书摘来自异步社区出版社<代码整洁之道:程序员的职业素养>一书中的第1章,第1.5节,作者:[美]Robert C. Martin(罗伯特 C. 马丁),更多章节内容可以访问云栖社区&q ...

最新文章

  1. 被业务方投诉了!CTO直摇头:人际关系处理太差,不懂维护“情感账户”
  2. Xcode真机调试(有证书)
  3. Java后台返回和处理JSon数据的方法
  4. js参数使用时常犯的一个低级错误
  5. 使用 Daynamic 动态添加属性
  6. JS内置方法(Array)
  7. 今年面试,光靠技术肯定不行了!
  8. php 增加压缩文件,PHP生成压缩文件实例
  9. 杭电-------2048不容易系列之(4)考新郎(C语言)
  10. 单独使用ckfinder选择图片
  11. 计算机科学与技术实践教学,计算机科学与技术实践教学方法_精编版.doc
  12. CRC码计算及校验原理的最通俗诠释
  13. android系统裁剪优化
  14. [点评] [电子科技大学][TCP/IP协议原理][杨宁]
  15. Vue.js学习笔记(3)循环语句
  16. 2022泰迪杯数据分析技能赛B题方案及赛后总结:银行客户忠诚度分析
  17. 中文文本纠错任务简介
  18. 出现Presentation Error的解决方法
  19. DSF框架使用(DAO、序列化、注解、服务接口、服务代理)
  20. 南加大计算机本科学费,南加州大学学费多少 本科研究生学费介绍

热门文章

  1. 活动目录的介绍:深入浅出Active Directory系列(一)
  2. 让VB6 IDE“认识”鼠标滚轮
  3. imagej边缘提取
  4. 【VS2010学习笔记】【异常处理】一(无法启动此程序,因为计算机中丢失libiconv-2.dll)
  5. 剑指offer(数值的整数次方)
  6. Echarts常用配置参数
  7. 光学定位与追踪技术_从显微镜到显纳镜:小于2nm定位精度光学显微镜
  8. 设计并搭建Python容器化项目的CI/CD流水线
  9. android clipRect 用法说明
  10. Apache Flink Time Window 深度解析