前端岗位编写代码注意规范

news2024/12/25 13:00:32

🔥🔥🔥关注前端小王hs🔥🔥🔥
🔥🔥🔥加底部微信🔥🔥🔥
🔥🔥🔥学习指导/前端练手项目推荐/毕设选题/面试资源🔥🔥🔥

前言:继写了前端岗位初入职场后的最初一段时间需要做什么这篇文章之后,反响强烈,也是上了综合热榜前二十,所以今天接着写关于前端岗位编写代码注意规范

前端岗位编写代码注意规范

  • 为什么要对代码进行规范?
  • 对代码规范有什么好处
    • 易于查找和解决bug
    • 利于团队开发合作
    • 易于后期维护代码
    • 培养自己的良好开发习惯
    • 总结为什么要规范代码
  • 常见的代码规范思路
    • 目录名规范
    • 文件名规范
    • 类名规范
    • 注释规范
    • 函数名规范
    • 导入模块书写规划
    • HTML规范
    • 样式规范
    • 选择器问题
    • 常量命名
    • 布局上规范
    • 运行完删除log代码
    • 路由path规范
  • 总结

为什么要对代码进行规范?

这篇文章主要是面向一些在中小企业前端岗位工作的程序员,因为大部分的中小企业并没有去编写 《代码规范手册》 这类规范文档,所以很多刚毕业或者初入前端岗位的同学就没有代码规范这方面的意识,比如在模板中嵌套七八层的<div>,然后这样就会对渲染页面产生不好的影响,又比如为了方便写样式而出现大量的行内样式

对代码规范有什么好处

对代码进行规范,概括的来说有以下几个方面的好处

易于查找和解决bug

先举个反例,如果在一个项目中,对css样式,有的程序员写的是行内样式,有的程序员是写在<style>中,而有的程序员在写完后又单独封装了一个css/scss文件,虽然我们可以通过ctrl+F进行快速定位,但如果我们在本页面没有找到,是不是又要看本文件引入的样式文件夹在哪?这无疑就浪费了开发的时间

利于团队开发合作

一个项目如果是个人开发,那可以随心所欲的进行开发,但如果是团队项目,那就有最少两到三个前端程序员进行开发,每个人可能有不同的开发风格,如果每个人都按照自己的风格去开发,那写出来的代码可阅读性对于其他的程序员来说就是一个难点。

比如有些程序员写出来的组件可能觉得代码我自己看得懂就行了,没有去考虑其他的程序员可能要复用组件,当其他的程序员想要复用的时候就感觉头都大了,写的函数是什么意思一时间内搞不懂,还需要花费时间去阅读分析,又浪费的开发时间

易于后期维护代码

当一个项目开发到一定阶段的时候,项目中可能有大大小小几十到几百个文件夹,我们通过对每一个文件夹名和代码文件名进行规范,到时如果甲方对项目的某个前期开发的模块不够满意,那么我们也可以根据代码规范快速定位到目标文件的目标代码,并对代码的样式,功能进行重写

培养自己的良好开发习惯

代码就像是程序员手中的武器,而武器总是需要不断的进行锻造强化才能配得上日益强大的自己,所以从刚入职前端岗位便培养自己的代码规范思维,对自己未来的路也是有很好的帮助的

总结为什么要规范代码

总的来说就是从三个角度去想为什么要规范代码,一是为团队,良好的代码易于他人阅读,利于团队开发,二是为自己,良好的开发习惯对自己未来的路有很大的帮助,三是为后人,如果自己离职跳槽,可以对后来的程序员讲解自己写的代码规范,确保项目顺利过渡

常见的代码规范思路

目录名规范

项目的名字都是英语,因为一个名字可能对应不同的英语单词,所以在开发项目的时候必须对文件名进行规范,如果程序员英语基础不好,建议下个翻译软件,并且整个项目组统一翻译软件,比如管理员工列表的模块
员工
可以统一使用staff:全体员工或者employee:雇员

文件名规范

在vue中,尽量少用或者不用index进行命名
index
因为如果这样开发后期会出现大量的同名文件,进行文件检索的时候会出现问题,要按具体的页面或者组件功能进行命名

比如这个vue文件是封装的按钮文件,就改成Button.vue

同时为了严谨首字母要大写

类名规范

在开发过程中,我们为了样式会采用一层外壳容器包一层内容的写法,所以在类名规范上,要统一规定是外层容器类名和内层容器类名还有内容类名
类名
例如:

<!-- 头部外壳 -->
<div class:'header-wrapped'>
	<!-- 头部内容 -->
	<div class:'header-content'>
		<!-- 头部内容列表 -->
		<div class:'header-contnet-list'>

类名规定采用-进行衔接单词,这样在样式文件中可以更直观的看出哪一层包哪一层,当然用sass/scss进行嵌套也是一眼可以看出

不要使用浏览器本身自带的类名,比如table,border之类的,会发生样式冲突

注意:不要用拼音,用拼音会显得类名很长,其他命名规范也适用这条规则

注释规范

注释一般用中文,如果开发组有外国人,就得多种语言

