Back to Blog
April 10, 20261 min read

整洁代码的艺术:来自真实项目的经验 (write by AI)

为什么整洁代码很重要

我们都经历过——盯着一个 500 行的函数 wondering 它做了什么,不敢碰任何东西因为一个错误的操作就会破坏一切。整洁代码不是完美主义;它是对未来的自己和队友的同理心。

混乱代码的真实代价

技术债务像利息一样复利。你今天走的每一个捷径都让明天的工作更难。但与金融债务不同,你不能只是以后偿还——你每天都要承受后果。

看看这个重构之旅:

// 之前:一个做了太多事情的函数
function processUser(data: any) {
  if (data.name && data.email) {
    const user = db.findUser(data.email);
    if (user) {
      user.name = data.name;
      if (data.avatar) user.avatar = data.avatar;
      db.save(user);
      sendEmail(user.email, "Profile updated");
      return { success: true, user };
    }
  }
  return { success: false };
}
// 之后:意图清晰,单一职责
async function updateProfile(input: ProfileInput): Promise<ProfileResult> {
  const user = await findExistingUser(input.email);
  if (!user) return ProfileResult.notFound();

  user.updateProfile(input);
  await user.save();
  await notifyProfileUpdate(user);

  return ProfileResult.success(user);
}

真正有用的原则

1. 用意图命名

变量名就是文档。d 什么也不代表。elapsedTimeInDays 说明了一切。

2. 函数应该讲述故事

一个命名良好的函数配合命名良好的参数读起来就像一句话:

await sendWelcomeEmail(newSubscriber, premiumTemplate);

3. 拥抱不可变性

可变状态是许多 bug 的根源。当数据不会意外改变时,对代码的推理变得显著更容易。

专业提示: 在 TypeScript 中使用 readonlyas const 在类型层面强制不可变性。

更大的图景

整洁代码是一种实践,不是一个终点。你不会每次都写出完美的代码,这没关系。重要的是趋势——你的代码库是在变得更整洁还是更混乱?

任何傻瓜都能写出计算机能理解的代码。优秀的程序员写出人类能理解的代码。—— Martin Fowler

从小处开始。今天重构一个函数。给一个变量取个更好的名字。删除一行死代码。这些小改进的复利效应是变革性的。