编写干净代码的 9 条必须知道的规则

2023-02-02 21:41:09 浏览数 (1)

您是否厌倦了盯着一堆连您的猫都不会碰的代码?别再看了。在这篇文章中,我将告诉您 9 条规则,将您的烂尾代码变成艺术品。

所以喝杯咖啡,坐下来负责你的代码!

规则#1 - 让你的代码井井有条且易于阅读

你可以不整理你的衣橱,但一定要整理你的代码。通过使代码井井有条且易于阅读,您可以快速找到所需内容。

检查以下示例:

代码语言:javascript复制
// Group related functions together
function calculateTotal() {
 // code
}

function calculateTax() {
 // code
}

function calculateDiscount() {
 // code
}

// Use comments to explain the purpose of the code
function calculateTotal() {
 // calculate subtotal
 let subtotal = 0;
 // add items
 subtotal  = item1.price;
 subtotal  = item2.price;
 // return total
 return subtotal;
}

如您所见,稍加计划和适量的注释可以让浏览代码变得轻而易举。

乍一看,即使在编写代码已有一段时间后,您也能很好地了解整体功能。

并不是每一天你都会感谢过去的自己做了一些好事!

规则#2 - 遵循既定的编码约定和标准

我知道成为叛逆者并规划自己的路线很诱人。

但有时,遵循既定的编码惯例和标准是值得的。这包括命名约定、评论指南等内容。

请参阅下面的片段,了解我要说的内容。

代码语言:javascript复制
// Naming conventions
let userName; // camelCase for variables and properties
const MAX_USERS; // UpperCamelCase for constants

// Commenting guidelines
// This function takes in a number and returns its square
function square(num) {
 return num * num;
}

我们的想法是要始终如一地玩游戏。通过遵循您团队的代码约定,您的代码不会像拇指一样突出,您的开发人员也会欣赏您。

规则#3 - 使用描述性变量和函数名称

我知道将变量命名为 X 和 Y 很时髦。

但是请相信我,几个月后,即使是你也无法理解它们的真正含义。

为变量赋予描述性名称总是安全的。从长远来看,它甚至可能对您更好。

代码语言:javascript复制
// Descriptive function name
function calculateSum(numbers) {
 // Descriptive variable name
 let sum = 0;
 // Iterate through the array of numbers
 for (let i = 0; i < numbers.length; i  ) {
   // Add each number to the sum
   sum  = numbers[i];
}
 // Return the sum
 return sum;
}

如您所见,即使函数的代码有一个循环,函数和变量名也使程序的目标一目了然。

规则#4 - 避免硬编码值并使用常量

向硬编码说再见,向常量问好!

通过使用常量,您将能够存储您知道在整个程序中不会改变的值。这将帮助您避免在整个代码中搜索和替换值的麻烦。

查看下面的代码。

代码语言:javascript复制
const TAX_RATE = 0.07;

function calculateTotal(subtotal) {
 return subtotal   (subtotal * TAX_RATE);
}

如果未来税率发生变化,您可以轻松地在一个地方更新该值,并将其反映在整个代码中。

规则#5 - 保持函数小而集中

当您开始作为一名开发人员时,总是很想将您的功能变成瑞士刀。解释您的代码可以做这么多事情的感觉是如此诱人。

当您成为经验丰富的开发人员时,这种习惯就会消失。但有时它不会。

相信我。保持你的功能小,你的生活就会快乐。

如果您编写易于理解的小而集中的函数,那么如果出现问题,您很可能不会在海滩度假时受到打扰。

请参阅此示例。

代码语言:javascript复制
function calculateTotal(subtotal, tax, discount) {
 const total = subtotal   tax - discount;
 return total;
}

上面的函数简短而切题。这使得它易于理解和维护。

规则#6 - 使用合适的数据结构

您是否总是试图在圆孔中安装方钉?如果是,是时候使用适当的数据结构了。

就像木匠针对不同的任务拥有多种工具一样,开发人员应该针对不同类型的功能拥有多种数据结构。

这是一个备忘单:

  • 当您需要存储具有特定顺序的项目集合时,请使用数组。
  • 当您需要存储可以动态更改的项目集合时,请使用列表。
  • 最后,如果您需要存储可以通过键访问的项目集合,请使用映射。

查看下面的代码,演示了不同数据结构的使用。

代码语言:javascript复制
// Using an array to store a collection of items that have a specific order
const shoppingList = ["milk", "bread", "eggs"];
console.log(shoppingList[1]); // Output: "bread"

// Using a list to store a collection of items that can change dynamically
const todoList = ["write code", "debug", "test"];
todoList.push("deploy");
console.log(todoList); // Output: ["write code", "debug", "test", "deploy"]

// Using a dictionary to store a collection of items that can be accessed by a key
const phonebook = {
 "John": "555-555-5555",
 "Mary": "555-555-5556",
 "Bob": "555-555-5557"
};
console.log(phonebook["Mary"]); // Output: "555-555-5556"

通过根据需求使用合适的数据结构,您会发现您的代码不仅高效而且易于理解。

规则#7 - 使用版本控制

就像你的应用程序如果只在你的机器上运行就没有用一样,如果你的代码没有提交到中央存储库,它也没有用。

每个开发人员都应该习惯版本控制。不要忘记定期提交代码。如果您正在这样做,请确保您团队中的其他人也这样做。

只需要几个命令:

代码语言:javascript复制
// Initialize a new Git repository
$ git init

// Add all files to the repository
$ git add .

// Commit the changes with a message
$ git commit -m "Initial commit"

一个好的版本控制工具允许开发人员跟踪更改、与他人协作并在出现任何问题时轻松恢复到以前的版本。

规则# 8 - 自动化重复性任务

不要像轮子上的仓鼠一样,不停地原地打转,一遍又一遍地做着同样无聊的工作。

您应该使用工具和脚本来自动执行代码中的重复性任务。这不仅可以节省时间,还可以使您的代码更加可靠和高效。

查看此简单测试自动化脚本的代码示例。

代码语言:javascript复制
const testCases = [
  { input: [1, 2], expectedOutput: 3 },
  { input: [2, 3], expectedOutput: 5 },
  { input: [3, 4], expectedOutput: 7 },
];

testCases.forEach(testCase => {
   const output = addNumbers(testCase.input[0], testCase.input[1]);
   if (output !== testCase.expectedOutput) {
       console.error(`Test failed: expected ${testCase.expectedOutput} but got ${output}`);
  } else {
       console.log("Test passed");
  }
});

您还可以自动化编译代码和创建最终包的构建过程。

请参阅下面的示例,其中我们使用 Gulp 等工具自动化构建过程。

代码语言:javascript复制
// Automating a build process using a tool like Grunt or Gulp
const gulp = require('gulp');

gulp.task('build', function() {
// Build process logic
});

gulp.task('default', ['build']);

规则#9 - 保持你的代码是最新的

不要成为恐龙。你只会灭绝。

让您的代码保持最新。尽可能更新您的应用程序依赖项。

例如,如果您在 Node 生态系统中工作,请使 NPM 保持最新并升级您的开发环境。

代码语言:javascript复制
// Keep dependencies up-to-date using package manager
$ npm update

// Keep the development environment up-to-date
$ nvm install 12.16.3

就是这样!

那么,你有它。9 条规则可帮助您编写干净高效的代码。

当然,这些并不是唯一重要的事情。但是通过遵循它们,您将能够开始编写不仅运行良好而且看起来令人愉悦的代码,让其他人阅读、理解和维护。

0 人点赞