函数名规范

函数名一般采用驼峰命名法,比如点击会改变某个按钮颜色,我们可以写成@click='changeColor'

导入模块书写规划

建议如果是导入少的话,用单行,导入的模块多,就比如分别导入element中的组件的话,用多行

//单行或多行
	import { ref,nextTick } from 'vue'

	import {
		ref,
		nextTick
	} from 'vue'

HTML规范

不要嵌套很多层,最多嵌套三层,为了避免渲染dom的时候浪费资源,有些大厂会规定缩进,这里不做叙述,因为面对的是中小开发企业,如有兴趣了解也可以网上找找对应的开发手册资源

样式规范

①尽量少用或者不用行内样式
②尽量使用CSS 预处理语言如sass/scss,里面的嵌套和复用可以减少代码量并且更好的看清样式层级
单独引用样式文件,减少主文件的代码量,便于分别维护模板和样式
引入css文件
在样式中做好注释,每一层样式是对应哪一个html区域的
注意回流和重绘问题
⑥尽量使用缩写属性,即background-color:red我们可以写成background:red

选择器问题

通常我们需要拿到某个元素去修改样式或者操作某些功能,我们就可能用到id选择器,类名选择器,标签选择器之类的,规范使用类名选择器,不要去使用id选择器,防止污染全局样式

常量命名

上面我们说了类名用-,函数名用驼峰命名,那么对于常用,我们可以使用下划线_去命名,这样可以区分不同的类型命名

布局上规范

如果我们的页面上出现了一个每列宽距都相同并且还有好几行的区域,我们可以使用表格或者栅格布局去实现,这时我们就要统一规范面对这种情况或者其他衍生出来的不同页面的此类情况,什么时候使用表格,什么时候使用栅格布局

运行完删除log代码

我们在页面中做请求测试会使用到console.log,当我们写完接口渲染完页面并且没有bug的时候,就要删掉log代码

路由path规范

对于路由和子路由中的name,path等,对名称和路径有个统一的规范
路由

总结

具体的规范其实可以细化至很细节的部分,比如上面提到的缩进,当然对于一般的中小企业工作的程序员来说,有些不一定是必须,过于严谨也会造成不必要的压力,所以项目组在开发项目之初需要考虑前端岗位编写代码注意规范手册范围,充分考虑本项目的实际难度的同时对程序员的代码熟练程度进行考量,这样才能对项目的代码进行一个完整的规范

中小企业的程序员如果对代码规范有想了解的想法,可以去找找这方面的资料,如果目前公司没有代码规范,可以跟项目总监提出这类想法,对于项目的开发和个人的成长都是非常有好处的

如有错字还请谅解,码字不易谢谢支持
关注前端小王hs,关注原创前端好文

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

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

相关文章

