首页 web前端 js教程 了解干净的代码:评论⚡️

了解干净的代码:评论⚡️

Aug 16, 2024 pm 10:46 PM

Understanding Clean Code: Comments ⚡️

代码注释在软件开发中被认为是必要的,但是《Clean Code》一书建议代码应该是不言自明的,不需要注释。

我们将探索何时使用注释、何时避免它们,以及如何在 JavaScript 代码中编写有价值的注释。


?何时避免发表评论

1. 明显的代码:

如果代码本身已经很清楚,则不应使用注释来解释代码正在做什么。

例如:

// Increment the counter by 1
counter++;

// Check if the user is an admin
if (user.isAdmin()) {
    // ...
}
登录后复制

在这些情况下,注释是多余的,因为代码是不言自明的。不要添加不必要的注释,而是专注于使代码更具可读性。

2. 误导性评论:

与代码不匹配的注释可能会导致混乱和错误。如果你更新了代码但忘记更新注释,就会产生误导:

// Initialize user object
let user = new AdminUser(); // Actually, it's creating an AdminUser, not a regular user
登录后复制

这里的注释具有误导性,可能会让稍后阅读代码的人感到困惑。最好删除注释或确保它准确反映代码。

3. 注释掉的代码:

将旧代码注释掉是一种常见的不良做法。它使代码库变得混乱并且可能会造成混乱:

// Old code
// let data = fetchDataFromAPI();

// New code
let data = fetchDataFromDatabase();
登录后复制

不要将旧代码注释掉,而是使用 Git 等版本控制系统来跟踪代码更改。这可以让你的代码库保持干净和专注。



?何时使用注释

1. 明确意图:

如果一段代码具有复杂的逻辑或涉及解决方法,注释可以阐明代码存在的原因:

// Using a workaround for browser-specific bug in IE11
if (isIE11()) {
    fixIEBug();
}
登录后复制

评论解释了为什么代码是必要的,为未来的开发人员提供了有价值的背景。

2. 法律信息:

有时,出于法律原因,注释是必要的,例如包含版权信息或许可详细信息:

/*
 * Copyright (c) 2024 MyCompany. All rights reserved.
 * Licensed under the MIT License.
 */
登录后复制

这些注释至关重要,应根据项目许可的要求包含在内。

3. 决定说明:

当代码中的特定决策需要论证时,注释可能会有所帮助:

// Using a binary search because the list is sorted
let index = binarySearch(sortedArray, target);
登录后复制

此评论解释了为什么选择二分搜索,提供了对实现背后的推理的深入了解。

4. 公共API:

在编写面向公众的 API 时,注释可以帮助记录如何使用它们,尤其是在您可能没有内置文档工具的 JavaScript 中:

/**
 * Calculates the area of a rectangle.
 * @param {number} width - The width of the rectangle.
 * @param {number} height - The height of the rectangle.
 * @returns {number} The area of the rectangle.
 */
function calculateArea(width, height) {
    return width * height;
}
登录后复制

在这种情况下,注释提供了有关如何使用该函数的清晰文档,这对于可能使用它的其他开发人员特别有用。



?撰写有用的评论

  • 清晰简洁:评论应该直截了当、切中要点。避免编写可以从代码本身轻松理解的冗长解释。

  • 避免行话:使用易于理解的语言,避免使用每个阅读代码的人可能不熟悉的技术术语。

  • 更新评论:代码更改时始终更新您的评论。一个好的经验法则是:如果您触摸了代码,请查看注释。

  • 关注原因,而不是内容:好的注释解释了为什么做出特定决定,而不是描述代码正在做什么:

// We need to sort the array before performing the search
array.sort();
登录后复制

此评论解释了为什么在搜索之前需要排序,添加了有价值的上下文。



结论✅

虽然注释可能会有所帮助,但清洁代码告诉我们应该谨慎且有目的地使用它们。

我们的目标是编写清晰的代码,几乎不需要注释。

当需要注释时,请确保它们有意义且准确,并为阅读您代码的任何人提供价值。

通过遵循这些准则,您不仅可以提高代码的质量,还可以让其他人(以及未来的您)更容易理解和维护代码。

编码愉快!

以上是了解干净的代码:评论⚡️的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1317
25
PHP教程
1268
29
C# 教程
1246
24
JavaScript的演变:当前的趋势和未来前景 JavaScript的演变:当前的趋势和未来前景 Apr 10, 2025 am 09:33 AM

JavaScript的最新趋势包括TypeScript的崛起、现代框架和库的流行以及WebAssembly的应用。未来前景涵盖更强大的类型系统、服务器端JavaScript的发展、人工智能和机器学习的扩展以及物联网和边缘计算的潜力。

JavaScript引擎:比较实施 JavaScript引擎:比较实施 Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

Python vs. JavaScript:学习曲线和易用性 Python vs. JavaScript:学习曲线和易用性 Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

JavaScript:探索网络语言的多功能性 JavaScript:探索网络语言的多功能性 Apr 11, 2025 am 12:01 AM

JavaScript是现代Web开发的核心语言,因其多样性和灵活性而广泛应用。1)前端开发:通过DOM操作和现代框架(如React、Vue.js、Angular)构建动态网页和单页面应用。2)服务器端开发:Node.js利用非阻塞I/O模型处理高并发和实时应用。3)移动和桌面应用开发:通过ReactNative和Electron实现跨平台开发,提高开发效率。

如何使用Next.js(前端集成)构建多租户SaaS应用程序 如何使用Next.js(前端集成)构建多租户SaaS应用程序 Apr 11, 2025 am 08:22 AM

本文展示了与许可证确保的后端的前端集成,并使用Next.js构建功能性Edtech SaaS应用程序。 前端获取用户权限以控制UI的可见性并确保API要求遵守角色库

使用Next.js(后端集成)构建多租户SaaS应用程序 使用Next.js(后端集成)构建多租户SaaS应用程序 Apr 11, 2025 am 08:23 AM

我使用您的日常技术工具构建了功能性的多租户SaaS应用程序(一个Edtech应用程序),您可以做同样的事情。 首先,什么是多租户SaaS应用程序? 多租户SaaS应用程序可让您从唱歌中为多个客户提供服务

从C/C到JavaScript:所有工作方式 从C/C到JavaScript:所有工作方式 Apr 14, 2025 am 12:05 AM

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

JavaScript和Web:核心功能和用例 JavaScript和Web:核心功能和用例 Apr 18, 2025 am 12:19 AM

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

See all articles