Node编程规范征集

2014-04-30  来源:本站原创  分类:管理  人气:2 

没有任何工具是万能的,每个语言/框架都是自己的优缺点,自己的适用环境,作为用户,我们需要扬长避短,规避陷阱,最大化其优点,而做到这一步的前提是你必须非常的了解它,否则就会得出 “XXXX is a cancer” 之类的无稽之谈。

Node 作为一个新兴的系统编程、网络编程平台,目前为止还没有一个较明确的、权威的编程规范,而在团队协作中,编程规范的重要性无需多说,它甚至能很大程度上影响一个项目的成败,JavaScript 语言本身设计上的一些缺陷,再加上Node这种“诡异”的异步编程模型,都使 Node 编程中随处可见一些大大小小的陷阱, 如何规避这些陷阱,如何对 Node 程序进行瓶颈优化,如何无缝的接入Node 大社区、更有效的利用社区资源,如何在团队项目中流畅协作,这一切都呼求一个统一的编程规范…

每一个 语言/框架 都有其独特的社区文化,入乡随俗永远是对的,尽管有印度英
语、Chinese 英语,但最纯正的,最有贵族范儿的, 不还是伦敦口音吗? ^_^

目前对Node 社区编码风格 及 开发中的常见问题稍作总结,主要分为以下几个部分:

  1. 编码风格 https://github.com/windyrobin/iFrame/blob/master/style.md

    借鉴了以下3个编码风格,本着简洁实用的原则,提取出不到20条

  2. 陷阱缺陷/性能优化/惯用手法 (暂时放一起,以后不排除拆分可能)
    https://github.com/windyrobin/iFrame/blob/master/pp.md

    本项分为3个子项:

    • General JS (即普遍的JS 优化技巧)
    • V8 JS (发掘V8 本身的特征,充分利用)
    • Node JS (Node 框架的一些陷阱与优化技巧)
  3. 思维/理念/风险控制
    https://github.com/windyrobin/iFrame/blob/master/mng.md

目前写的条目不多,主要是搭个框架,进行分门别类强烈希望大家多多参与,多拍板砖,贡献条款,共同制定、维护一个具有先进的指导意义并能在真实项目开发中发挥切实作用的编码规范…

