一定要知道的代码规范

大家好,我是晨光,5 年前端开发,现在携程担任高级前端开发。上次分享了我转岗的适应过程,原贴见 https://t.zsxq.com/0fNqoDYW9 ,今天分享我转岗后,被老板蹂躏的两周我有哪些收获。


一、被蹂躏过程


换了新团队,组内的各种代码规范,让我感觉有些拘束,每次提交代码,都需要同事 code review,而且还不是简简单单的帮你点 merge 按钮,而是实实在在的一行一行的读你的代码。


一开始,这种方式,让我有种很不舒服的感觉,就好像自己在不断的被他人质疑,不停的更正写法,更准确的说,是在不断的更正你的思维习惯,一时间确实让人有些无法接受。


清楚的记得,一开始写的代码,提交后有12个 overview,并且更正了3次,才 merge 通过。相比之前让同事 CR,就是让帮忙点一下按钮,同事不忙的话,会问问你写的什么内容,逻辑是怎样的;忙的话,就直接 merge。


现在,不管你忙不忙,同事忙不忙,CR 是一个必须的环节,就算同事很忙,也会认真查看并确认没有需要调整的内容,才会点击 merge,可以说, 新团队的 CR 是一个很负责任的行为。


二、代码规范


写了快两周的代码,现在 commit,没有太多的问题了。所以把同事之前给我提的问题,大致归纳整理了下,如下:


1、注释规范

  1. 方法内注释使用 //
  2. 方法及类注释使用/** */
  3. 类成员变量注释使用/** */
  4. 注释需要规范,且要清晰,描述字段或方法的意义和用处以及如何使用,如果字段命名很清晰,也可不写注释
  5. 待完成的内容可加 //TODO , TODO 后可跟上自己的姓名缩写,代表个人的 TODO,不和他人的发生混淆,也防止时间间隔太久忘记哪里需要 TODO


加 TODO 很有必要,之前还遇到过两次就是忘记加 TODO,写了默认值的情况,虽然那个参数不是很重要,但是相当于一直传了默认值给接口,总之就是能少给自己挖坑。


2、命名规范

  1. 点击事件方法名统一使用 onPress开头
  2. 布尔类型的命名都以is, has, any等开头
  3. 除了接口字段使用大驼峰,其余统一使用小驼峰
  4. 方法名和字段名命名时,要注意抽象程度,比如获取姓名的方法,就可以命名为 getName


3、常量使用

  1. icon 使用统一的静态资源文件,不要直接写 code码
  2. 数据处理,字段拼接步骤 可直接放在 model 层


4、基础代码规范

  1. switch case 语句必须包含 default: break;
  2. 删除无效代码
  3. 配置 eslint,安装 eslint插件
  4. 每个方法之间应该有且仅有一个空行
  5. page,Module,View 需严格区分,可以体现在文件命名上
  6. 一个页面为一个 pageModule 对应的文件夹为 pageModule, 内部就是一个 module的组合,也可以包含一些小组件 View
  7. 页面中的一个模块为一个 module, 对应的文件名也为 xxxModule.tsx
  8. module 中的 View 拆分的小组件也为 View ,对应文件命名为 xxxView.tsx
  9. 数据类型不要使用 any, 尽量都定义 interface
  10. if语句,如果第二行只有一条语句,也尽量新启一行,并用{}括起来,代码可读性高些
  11. 字段兜底需要做好,某些该为空字符串,或者初始值或默认值也要写好
  12. 若 presenter 层有监听方法,需要添加 destroy 方法,在页面卸载时清空 subscriptions
  13. 频繁使用的字段可以放在 viewModel 或 state 中,不用每次获取都调用方法


注:presenter 层,类似 MVC 的 C 层,主要是 model 层和 view 层的桥梁目前团队采用 MVP 的模式书写代码,主要就是为了视图和逻辑分离,并采用发布订阅的模式,通过 P 层把 model 层的方法传给 view层,并在 P 层调用接口,并监听接口返回,并在 P层调用 model 层的方法,存储接口返回的数据。每种设计模式都有它的利弊,目前的 MVP 模式逻辑复用率很高,可以实现多端逻辑复用,利于代码的维护。


MVP 框架是我们团队写的一个框架,采用了发布订阅的模式,保证从上至下是单向数据流,能够解决传统 redux 数据 set 混乱的情况,该框架可以让我们查问题更容易。虽然一开始接触这个框架的时候,感觉各种被限制,但是熟了之后,就非常的香!


以上的代码规范,可以根据目前自己团队的规范调整,但 vscode 一些插件可以安装,利于遵守代码书写规范。推荐插件

  1. Eslint 代码规范校验
  2. Prettier 代码一键格式化
  3. GitLens 方便查看提交记录
  4. Git Graph 方便查看提交记录


以上,全文完,有启发的话,点个赞呗~

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
晨光
下载 APP