基于元胞自动机森林火灾模型及应用(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

Allegro如何打印光绘层操作指导export模式

Allegro如何打印光绘层操作指导export模式 Allegro支持把光绘层面输出成pdf格式,下面介绍export模式如何输出,具体操作如下 打开光绘绘设置 确保光绘设置都是正确的 选择File-Export-PDF 弹出allegro PDF publisher,选择page setup Paper size选择A4,A4纸张 orientati…

SimKD

又搬来一个简单高效的知识蒸馏技术哦~~直接复用教师分类器还能显著减小性能差距的~ 在分类器的上一层通过特征对齐来训练学生模型&#xff0c;并直接复用教师分类器到学生模型中&#xff0c;再使用L2损失进行特征对齐。来自浙江大学的复用教师模型的方法哦~~ 浙大好厉害~~ 论…

2023年五面蚂蚁、三面拼多多、字节跳动最终拿offer入职拼多多

文章有点长&#xff0c;请耐心看完&#xff0c;绝对有收获&#xff01;不想听我BB直接进入面试分享&#xff1a; 准备过程 蚂蚁金服面试分享 拼多多面试分享 字节跳动面试分享 总结 说起来开始进行面试是年前倒数第二周&#xff0c;上午9点&#xff0c;我还在去公司的公交…

ERD Online 4.0.5 在线数据库建模、元数据管理(免费、私有部署)

4.0.5版本来袭❝ fix(erd): 增加数据库数据查询功能&#xff0c;支持多数据源切换查询&#xff0c;查看sql执行计划fix(erd): 数据查询功能&#xff0c;保留历史查询记录&#xff0c;格式化sql&#xff0c;多级树结构保存历史查询fix(erd): 依赖ERD加密手段&#xff0c;导出保留…

vdbench测试SSD快速入门

介绍 vdbench是一个I/O工作负载生成器&#xff0c;通常用于验证数据完整性和度量直接附加&#xff08;或网络连接&#xff09;存储性能。它可以运行在windows、linux环境&#xff0c;可用于测试文件系统或块设备基准性能。我们下面主要以块设备为介绍对象。 下载及安装 下载…

Linux 在过去几年发生的六种变化

随着时间的推移&#xff0c;Linux 桌面已经发生了变化&#xff0c;这种变化是逐渐发生的&#xff0c;因此这里汇总了过去十年中 Linux 桌面体验发生变化的一些具体方式。资深用户知道 Linux 桌面已经走过了漫长的道路。从前端应用程序设计到后端 Linux 组件&#xff0c;近年来发…

驱动无模块注入dll

文章目录实现效果三环无模块注入的方案反射型dll注入方式的改进零环无模块注入方案petoshellcode无模块注入流程实现代码Xenos注入方案研究IT_MMap注入IT_Thread注入IT_Apc注入火绒的注入思路实现效果 可以看到dll已经成功执行&#xff0c;但是在内存区域里面并没有我们的模块&…

《野球少年》:投捕搭档·棒球联盟

中文名 野球少年 原版名称 バッテリー 别 名 棒球伙伴、Battery 动画制作 ZERO-G 类 型 青春、运动、棒球 剧情简介 身为一名投手&#xff0c;原田巧是位拥有着拔群棒球才能的少年。在初中入学时移居的山间城镇新田市&#xff0c;巧与接住自己全力投球的捕手永仓豪相遇了。…

13 个你应该知道的 Webpack 优化技巧

Webpack 是目前前端开发最重要的构建工具。无论是自己的日常开发&#xff0c;还是准备面试&#xff0c;都应该掌握一些关于 Webpack 的优化技巧。 在这篇文章中&#xff0c;我将从三个方面分享一些我常用的技巧&#xff1a; 提高优化速度 压缩打包文件的大小 改善用户体验。…

[附源码]Python计算机毕业设计SSM基于框架的动漫设计(程序+LW)

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

MarkDown语法浅析(基础语法)

本篇学习笔记简述MarkDown基础语法。掌握了“MarkDown基本语法简单HTML5标签”的综合运用&#xff0c;就可以把CSDN博文搞得美美哒✌ (本文获得CSDN质量评分【92】)【学习的细节是欢悦的历程】Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经…

SpringMVC笔记

文章目录一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式&#xff1a;warc>引入依赖3、配置web.xmla>默认配置方式b>扩展配置方式4、创建请求控制器5、创建springMVC的配…

Android开发中的服务发现技术

我们的日常开发中充满了InterfaceRegistry这种模式的代码&#xff0c;其中&#xff1a; Interface为定义的服务接口&#xff0c;可能是业务功能服务也可能是日志服务、数据解析服务、特定功能引擎等各种抽象层&#xff08;abstract layer&#xff09;&#xff1b;Registry为特…

线性表→顺序表→链表 逐个击破

一. 线性表 1. 前言 线性表&#xff0c;全名为线性存储结构。使用线性表存储数据的方式可以这样理解&#xff0c;即 “ 把所有(一对一逻辑关系的)数据用一根线儿串起来&#xff0c;再存储到物理空间中 ”。这根线有两种串联形式&#xff0c;如下图&#xff0c;即顺序存储(集中…

【收藏级】MySQL基本操作的所有内容(常看常新)

文章目录前言一、ER模型二、数据类型三、字段命名规范四、数据库创建与管理4.1、创建数据库4.2、删除数据库4.3、列出数据库4.4、备份数据库4.5、还原数据库4.6、使用某个数据库五、数据表创建与管理5.1、创建表、结构5.2、查看表结构5.3、查看数据表5.4、复制表结构5.5、复制表…

m基于PSO粒子群算法的重采样算法仿真,对比随机重采样,多项式重采样,分层重采样,系统重采样,残差重采样,MSV重采样

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 重采样的主要方法有随机重采样,多项式重采样,分层重采样,系统重采样,残差重采样,MSV重采样等。 a.随机采样是一种利用分层统计思想设计出来的&#xff0c;将空间均匀划分&#xff0c;粒子打点后…

Lecture6:激活函数、权值初始化、数据预处理、批量归一化、超参数选择

目录 1.最小梯度下降&#xff08;Mini-batch SGD&#xff09; 2.激活函数 2.1 sigmoid 2.2 tanh 2.3 ReLU 2.4 Leaky ReLU 2.5 ELU 2.6 最大输出神经元 2.7 建议 3.数据预处理 4. 如何初始化网络的权值 5. 批量归一化 6.超参数的选择 1.最小梯度下降&#xf…

Flowable定时器与实时流程图

1. 定时器 1.1. 流程定义定时激活 在之前松哥给小伙伴们介绍流程定义的时候&#xff0c;流程都是定义好之后立马就激活了&#xff0c;其实在流程定义的这个过程中&#xff0c;我们还可以设置一个激活时间&#xff0c;也就是流程定义好之后&#xff0c;并不会立马激活&#xf…

Java一些面试题(简单向)

以下全部简单化回答(本人新手,很多都是直接百度粘贴收集得来的,如有不对请留下正确答案,谢谢) (问题来源https://www.bilibili.com/video/BV1XL4y1t7LL/?spm_id_from333.337.search-card.all.click&vd_source3cf72bb393b8cc11b96c6d4bfbcbd890) 1.重写 重载的区别 重写(ov…