`
kongxiantao
  • 浏览: 108481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JavaScript库开发者们的规则

阅读更多

转载自  TYC前端开发
最终编辑  TYC前端开发
1. 保持无侵入性 我的HTML标记不想知道你的JavaScript代码。 

2. 严禁修改和扩展Object.prototype! 这条很重要,因此需要一条完全针对它的规则。对象是JavaScript功能的基本构建模块,不要搞乱它们。 

3. 不要过分扩展 对JavaScript内建对象的扩展越少越好。别误解我的意思。JavaScript的原生对象中有用的方法是有点少,有时不得不添加一两个自己的方 法。但是,对于富有创造力的(库)程序员来说,添加这“一两个”方法是不够的。然而,请停下来!添加需要的就好。你对JavaScript内建对象的扩展 越少,你的代码与其它框架产生的冲突的概率就越少。 

4. 跟随标准 作为一个库的开发者,你定义JavaScript代码的模式。设计模式是编程语言能力弱的体现。 记住,JavaScript和DOM还在不断地被规格化。如果你想“修正”某些东西,最好先看看是否已经被修正,考虑已有的解决方案。 如果你跟随标准,就紧紧的跟着标准走(比如:别遗漏了forEach 方法的某个参数)。 

5. 或着跟随主导 Mozilla引领着JavaScript. JavaScript语言的创建者Brendan Eich, 还在持续开发。和其它浏览器相比,在Mozilla浏览器中这些新的语言特性最先可用。 如果你想给JavaScript添加新的语言特性,可以先瞧瞧Mozilla标准。例如,你想给Array对象扩展一个枚举方法时,最好把这个方法取名为 forEach而不是each. 如果你的确想提供尚不存在的语言特性,那么请紧紧跟随着现有的标准走(参考上面的例子)。 

6. 保持灵活 如果我想修改行为而不改变你的源码,这容易不?如果不够容易,让它更容易些。 

7. 管理内存 大家担心内存泄漏,你要尽力而为。 

8. 淘汰浏览器嗅探 貌似浏览器厂商们将永远通过添加新特性来竞争;-) 作为库的开发者,你要跟得上最新的潮流。偶尔浏览一次Ajaxian是不够的,你必须奴隶般地阅读每一篇博客文章以找到下一个hack. 浏览器嗅探会上瘾的。 

9. 小巧更佳 各种JavaScript库已经成熟。某些库已经应用在主流网站上。但并不是所有人都装了2MBit的DSL带宽,因此请保持库的小巧。更好的做法是,提供一个打包页面,允许按照我的需求有效地构建自己的库。 

10. 第十条规则 Good ol’ tenth rule(好像是一个口语用法,不知道怎么翻译好). 你可以始终依赖第十条规则。这就是: 保持可预测。 我应该可以猜到你的方法是用来干嘛的。如果我不知道某个方法的名字,也应该能让我猜出来。 

11. 附加规则 
文档,恼人但绝对是需要去做的。
你用的命名空间越多,我就越难记住,就如你的电话号码一样。
记住:可能有数百万人将执行你的代码。

牛人blog:http://www.dovapour.info/archives/192

分享到:
评论

相关推荐

    JavaScript应用开发实践指南

    第10章介绍通过程序库更便捷地编写JavaScript代码,涵盖jQuery、插件、微型程序库等。第11章介绍实用、前沿的HTML5 JavaScript API,其中不乏新增API。第12章对关键知识点进行了梳理,并针对网站设计师和网站开发者...

    rules_proto_grpc:从proto_library目标构建Protobuf和gRPC代码和库的Bazel规则

    从目标构建和代码和库的规则 公告内容 :megaphone: 2021/03/03-版本3.1.0 其中包含JavaScript修复程序,更新的依赖项以及从.proto文件生成和生成文档的新规则。 有关所有更改,请参见上面链接的发行说明。 2021/02/...

    Python爬虫基础知识

    此外,开发者还需要遵守网站的robots.txt规则和数据使用条款,确保爬虫的合法性和合规性。在爬虫开发中,也应注意保护个人隐私和信息安全,避免对网站造成不必要的负担或恶意攻击。 总之,Python爬虫是一项强大而...

    每个Web开发者应该知道的jQueryi18n知识

    在设计网站时,一个重要的考虑是国际化。世界上每个地区和国家对于文本、消息、数字和日期应该如何出现有不同的期望。...规则处理使用UnicodeConsortium的通用区域设置数据存储库(CommonLocaleDataRepositor

    华为云代码检查服务.pdf

    代码检查( CodeCheck)是面向软件开发者提供代码质量管理云服务,支持 Java、JavaScript、Web、CSS、C++、Android(Gradle)和 PHP等业界主流开发语言,可在 线进行多种语言的代码静态检查、代码架构检查、代码安全检查...

    快速学习jQuery插件 jquery.validate.js表单验证插件使用方法

    最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件—-Validation。Validation是历史最悠久的jQuery插件之一,经过了全球范围内不同项目的验证,并得到...

    newh5-cli:面向开发者的灵活可扩展的 HTML5 构建工具

    newh5 - 面向开发者的灵活可扩展的 HTML5 构建工具,提供命令行工具 newh5(基于 Webpack4),无需构建配置文件即可...开发人员申请项目(单页面)仓库,由管理员开通,保证名称唯一性,规则及规律 安装脚手架 (newh

    store-library:JavaScript的实验性商店

    @ iadvize /存储这是实验性@iadvize-oss/store的monorepo,这是一个轻量级的Javascript存储库及其React绑定和devtools帮助器。为什么我们以前在iAdvize上严重依赖Redux,使用该库作为前端应用程序的实际状态存储。 ...

    jQuery验证插件 Validate详解

    最常使用JavaScript的场合就是表单的验证,而jQuery作为一个优秀的JavaScript库,也提供了一个优秀的表单验证插件—-Validation。Validation是历史最悠久的jQuery插件之一,经过了全球范围内不同项目的验证,并得到...

    Birt中文手册.chm

    如何将元素添加到库中 如何设置报告设计的主题 如何从报告设计中删除主题 如何创建模板报告项 如何设置模板文件夹 如何发布模板 如何使用模板报告项 将文本本地化 如何对报告指定资源文件 如何对标签或文本...

    vue3+ts+less+vite+pinia+axios基础封装项目模版

    TypeScript是JavaScript的一个超集,添加了静态类型、接口和类等特性。在Vue项目中引入TypeScript可以提高代码的可读性和可维护性,减少运行时错误,并提升团队协作的效率。 Less Less是一种CSS预处理器,它扩展了...

    《Understanding ECMAScript 6》PDF翻译完整版//带目录

    翻译来源:本书原作者 Zakas 长期供职于雅虎,是著名的 JS 库 YUI 的主要作者,有着非常丰富的一线 工作经验。他同时也是一个成功的作者,其最重要的著作《 JavaScript 高级编程》基本上是 JS 领域的必读之作,而他...

    图书馆

    转到库列表该存储库的想法是收集酷炫的库,工具和应用程序,供开发者使用。 它主要供Web开发人员使用,但是欢迎所有项目。 只有2条规则:项目的代码必须被许可为开放源代码(以便其他人可以使用它),并且它必须在...

    实现H5中区域判断King.ShapeTouch.zip

    ShapeTouchShapeTouch 该Javascript库用于实现H5中不规则图形按钮可点击区域的判断,特别用于H5游戏中的某些场景。API 调用接口king.shape.touch(src,x,y,callback) king.shape.touchPoint(src,point,callback)point...

    Java资源包01

    利用Google:maps JSP标签库就能够在你的Web站点上实现GoogleMaps的所有功能而且不需要javascript或AJAX编程。它还能够与JSTL相结合生成数据库驱动的动态Maps。 OAuth 实现框架 Agorava Agorava 是一个实现了 OAuth ...

    eslint-plugin-react-security:带有在 React 项目中查找安全问题的规则的 ESLint 插件

    是的,它存在: 试试 ,一个开发者优先的 SAST 工具。 就像React安全性的 ESLint 规则,但更好。 我有提到它是免费的吗? :warning: 重要提示,这个存储库不是npmjs 的发布者,它与不同,后者是一个不同的项目,...

    reimbursinator:开源费用管理解决方案

    Reimbursinator是由波特兰州立大学的学生开发的,由Software Freedom Conservancy赞助,是具有可自定义政策规则的开源费用管理解决方案。 前端使用Javascript编写,而Django提供了后端API。 该项目配置为使用Docker...

    cmake-init:缺少的CMake项目初始化程序

    专心致志的CMake项目初始化程序,用于生成已准备好FetchContent的CMake项目,独立的使用者和开发人员目标,提供具有适当可重定位CMake软件包的安装规则并使用现代CMake(3.14+) 有关使用cmake-init的示例,请参见...

    javabitset源码-developer-knowledge-map:后端开发人员知识图谱

    后端开发者知识图谱 大体了解,按需精通 语言 PHP Laravel JAVA Go JavaScript(TypeScript) Python 服务器脚本、科学计算、机器学习 C、C++ 其他语言 Ruby、LUA、Swift、OC、Kotlin、Rust、Scala、R Linux Shell Web...

Global site tag (gtag.js) - Google Analytics