我个人的代码规范总结

250 阅读2分钟

大家有没有什么建议

命名

  • 建议使用 驼峰式大小写 (Camel case)

  • 变量命名尽量使用英文单词,语义化,

例如 订阅id 可以用subscriptionId,subscriptionNo,也可以间简写为subId,简写时最好带上注释

  • 函数的命名,尽量以动词开头,减少字数,如果碰到重复的或者固定不变的功能函数,前方加下划线

    例如vue中已经有了_init,你如果还要命名这个,前面再加一个下划线__init

  • getList,handleClick,这些都是可以的,但是如果存在多个list,多个button,建议重新命名

例如getUserList,handleSubmitClick,甚至getList1,getList2也是允许的(最好有注释)

  • api接口的命名 [请求方式][接口功能][主要参数]

例如获取订阅id = getSubscriptionId,通过订阅id获取订阅详情 = getSubscriptionDetailById

  • 页面的命名尽量使用一个单词,并根据路由建立文件夹

index表示首页,/a/index.vue 表示 /a路由下首页

  • 除index外,首页应当大写字母开头

JS篇

  • 尽量使用es6语法

    • let const 定义变量
    • Array.isArray判断数组
    • 当接口比较多时尽量使用Promise.all, Promise.finally
    • For ... In ,for ... of
    • 模版字符串
    • 函数默认值,扩展运算符默认值
    • 谨慎使用optional chain( ?. )
    • 使用箭头函数的匿名函数代替普通函数旧:function a(){....}. 新:const a = ()=>{...}
  • 对象名简写const a='a' const obj={a} 实际上obj={a:'a'}

  • 在需要同步执行的时候使用 async await

  • 同时请求多个接口的时候使用Promise.all

  • 尽量使用数组方法代替循环

    • Map
    • forEach
    • Every 和 some
    • 删除元素使用filter
    • Find 和findIndex
    • Includes
  • 函数适度封装,如果一条语句需要用到3次,建议封装

  • For await of

Vue篇

  • 如果一个功能使用了2次,就应当提取为组件
  • 尽量使用props,减少vuex的使用
  • 无需vue-router时不使用
  • 页面组件化,把一个页面当成一个组件来做,通过props传值
  • data中尽量不引入图片,通过css解决
  • 不变的数据通过computed或者Object.freeze处理
  • 注意css\js的懒加载
  • Webpack for production and vite for development

Node篇

  • 熟练使用nvm管理node版本
  • 线上服务使用pm2
  • 服务运行要打日志
  • 高node版本可以使用esm,大部分时间使用cjs
  • 注意错误捕获,预防崩溃
  • 减少定时器的使用,防止内存溢出