”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 一级抽象:简洁函数的关键

一级抽象:简洁函数的关键

发布于2024-11-07
浏览:972

One Level of Abstraction: The Key to Clean Functions

曾经在看过一个函数后,感到迷失在它的复杂性中吗?让我们探讨一下干净代码的基本原则:函数应该只维护一个抽象级别。

这是在 Web 应用程序中创建用户的真实示例:

// ❌ A function doing too many things at different abstraction levels
function createUser(userData) {
  // Validate data
  if (!userData.email || !userData.email.includes('@')) {
    return 'Invalid email';
  }
  if (userData.password.length 



这个函数混合了不同层次的抽象:

  • 高级业务逻辑(用户创建流程)
  • 中级操作(数据验证、格式化)
  • 低级详细信息(密码哈希)

让我们按照单层抽象原则重构它:

// ✅ Clean version with one level of abstraction
function createUser(userData) {
  const validationError = validateUserData(userData);
  if (validationError) return validationError;

  const securePassword = hashPassword(userData.password);
  const formattedUser = formatUserData(userData.email, securePassword);

  return saveUserToDatabase(formattedUser);
}

function validateUserData({ email, password }) {
  if (!email || !email.includes('@')) return 'Invalid email';
  if (password.length 



这种方法的好处

  1. 可读性:主要功能读起来像一个故事,描述了高层发生的事情
  2. 可维护性:每个功能都有单一职责,使更改更安全
  3. 可测试性:可以独立测试每一段逻辑
  4. 可重用性:这些重点功能可以在其他上下文中重用

要点

编写函数时:

  • 让他们专注于一个抽象级别
  • 将复杂的操作提取到命名良好的函数中
  • 让main函数讲故事
  • 将每个功能视为流程中的一个步骤

记住:如果您在同一个函数中混合“如何”和“什么”,您可能正在处理多个抽象级别。分开吧!

版本声明 本文转载于:https://dev.to/56_kode/one-level-of-abstraction-the-key-to-clean-functions-2ekb?1如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3