JavaScript 编码规范

一、编码规范

1、命名

“名副其实”——只做有意义的命名,规则如下:

  • 可读
  • 可搜索
  • 为相同类型的变量使用统一命名
  • 在解构中命名
  • 力求精简,不添加不必要的上下文
  • 属性、变量名、类名使用名词,函数名使用动词

2、函数

  • 短小
  • 只做一件事
  • 函数名使用动词,要能够说明它要做什么
  • 函数的参数不应该超过三个
  • 函数式编程优于指令式编程

3、注释

  • 不要多余
  • 注释是对意图的解释

4、格式化

  • 格式化是主观的,但是团队内应该保持一致
  • 使用一致的大小写
  • 函数的调用方与被调用方应该靠近:从上到下阅读代码
  • 借助 Format 工具

5、对象和数据结构

使用 getters 和 setters 能更好的处理对象及其数据结构

  • 使用 set 可以让验证变得更容易
  • 封装内部实现
  • 继承这个类, 你可以重写默认功能
  • 使用 getting 和 setting 时, 容易添加日志和错误处理

6、单元测试

测试比发布更加重要。如果你没有测试或者测试不够充分,每次发布时你就不能确认没有破坏任何事情。

  • 测试必须具备:可读性。
  • 测试遵循 F(ast).I(ndependent).R(epeatable).S(elf-Validating).T(imely)。

二、编码设计

1、面向对象设计三原则

  • 可复用性:抽象;
  • 可维护性:多态;
  • 可扩展性:继承。

“抽象”三原则:

  • DRY(Don't repeat yourself):系统的每一个功能都应该有唯一的实现。也就是说,如果多次遇到同样的问题,就应该抽象出一个共同的解决方法,不要重复开发同样的功能。
  • YAGNI(You aren't gonna need it):你自以为有用的功能,实际上都是用不到的,也就是就是尽可能快、尽可能简单地让软件运行起来。
  • Rule Of Three:当某个功能第三次出现时,才进行“抽象化设计”。

编码原则是软件开发过程中如何实现 “高复用性” “高内聚,低耦合” 的行为准则。

2、软件设计原则

  • 单一职责:永远不要有超过一个理由来修改一个类。
    • 降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多。
    • 提高类的可读性,提高系统的可维护性。
    • 变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
  • 开闭原则:软件实体应尽量在不修改原有代码的情况下进行扩展。
    • 对软件测试友好:只需要对扩展的代码测试即可。
    • 可复用性好:通过增加新组件来满足不断变化的需求。
    • 可维护性好:不用担心对原有组件的影响。
  • 里氏替换:所有引用基类的地方必须能透明地使用其子类的对象。
  • 接口隔离:不要强迫客户端程序依赖他们不需要使用的方法。
  • 依赖倒转:抽象不应该依赖于细节,细节应当依赖于抽象。

3、设计模式

设计模式:针对同一性质问题的通用解决方案,即提供解决问题的思路,同时也是对设计原则的最佳实践。

关于设计模式请戳这里

4、如何设计出 可复用性、可扩展性、可维护性 的代码?

  • 遵循软件设计原则;
  • 优先选择设计模式。

三、CodeReview

CodeReview 的意义:提升代码质量、提高编码能力、保证团队的代码一致性理解、提高团队凝聚力。

如何做 Code Review

【参考文献】

【推荐阅读】

Best Practices for Speeding Up Your Web Site - Yahoo Developer NetworkThe Exceptional Performance team has identified a number of best practices for making web pages fast.https://developer.yahoo.com/performance/rules.html?guccounter=1&guce_referrer=aHR0cHM6Ly9saW5rLnNlZ21lbnRmYXVsdC5jb20v&guce_referrer_sig=AQAAAJaDm5blWwcU2NcXcR6rie23pPoBMJJ_HuozpEPBPPPKwAXwWaRz9QWGVwdgKH3JP7HUpk6XwY_QUOQ7ZcQ5IGIu-HOoRntwe63fI6BF_KYs4TpBYGbeIV4euD_hqVo6jKeyH71Q7Aq_zpp8XC2KXrfHIzMgpxQRBeLsI_n4dZGK空函数 | JavaScript 编码规范http://itmyhome.com/js/kong_han_shu.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值