前端代码规范和质量是确保项目可维护性、可读性和可扩展性的关键(一)

简介: 前端代码规范和质量是确保项目可维护性、可读性和可扩展性的关键(一)

一、如何保证代码的质量

  • 使用代码风格检查工具:使用诸如 ESLint 等代码风格检查工具,可以规范代码的书写风格,提高代码的一致性和可读性。


  • 使用类型和错误检查工具:使用诸如 TypeScript、Flow 等类型检查工具和 ESLint 等错误检查工具,可以避免编码时出现类型和语法错误,用来提高代码质量和可维护性。


  • 进行代码复审和 code review:通过与团队成员进行代码复审和 code review,可以发现代码中存在的问题,提高代码的可读性和扩展性。


  • 单元测试和集成测试:通过编写单元测试和集成测试,可以检查代码是否符合预期的行为。单元测试和集成测试是保证代码质量和程序正确性的重要手段。


  • 模块化:将系统拆分成多个小模块或组件,每个模块都专注于实现特定的功能。这样可以提高代码的可重用性和可维护性,更便于后期的维护和扩展。


  • 提高代码的可读性:通过提高代码的可读性,让代码更加易于理解和维护。比如使用有意义的命名、注释、缩进、代码结构等方面加强代码质量。


二、编码规范

1、HTML/Template 编码规范
(1)缩进使用两个空格代替Tab

前端代码层级较深,使用短缩进有利于利用屏幕空间,提升效率,使用两个空格代替Tab可以保证在所有环境下获得一致展现。

<!-- not good -->
<div>
  <div>bar</div>
</div>

<!- good -->
<div>
  <div>bar</div>
</div>
(2)嵌套元素应当缩进一次(即两个空格),同层级缩进应保持一致
<!- not good -->
<div>
<div>bar</div>
  <div>bar</div>
</div>

<!- good-->
<div>
  <div>bar</div>
  <div>bar</div>
</div>
(3)对于属性的定义,使用双引号,不要使用单引号
<!- not good -->
<input class='a' type=text>
  
<!- good-->
<input class="a" type="text">
(4)不要省略可选的结束标签(closing tag) (如或)

省略可选的结束标签,虽不会违反H5规范,但可能会造成层级上的困扰,导致代码出现无法预料的问题。

<!-- not good -->
<h1>h1 text
  <h2>h2 text
    
<!-- good -->
<h1>h1 text</h1>
<h2>h2 text</h2>
(5)td / th 要在 tr ⾥⾯,li 要在 ul / ol ⾥⾯
<!-- not good -->
<table>
  <td>test</td>
</table>

<!-- good -->
<table>
  <tr>
    <td>test</td>
  </tr>
</table>
(6)ul / ol 的直接⼦元素只能是 li,不能包含其他元素
<!-- not good -->
<ul>
  <span>123</span>
  <li>a</li>
  <li>b</li>
</ul>

<!-- good -->
<ul>
  <li><span>123</span></li>
  <li>a</li>
  <li>b</li>
</ul>
(7)⾏内元素⾥⾯不可使⽤块级元素

a 标签是⼀个⾏内元素,⾏内元素⾥⾯套了⼀个 div 的标签,这样可能会导致 a 标签⽆法正常点击

<!-- not good -->
<a href="../test">
  <div></div>
</a>

<!-- good -->
<a href="../test" style="display: block">
  <div></div>
</a>
(8)不要在https的链接⾥写http的图⽚

只要https的⽹页请求了⼀张http的图⽚,就会导致浏览器地址栏左边的⼩锁没有了,⼀般不要写死,写成根据当前域名的协议去开头:

<img src="//static.chimeroi.com/hello-world.jpg">
(9)不要在⾃闭合(self-closing)元素的尾部添加斜线( HTML5 规范中说明这是可选的)
<!-- not good -->
<img src="logo.png" alt />

<!-- good -->
<img src="logo.png" alt>
(10)不使⽤属性设置样式(img, table等元素)
<!-- not good -->
<img src="test.jpg" alt width="400" height="300">

<!-- good -->
<img src="test.jpg" style="width:400px;height:300px;">
(11)⾃定义属性要以data-开头 ⾃⼰添加的⾮标准的属性要以data-开头

否则w3c validator会认为是不规范的

<!-- not good -->
<div count="5"></div>

<!-- good -->
<div data-count="5"></div>
2、CSS / Less 编码规范
(1)命名:
  • 【强制】类名使⽤⼩写字母,以中划线分隔
  • 【强制】id 采⽤驼峰式命名
  • 【强制】less 中的变量、函数、混合等采⽤驼峰式命名
@mainFontColor: #444;
#companyName,
.company-name {
  color: @mainFontColor;
}
(2)语法:
  • 【强制】所有声明语句都应当以分号结尾
/* error */
.selector {
  font-size: 15px
  color: red
}

/* good */
.selector {
  font-size: 15px;
  color: red;
}
  • 【强制】⼗六进制值应该全部⼩写,例如:#f3f6fa


  • 【推荐】不要使⽤*选择器


  • 【推荐】适当使⽤:before和:after来画页⾯的⼀些视觉上的辅助性元素
  • 如三⾓形、短的分隔线、短竖线等,可以减少页⾯上没有⽤的标签


  • 【推荐】选择器不要超过4层(在 Less 中避免嵌套超过 4 层)


  • 【推荐】⽤ border: 0; 代替 border: none;


  • 【推荐】使⽤全写形式的⼗六进制值。
  • 例如,⽤#ffffff代替#fff,这样颜色能保持统一格式。


  • 【推荐】对于属性值或颜⾊参数,省略⼩于 1 的⼩数前⾯的 0
  • 例如,.5 代替 0.5;-.5px 代替-0.5px