相关文章
  • Node编程规范征集 2014-04-30

    没有任何工具是万能的,每个语言/框架都是自己的优缺点,自己的适用环境,作为用户,我们需要扬长避短,规避陷阱,最大化其优点,而做到这一步的前提是你必须非常的了解它,否则就会得出 "XXXX is a cancer" 之类的无稽之谈. Node 作为一个新兴的系统编程.网络编程平台,目前为止还没有一个较明确的.权威的编程规范,而在团队协作中,编程规范的重要性无需多说,它甚至能很大程度上影响一个项目的成败,JavaScript 语言本身设计上的一些缺陷,再加上Node这种"诡异&q

  • Javascript中的异步编程规范Promises/A详细介绍 2013-11-02

    这篇文章主要介绍了Javascript中的异步编程规范Promises/A详细介绍,同时介绍了jQuery 中的 Deferred 和 Promises,需要的朋友可以参考下 Javascript里异步编程逐渐被大家接受,先前大家一般通过回调嵌套,setTimeout.setInterval等方式实现,代码看起来非常不直观,不看整个代码逻辑很难快速理解.Javascript里异步函数大概有I/O函数(Ajax.postMessage.img load.script load等).计时函数(set

  • 11个PHPer必须要了解的编程规范 2013-12-28

    从设计之初,PHP被广泛用于开发基于Web的应用程序. 由于PHP是一种脚本语言,开发的时候必须遵守一些规范. 本文将讨论常用的良好的代码习惯,或者称为代码规范,在PHP领域. 1,错误报告开启 错误报告是在PHP中一个非常有用的功能,应同时在开发阶段启用. 这可以帮助我们确定我们的代码中的问题. 最常用的功能是"E_ALL",这有助于我们发现所有的警告和严重错误. 必须指出的是,我们把我们的代码投入上线前,我们应该关闭这个功能提示,否则会在浏览器上的暴漏所有潜在错误及警告. 2,使用

  • 20条学习javascript的编程规范的建议 2014-04-16

    本文总结了20条javascript的编程规范,都是平时项目中使用的时候需要注意的地方,这里推荐给大家,如对大家有所帮助,那便是极好的了. 1.使用js文件管理代码 所有代码尽量放在js文件中,然后再html文件中使用script引入,引入时注意放在body标签后面,并且不使用type或者language. 2.书写缩进 使用4个空白格缩进,注意不要使用tab键进行缩进. 3.断句 注意行长,每行不超过80个字符,超过时要进行适当断句,断句应该再操作符后面进行,最理想的是在逗号(,)后面进行断句

  • Google C++编程规范 ? 第二条 - 2013-12-07

    在讲解之前,先科普一下什么是ASCII字符吧: ASCII(American Standard Code for Information Interchange,美国信息交换标准代码),是基于拉丁字母的一套电脑编码系统.它主要用于显示现代英语和其他西欧语言.它是现今最通用的单字节编码系统,ASCII总共可以表示128个不同的字符,包括可见字符和控制字符.(我们会在本文末尾放上ASCII字表,以便大家查询) 好了,在科普了ASCII之后,我们言归正传,回到Google编程规范: [规范] "请尽量

  • Google C++编程规范 ? 第一条 - 2014-09-09

    今天开始,我们将介绍Google公司推出的很有名的C++编程规范"Google C++ Style Guide",官方规范的链接在这里. 总共包括了100+条规定和推荐,涉及到代码格式.头文件.作用域.类.命名.注释等多个方面,同时Google还为此配备了代码规范检查工具. 希望你能随我一起,把这份权威的C++编程规范品味完,我相信,这会对你的代码开发习惯和质量大有裨益的. 今天,开门见山,先来一条有关代码格式的规定. [规范] "你所开发的代码,每行最多包含80个字符.&q

  • Google C++编程规范 ? 第八条 - 2015-01-27

    [规范] switch语句可以用大括号来区分不同的段落:对于比较重要的case贯穿的情况,请加以注释说明:对于空的循环体,应该使用{}或continue. [详解] 首先和大家明确一个概念"case贯穿",英文叫做fall-through,是指"switch语句中一个case段落后不加break,这样可能会继续匹配到下面的case"的情况.要多谢新浪微博上的@WingStone帮我科普了这个概念.:) switch (var) { case 0: { var = 1

  • Javascript编程规范 2012-03-09

    相信大家都知道有个Java编程规范 , 但是很少人知道Javascript也有编程规范,此规范最早由Google提出来,虽然在工程实践上,我们对编写Javascript还比较随意,但是 从代码规范性角度出发,不论何种语言都应该有自己的编程规范,否则过一段时间过后,连自己写的代码都不知道什么意思了,更何况别人来看你的代码. 虽然说这份编码规范有待验证,但是它由Google推出,还是具有一定的权威性和可靠性. Google JavaScript Style 现在Google又发布了一个工具来帮助你检

  • 简明 Python 编程规范 2012-04-24

    赖勇浩(http://laiyonghao.com) 注:之前发布一篇<简明 Python 编程规范>(见:http://blog.csdn.net/lanphaday/article/details/2834883),本是我给当时所在的公司制定的,发表到博客的时候,对齐等问题都有一些错误,还包括一些错别字.到后来,我又有做过修正.大概在 2010 年 8 年,我又由 C++ 开发转到 Python 开发,便在那之前的基础上润饰和完善,形成第二版.前段时间 simple-is-better.c

  • Python编程规范及性能优化 2013-01-16

    Python编程规范及性能优化 Ptyhon编程规范 编码 所有的 Python 脚本文件都应在文件头标上 # -*- coding:utf-8 -*- .设置编辑器,默认保存为 utf-8 格式. 注释 业界普遍认同 Python 的注释分为两种的概念,一种是由 # 开头的"真正的"注释,另一种是 docstrings.前者表明为何选择当前实现以及这种实现的原理和难点,后者表明如何使用这个包.模块.类.函数(方法),甚至包括使用示例和单元测试. 坚持适当注释原则.对不存在技术难点的代

  • Java编程规范 2013-12-25

    Java编程规范 [转载]自http://wenku.baidu.com/view/096477d8ce2f0066f5332263.html 1.1 排版 1.1.1 规则 规则1 程序块要采用缩进风格编写,缩进的空格数为4个,不允许使用TAB缩进. 说明:缩进使程序更易阅读,使用空格缩进可以适应不同操作系统与不同开发工具 规则2 分界符(如大括号'{'和'}')应各独占一行,同时与引用它们的语句左对齐.在函数体的开始.类和接口的定义.以及if.for.do.while.switch.case

  • Node 编码规范 2012-03-22

    缩进 ,2 个 space,tab要转换成2 space. (入乡随俗,这是Node 源码及module 采用的标准) 永远用 var 声明变量,不加 var 时,会污染顶层上下文 操作符与操作算子之间要有空格 Right: var string = 'Foo' + bar; Wrong: var string = 'Foo'+bar; 使用string 时,用单引号替代双引号(写JSON 时除外) Right: var foo = 'bar'; var http = require('http

  • 简明Python编程规范 2014-10-19

    执行 本规范使用 pylint 及对应的配置文件来进行检测,关于 pylint 的安装和配置见:用pylint, 写好代码 编码 所有的 Python 脚本文件都应在文件头标上如下标识或其兼容格式的标识: #-*-coding:utf-8-*- # -*- coding:utf-8 -*- 设置编辑器,默认保存为 utf-8 格式. 注释 业界普遍认同 Python 的注释分为两种的概念,一种是由 # 开头的"真正的"注释,另一种是 docstrings.前者表明为何选择当前实现以及这

  • Google C++编程规范 ? 第三十四条 - 2013-10-13

    [规范] 当一个对象只需要包含数据时,请使用"结构体":其他情况请使用"类". [详细解释] 在C++中,struct和class这两个关键字的行为几乎是一样的.所以我们需要给他们赋予一定的语义,以便在不同的场合选择不同的关键字. struct通常被用在纯数据的对象中,其中也可以包含一些常量. 除了可以设置成员的值和访问数据成员以外,struct不应该再提供额外的功能. 对于设置成员的值,struct是通过直接给成员赋值的方式来实现的:对于访问数据成员,struct

  • MISRA-作为工业标准的C编程规范 2013-11-23

    MISRA (The Motor Industry Software Reliability Association 汽车工业软件可靠性联会) 是位于英国的一个跨国汽车工业协会,其成员包括了大部分欧美汽车生产商.其核心使命是为汽车工业提供服务和协助,帮助厂方开发安全的.高可靠性的嵌入式软件. 这个组织最出名的成果是所谓的MISRA C Coding Standard,这一标准中包括了127条C语言编码标准,通常认为,如果能够完全遵守这些标准,则你的C代码是易读.可靠.可移植和易于维护的.最近很多

  • Google C++编程规范 ? 第十八条 - 2013-12-30

    [规范] 所有的头文件,都应该进行#define防御,避免重复引用情况的出现.格式应该为<PROJECT>_<PATH>_<FILE>_H_. [具体解释] 我们使用#define的特性来保证头文件引用的唯一性,比如头文件foo/src/bar/baz.h,在进行#define防御时,应该这样来写: ? 1 2 3 4 5 6 7 //== #ifndef FOO_BAR_BAZ_H_ #define FOO_BAR_BAZ_H_ ... #endif // FOO_B

  • Google C++编程规范 ? 第三十六条 - 2014-01-13

    [规范] 只有极少数情况下,我们需要使用多重继承.在多重继承时,我们只允许有一个基类中有具体实现,其他的基类都必须是纯接口类,而且这些接口类的名称要以Interface来作为后缀. [定义] 多重继承,是指一个子类有超过一个的父类. [支持多重继承的声音] 多重"实现继承",相比单独继承来说,可以让我们更大程度的复用代码. [反对多重继承的声音] 只有极少数情况下需要使用多重继承,我们往往可以找到一个不同的而且更干净更明确的替代方案. [结论] 对于子类多重继承的多个父类中,我们只允许

  • Google C++编程规范 ? 第三条 - 2014-01-30

    今天是周五,大家辛苦了一周,期待着一个怡然自得的周末,所以今天的内容很简单,五分钟就可以读完这一条规则. [规范] 请使用Spaces来进行缩进,不要使用Tabs.每次缩进请使用2个Spaces. [评论] 你应该把你的代码编辑器设置成使用Spaces而非Tabs来进行缩进.如果你使用的是vim编辑器,可以在.vimrc中配置如下指令即可实现此功能: 1 2 3 "ifyouinputatab,transferittospace,withouttransferingoldertab. setex

  • Google C++编程规范 ? 第四条 - 2014-02-01

    [规范] 函数返回类型请与函数名称保持在同一行,如果没有超过80字符,函数参数也请与函数名称保持在同一行. [场景举例] 最规范的函数声明和定义方式如下: 1 2 3 4 <pre>ReturnType ClassName::FunctionName(Type par_name1, Type par_name2) { DoSomething(); ... }</pre> 如果参数部分会超过80字符限制,从第二个参数开始可以折行,形如: 1 2 3 4 5 <pre>Re

  • Google C++编程规范 ? 第十二条 - 2014-02-22

    [规范] 在初始化时变量时,可以使用=.{}或(). [举例] 下面这些用法,都是正确的: ? 1 2 3 4 5 6 7 int x = 3; int x(3); int x{3}; string name = "Some Name"; string name("Some Name"); string name{"Some Name"}; 但是对于一些有构造函数的变量,就要格外小心了,比如下面的情况: ? 1 2 3 vector<int