设为首页 加入收藏

TOP

React Native中的约束规范(一)
2017-10-11 14:01:12 】 浏览:7950
Tags:React Native 约束 规范


 

参考资料:https://github.com/sunyardTime/React-Native-CodeStyle

感谢情书哥无私奉献

##一、编程规约 ###(一) 命名规约

  1. 【强制】 代码中命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束;

    `_name / $Object / name_ / name$ / Object$` 
  2. 【强制】 代码中命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式; 说明:正确的英文拼写和语法可以让阅读者易于理解,避免歧义。注意,即使纯拼音命名方式 也要避免采用;

    `反例: DaZhePromotion [打折] / getPingfenByName() [评分] / int 某变量 = 3` 
  3. 【强制】类名使用 UpperCamelCase 风格,必须遵从驼峰形式,第一个字母必须大写; LoginPage/MsgPage

  4. 【强制】方法名、参数名、成员变量、局部变量都统一使用 lowerCamelCase风格,必须遵从驼峰形式,第一个字母必须小写;

    localValue / getHttpMessage() / inputUserId

  5. 【强制】常量命名全部大写,单词间用下划线隔开,力求语义表达完整清楚,不要嫌名字长; 正例: MAX_STOCK_COUNT 反例: MAX_COUNT

  6. 【强制】使用抽象单词命名类名或者变量时,需加以修饰; userMsg 等价于 userMessaage, userPic 等价于 userPicture

  7. 【强制】中括号是数组类型的一部分,数组定义如下:String[] args; 反例:请勿使用String args[]的方式来定义。

  8. 【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式; 正例: 应用工具类包名为com.fcs.open.util、类名为UrlUtils

  9. 【强制】文件夹命名统一小写; 组件,或者类名,首字母全部大写,遵守驼峰命名法;

     img 存放图片 app APP一些component artcomponent 一些art组件 


###(二) 常量定义

  1. 【强制】不允许出现任何魔法值(即未经定义的常量)直接出现在代码中;
  2. 【推荐】不要使用一个常量类维护所有常量,应该按常量功能进行归类,分开维护。 如:缓存相关的常量放在类:CacheConsts下; 系统配置相关的常量放在类:ConfigConsts下; 说明:大而全的常量类,非得使用查找功能才能定位到修改的常量,不利于理解和维护;


###(三) 格式规约

  1. 【强制】大括号的使用约定。如果是大括号内为空,则简洁地写成{}即可,不需要换行;如果 是非空代码块则:
  1. 左大括号前不换行;
  2. 左大括号后换行;
  3. 右大括号前换行;
  4. 右大括号后还有else等代码则不换行‘;’表示终止右大括号后必须换行。
  1. 【强制】 左括号和后一个字符之间不出现空格;同样,右括号和前一个字符之间也不出现空格;
  2. 【强制】if/for/while/switch/do 等保留字与左右括号之间都必须加空格;
  3. 【强制】任何运算符左右必须加一个空格; 说明:运算符包括赋值运算符=、逻辑运算符&&、加减乘除符号、三目运行符等;
  4. 【强制】缩进采用 4 个空格,禁止使用 tab 字符;
  5. 【强制】单行字符数限制不超过120个,超出需要换行,换行时遵循如下原则:
  1. 第二行相对第一行缩进4个空格,从第三行开始,不再继续缩进,参考示例;

  2. 运算符与下文一起换行;

  3. 方法调用的点符号与下文一起换行;

  4. 在多个参数超长,逗号后进行换行;

     const path = Path() .moveTo(0, -radius/2) .arc(0, radius, 1) .arc(0, -radius, 1) .close(); 
  1. 【强制】方法参数在定义和传入时,多个参数逗号后边必须加空格;

     onMsgByCallAndMsg=(msg, title, type)=>{ this.setState({ callMsgAndMsg:msg }) } 
  2. 【推荐】方法体内的执行语句组、变量的定义语句组、不同的业务逻辑之间或者不同的语义之间插入一个空行。相同业务逻辑和语义之间不需要插入空行。 说明:没有必要插入多行空格进行隔开。

  3. 【推荐】使用webStomr时,导入附件的hoop-settings-1.0.jar文件,可统一格式化。


###(四) package.json

  1. 【强制】在使用npm或者yarn获取资源时,必须在命令末尾添加--save; 说明:使用此命令会把使用的第三方相关信息写入到package.json,这样,其他成员在下载或者更新代码后使用npm i,就可以下载最新的npm,若不加 —save ,执行npm i的时候不会下载,其他成员运行项目后在运行可能会报错,此时需要分析查看报错信息进行重新的npm install XX;

  2. 【推荐】使用git或者svn进行代码版本管理时,尽量不上传node_module文件; 说明:使用package.json进行包管理,下载或更新代码后,只需要执行npm i;当有修改npm包,建议进行版本管理,上传到私有的github仓库。

  3. 【强制】使用第三方或拉取新仓库时,第一步使用npm i或者npm install; 说明:检查版本是否存在冲突

  4. 【推荐】在使用npm或者yarn获取资源时,推荐不在命令后添加 -g; 说明,此命令可以让此资源包在根目录进行获取,不利于资源管理;

  5. 【强制】当升级或降级react-native版本时,必须进行代码备份; 说明:升级失败或者涉及到原生代码时,可以进行代码回滚

  6. 【强制】每个项目必须配置一个readMe文件,内容包括测试,正式环境等相关配置文件以及注意事项;

  7. 【推荐】安装npm包是,推荐~来标记版本号; 说明:~和^的作用和区别:会匹配最近的小版本依赖包,比如1.2.3会匹配所有1.2.x版本,但是不包括1.3.0 ^会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0。那么该如何选择呢?当然你可以指定特定的版本号,直接写1.2.3,前面什么前缀都没有,这样固然没问题,但是如果依赖包发布新版本修复了一些小bug,那么需要手动修改package.json文件;和^则可以解决这个问题。但是需要注意^版本更新可能比较大,会造成项目代码错误,旧版本可能和新版本存在部分代码不兼容。所以推荐使用来标记版本号,这样可以保证项目不会出现大的问题,也能保证包中的小bug可以得到修复。


###(五) 控制语句

  1. 【强制】在一个 switch 块内,每个case要么通过 break/return 等来终止,要么注释说明程序将继续执行到哪一个 case 为止;在一个 switch 块内,都必须包含一个default 语句并且 放在最后,即使它什么代码也没有。

  2. 【强制】在 if/else/for/while/do 语句中必须使用大括号,即使只有一行代码,避免使用 下面的形式: if (condition) statements;

  3. 【推荐】推荐尽量少用 else, if-else 的方式可以改写成:

     if(condition){ ... return obj; } 

// 接着写 else 的业务逻辑代码; 说明:如果非得使用

if
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇react native进阶 下一篇Ionic3 环境搭建以及基础配置实现..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目