7个步骤:让JavaScript变得更好

Dan Odell介绍了他编写的七步写出无瑕代码的计划,是在简化过程当中最有用的工具。编程

  随着浏览器性能提升,伴随着新的HTML5的编程接口的稳步采用,网页上的JavaScript的音量在逐渐增长。然而,一个写得很差的程序编码却拥有着打破整个网站,让用户为之沮丧和驱赶潜在客户的潜力。 设计模式

  开发人员必须使用全部供他们任意使用的工具和技术来提高他们的代码的质量,并有信心确认每次的执行都是能够预见的。这是一个在我心灵深处的话题而且我已经工做多年找到一组开发过程当中来遵循的步骤以确保只有最高质量的代码能够被发布。浏览器

  您只要按照这七个步骤操做就会大大提升您的JavaScript项目的质量。使用这个工做流程,错误将会减小而且将不少处理优化,让用户拥有一个愉悦的上网浏览体验。网络

  01.代码闭包

  首先在你的函数里调用ECMAScript5的严格模式和一个“严格模式”的声明,并使用该模块的设计模式,在自执行的函数闭包里,经过沙箱独立的代码模块尽可能减小全局变量内的使用,经过任何外部依赖关系以保持全局变量模块清晰,简明。只有使用已创建好的,行之有效的,已经过测试并结果良好的第三方的函数库和框架,并保持你的函数处于小值,从你的模组操做和其余视图层代码里分离出任何业务逻辑或数据。框架

  有多个开发人员的较大的项目应该遵循一套既定的编码原则,如谷歌的JavaScript的风格指南,并须要更强的代码管理规则,包括经过一个库,如RequireJS,使用软件包管理使用异步模块定义(AMD)进行严格的依赖关系管理,使用Bower或Jam(客户端库管理工具)的包装管理来参考您的依赖项文件的特定版本,并采用结构设计模式,如观察者模式,以方便您不一样的代码模块之间的松耦合通讯。这也是一个明智的想法:使用一个代码存储库系统体系,如Git或Subversion,经过一些服务如源代码或魔豆,让您的代码在云端备份,提供恢复到之前的版本的能力,而且,对更为先进的项目建立一个代码分支来执行不一样的功能,在完成以前把它们合并到一块儿。异步

  02.文件函数

  使用结构化的注释区块格式如YUIDoc或JsDoc到文件的功能,所以任何开发人员能够了解其目的,而不须要研究它的代码,这样能够减小误解。用Markdown语法能够有更丰富,长篇的评论和说明。使用关联的命令行工具来自动生成一个文档的网站:基于这些结构性的意见,它和在您的代码所作的任何修改最新状态一致。工具

  03.往绩分析 性能

  按期对您的代码运行一个静态代码分析工具,如JSHint或JSLint。这些对已知的编码缺陷和潜在的错误进行的检查,好比忘记使用严格模式或引用未声明的变量,和缺乏括号或分号。纠正任何问题的工具控件,以改善你的代码质量。尝试为您的项目团队设置默认选项,以增强编码标准,如由空格的缩进每一行,在哪里放置花括号,并在整个代码文件中使用单引号或双引号的数目。

  04.测试

  一个单元测试是一小段独立的功能执行的功能之一:执行其中一个来自你特定输入的主代码库的函数以确认它输出一个预期值。为了提升您的信心,代码将像预期的那样,编写使用的框架,如Jasmine或QUnit为每一个功能单元测试,使用预期和未预期的输入参数。可是千万不要忘了那些边缘的状况!

  在跨多个操做系统多个浏览器上运行这些测试,经过利用这项服务,如BrowserStack或Sauce Labs,让你能够加速需求中的在云端上地虚拟机地测试。这两个服务提供了一个API,容许你的单元测试可以自动在多个浏览器同时运行,一旦它们完成,就会将结果反馈给你。做为红利,若是你的代码存储在GitHub上,你能够采起BrowserSwarm,这是一个当你提交你的代码会自动运行你的单元测试的工具。

  05.测量 

  代码覆盖工具,如Istanbul测量当你的单元测试对你的函数运行时,哪些代码行数被执行,将它做为该代码行总数的百分比进行报告。对你的单元测试运行一个代码覆盖工具,并增长额外的测试,能够增长你的覆盖率得分至100%,给你对你的代码更大的信心。

  函数的复杂性能够用霍尔斯特德复杂度量测来测量:计算机科学家莫里斯·霍尔斯特德在20世纪70年代设立的方程式,一个函数的复杂性的是根据循环,分支和它所包含的函数调用来量化的:函数的复杂性可使用Halstead的复杂性措施进行测量。当这种复杂的分数下降时,咱们就越容易理解和保持这个函数,减小了出错的可能性。命令行工具柏拉图措施和JavaScript代码复杂性的生成的数据的可视化,帮助肯定能够改进的功能,同时存储之前的结果,容许跟随着时间的推移跟踪质量的进步。

  06.自动化

  使用Task runner例如Grunt来自动操做文件编制,分析,测试,覆盖范围和复杂性报告生成的过程,这样就节省了您的时间和精力,并增长解决出现的任何质量问题的机会。大多数的这篇文章中所强调的工具和测试框架都和Grunt有关联,这能够帮助您提升您的工做流程和代码质量而且没必要动一根手指。

  07.处理异常 

  不约而同的是,在某些时候,你的代码将在它运行时出现一个错误。使用“try... Catch”语句来适当地处理运行时间的错误和限制您网站上的行为的影响。使用网络服务记录运行时出现的错误。并使用此信息来添加新的单元测试,从而改进你的代码并一个一个地消灭这些错误。

  通向成功的步骤

  这七个步骤,帮我创做 一些在我到目前为止的职业生涯里我最自豪的代码。它们也是将来的一个很好的基础。在您本身的项目里,承诺使用这些步骤,生产出高品质的JavaScript代码,让咱们携手共进,改善网络,一步一步通向成功。

相关文章
相关标签/搜索