(3)样式兼容性
  • 【强制】当使⽤⼀些较新的 CSS3 语法时,应注意添加浏览器前缀
    ( 打包⼯具包含 CSS 预处理,一般⽆需考虑此条)
  • 【推荐】不要使⽤ input 的 line-height来做垂直居中
    设置 line-height 为⼀个很⾼的值会导致 Safari 浏览器的输⼊光标变得巨⼤ (与line-height等⾼)
/* not good */
input {
  height: 40px;
  line-height: 40px;
}

/* good */
input {
  height: 20px;
  line-height: 20px;
  padding: 10px 0;
}
  • 【强制】⾮通⽤样式使⽤嵌套⽅式进⾏编写,避免影响其他⾃⼰不了解样式,造成样式覆盖
  • 【强制】减少使⽤!important,除⾮原样式使⽤内联样式或!important,且⽆法直接修改才考虑使用


前端代码规范和质量是确保项目可维护性、可读性和可扩展性的关键(二):https://developer.aliyun.com/article/1628436


目录
相关文章
|
2月前
|
JavaScript 前端开发 Docker
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
在使用 Deno 构建项目时,生成的可执行文件体积较大,通常接近 100 MB,而 Node.js 构建的项目体积则要小得多。这是由于 Deno 包含了完整的 V8 引擎和运行时,使其能够在目标设备上独立运行,无需额外安装依赖。尽管体积较大,但 Deno 提供了更好的安全性和部署便利性。通过裁剪功能、使用压缩工具等方法,可以优化可执行文件的体积。
126 3
前端全栈之路Deno篇(二):几行代码打包后接近100M?别慌,带你掌握Deno2.0的安装到项目构建全流程、剖析构建物并了解其好处
|
24天前
|
前端开发 Unix 测试技术
揭秘!前端大牛们如何高效管理项目,确保按时交付高质量作品!
【10月更文挑战第30天】前端开发项目涉及从需求分析到最终交付的多个环节。本文解答了如何制定合理项目计划、提高团队协作效率、确保代码质量和应对项目风险等问题,帮助你学习前端大牛们的项目管理技巧,确保按时交付高质量的作品。
33 2
|
2月前
|
缓存 前端开发 JavaScript
前端架构思考:代码复用带来的隐形耦合,可能让大模型造轮子是更好的选择-从 CDN 依赖包被删导致个站打不开到数年前因11 行代码导致上千项目崩溃谈谈npm黑洞 - 统计下你的项目有多少个依赖吧!
最近,我的个人网站因免费CDN上的Vue.js包路径变更导致无法访问,引发了我对前端依赖管理的深刻反思。文章探讨了NPM依赖陷阱、开源库所有权与维护压力、NPM生态问题,并提出减少不必要的依赖、重视模块设计等建议,以提升前端项目的稳定性和可控性。通过“left_pad”事件及个人经历,强调了依赖管理的重要性和让大模型代替人造轮子的潜在收益
|
2月前
|
前端开发 JavaScript 开发工具
前端代码规范和质量是确保项目可维护性、可读性和可扩展性的关键(三)
前端代码规范和质量是确保项目可维护性、可读性和可扩展性的关键(三)
36 0
|
2月前
|
Web App开发 前端开发 JavaScript
前端代码规范和质量是确保项目可维护性、可读性和可扩展性的关键(二)
前端代码规范和质量是确保项目可维护性、可读性和可扩展性的关键(二)
52 0
|
2月前
|
前端开发 API 开发者
🥇前端宝藏:多项目掌握技能的冒险之旅🏆
在前端开发的学习旅程中,实践是提升技能的关键。本文介绍了多个前端项目,包括计算器、天气应用、经典游戏等,涵盖了从React到Svelte的各种技术栈。每个项目都附有在线演示和源代码,旨在帮助读者深入理解实现细节,激励更多人参与实际项目开发。通过这些项目,读者可以将理论知识转化为实践,拓展职业机会。
19 0
|
2月前
|
前端开发 JavaScript
轻松上手:基于single-spa构建qiankun微前端项目完整教程
轻松上手:基于single-spa构建qiankun微前端项目完整教程
46 0
|
2月前
|
存储 人工智能 前端开发
前端大模型应用笔记(三):Vue3+Antdv+transformers+本地模型实现浏览器端侧增强搜索
本文介绍了一个纯前端实现的增强列表搜索应用,通过使用Transformer模型,实现了更智能的搜索功能,如使用“番茄”可以搜索到“西红柿”。项目基于Vue3和Ant Design Vue,使用了Xenova的bge-base-zh-v1.5模型。文章详细介绍了从环境搭建、数据准备到具体实现的全过程,并展示了实际效果和待改进点。
144 2
|
2月前
|
JavaScript 前端开发 程序员
前端学习笔记——node.js
前端学习笔记——node.js
44 0
|
2月前
|
人工智能 自然语言处理 运维
前端大模型应用笔记(一):两个指令反过来说大模型就理解不了啦?或许该让第三者插足啦 -通过引入中间LLM预处理用户输入以提高多任务处理能力
本文探讨了在多任务处理场景下,自然语言指令解析的困境及解决方案。通过增加一个LLM解析层,将复杂的指令拆解为多个明确的步骤,明确操作类型与对象识别,处理任务依赖关系,并将自然语言转化为具体的工具命令,从而提高指令解析的准确性和执行效率。