前端项目代码规范

news2024/9/23 13:19:32

一、变量与函数的命名(变量名和函数名是最好的注释)

  1. 通常情况下函数小陀峰、类名大陀峰、变量短横线/小陀峰、const全大写
  2. 单词要表达出正确的语义,如:array类型或其它集合类型用英语复数格式、其它类型不要用复数格式
  3. 区分函数为功能性函数还是业务型函数,功能型函数按功能英文命名,业务型函数按业务英文命名
  4. 功能型函数:只实现功能和通用的业务逻辑时(可以在任何业务场景使用)
  5. 业务型函数:耦合了业务逻辑,包括在限定的场景下可以通用的函数

    因为这个函数没有与任何业务耦合,所以即使用于做自动保存的业务也不应该按业务命名,应该按功能命名

 二、代码使用 jsdoc 风格的注释 (在函数前输入/* 并回车可以快捷生成)

  1. 必须注明参数和返回值类型
  2. 对于参数的特殊情况或有歧义的地方需要注释说明

 三、代码尽量整齐对称,一般情况下有以下规则:

  1. 减少无用代码 代码能少写一行就少写一行,这样方便搜索和阅读

  2. 代码尽量对称 整齐的代码修改起来更方便,对称的代码可以减少bug

    不要一会x在前面一会y在前面,不要一会+=一会++
  3. 不要保留被注释的代码块,除非你确信他非常重要 影响搜索和阅读,而且你90%不会再使用它,99%不敢使用它

四、修改代码要保持接口的一致性 因为你可能不止一个地方在使用它,而且可能别人也在使用它

五、不要修改参数和返回值的类型和含意,除非你有把握并且值得这么做 即使你修改了所有引用它的地方,也可能因为没有通知你的同事而引入新的bug

六、尽量复用函数而非复制代码 因为如果有变化,你必须修改所有你复制的代码,更糟糕的是你通常会发现你复制过去的代码已经做过其它修改了,你不得不再添加一些垃圾在上面

七、使用Promise而非回调

八、无论什么情况下,都必须将错误暴露出来,而不是忽视它,至少应该将错误打印出来

bad

good

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/452770.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

async/await 在 C# 语言中是如何工作的?(下)

接《async/await 在 C# 语言中是如何工作的?(上)》、《async/await 在 C# 语言中是如何工作的?(中)》,今天我们继续介绍 SynchronizationContext 和 ConfigureAwait。 ▌SynchronizationContext…

【SVN已解决】修改svn服务端地址为ip或者域名地址的方法

介绍 这里是小编成长之路的历程,也是小编的学习之路。希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡。 一个人为什么要努力&a…

Vue之指令详解与自定义指令

指令 想要了解自定义指令,那肯定得先明白什么是指令。 指令的本质:语法糖,标志位。在编译阶段 render 函数里,会把指令编译成 JavaScript 代码。 常见的Vue内置指令有: v-on 即 。v-on:click”function“&#xff…

Node【Express框架【二】】

文章目录 🌟前言🌟中间件🌟中间件函数🌟什么是中间件函数🌟中间件函数可以做什么 🌟Express中间件的类型🌟应用级中间件🌟路由器级中间件🌟错误处理中间件🌟内…

人为惨案之kube-controller-manager 不断重启根因溯源

文章目录 背景问题发现排查CSI provision排查kube-controller-manager查看controller log紧急恢复求助chatgpt 背景 2023年4月21日10:38:07,在集群中测试RBAC的时候,在kuboard的界面神出鬼没的删除了几个clusterRole。练习一个CKA的练习题目. Create a…

如何实现计算机上的文件共享

文件共享 第一步:设置无线热点第二步:设置本地用户权限第三步:设置共享文件夹第四步:打开自己的移动热点,并且让对方连接自己的热点第五步:让对方的电脑进行连接自己共享的文件 第一步:设置无线…

React-Redux详解

React-Redux详解 前言 React-Redux是一个用于在React应用中管理状态的第三方库。它是基于Redux架构的,提供了一种在React应用中高效管理状态的方式。React-Redux通过将Redux的核心概念和React组件相结合,使得在React应用中使用Redux变得更加简单和方便。…

从WebGL到Babylonjs

从WebGL到Babylonjs 一、关于WebGL 前世今生 OpenGL > OpenGL ES > WebGL本质:通过js代码去调用OpenGL的一系列Api 二、WebGL程序的构成 1、一个简单的webgl程序 const canvas document.querySelector(canvas); const gl canvas.getContext(webgl2); c…

llama.cpp一种在本地CPU上部署的量化模型(超低配推理llama)

0x00 背景 前不久,Meta前脚发布完开源大语言模型LLaMA, 随后就被网友“泄漏”,直接放了一个磁力链接下载链接。 然而那些手头没有顶级显卡的朋友们,就只能看看而已了 但是 Georgi Gerganov 开源了一个项目llama.cpp ggergano…

HBase高可用

一、HBase高可用简介 HBase集群如果只有一个master,一旦master出现故障,将导致整个集群无法使用,所以在实际的生产环境中,需要搭建HBase的高可用,也就是让HMaster高可用,也就是需要再选择一个或多个节点也…

【C语言】那些 “虾仁猪心“ 的坑题

本章介绍 最近翻笔记,整理了下那些日子里面掉过的坑题,说多都是泪!!也许是自己的储备知识不足,才造成的大坑,今天把题拿出来给大家溜溜,看大家做时候有没有踩坑! 文章目录 1:第一题2…

项目笔记-瑞吉外卖

文章目录 1.业务开发day011.软件开发整体介绍2.项目整体介绍:star:3.开发环境搭建4.登录功能:star4.1代码实现 5.退出功能6.页面效果出现 1.业务开发 day01 1.软件开发整体介绍 2.项目整体介绍⭐️ 后端:管理菜品和员工信息前台:通过手机端…

根据cadence设计图学习硬件知识 day03 了解 一些芯片 和 数据手册下载的地方

1. MT53D512M32D2DS 芯片(动态随机存取存储器)的技术指标 1.1 16n Prefetch (预加载) (n --芯片位宽) DDR 体系 链接:DDR扫盲—-关于Prefetch(预取)与Burst(突发)的深入讨论_ddr prefetch_qq_25814297-npl的博客-CSDN博客 1.2 每个通…

网络层重点协议之【IP协议】

0. IP地址组成 IP地址分为两个部分,网络号和主机号 网络号:标识网段,保证相互连接的两个网段具有不同的标识主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号 一…

浅谈: 计算机—JVM—线程

计算机存储模型(CPU、寄存器、高速缓存、内存、外存) 现代计算机系统CPU和内存之间其实是有一个cache的层级结构的。比内存速度更快的存储介质(SRAM),普通内存一般是DRAM,这种读写速度更快的介质充当CPU和内存之间的Cache,这就是缓存。当CPU…

医学图像分割之TransUNet

目录 一、背景 二、提出问题 三、解决问题 四、网络结构详解 CNN部分(ResNet50的前三层) transformer部分 U-Net的decoder部分 五、模型性能 开头处先说明下TransUNet的地位:它是第一个将transformer用于U型结构的网络。 一、背景 医…

【Java|golang】1105. 填充书架---动态规划

给定一个数组 books ,其中 books[i] [thicknessi, heighti] 表示第 i 本书的厚度和高度。你也会得到一个整数 shelfWidth 。 按顺序 将这些书摆放到总宽度为 shelfWidth 的书架上。 先选几本书放在书架上(它们的厚度之和小于等于书架的宽度 shelfWidt…

PCL点云库(1) — 简介与数据类型

目录 1.1 简介 1.2 PCL安装 1.2.1 安装方法 1.2.2 测试程序 1.3 PCL数据类型 1.4 PCL中自定义point类型 1.4.1 增加自定义point的步骤 1.4.2 完整代码 1.1 简介 来源:PCL(点云库)_百度百科 PCL(Point Cloud Library&…

Vue组件间通信的7种方法(全)

大厂面试题分享 面试题库 前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 组件之前的通信方法 1. props/$emit 父传子 props 这个只能够接收父组件传来的数据 不能进…

6.4 一阶方程组与高阶方程的数值解法

学习目标: 学习一阶方程组与高阶方程的数值解法的目标可以分为以下几个方面: 掌握一阶方程组和高阶方程的基本概念和求解方法;理解数值解法的概念和原理,了解常见的数值解法;掌握欧拉方法、改进欧拉方法和龙格-库塔方…