变量、函数、文件和文件夹命名的最佳实践与技巧

 

命名是编码中最重要的事情之一,但常常被忽视。易于阅读的代码通常始于清晰的名称——无论是变量、函数、文件还是文件夹。以下是一些专业开发人员常用的技巧和通用实践。


1. 变量命名

  • 使用描述性但简短的名称
    • 好的: userCount, emailList, isLoggedIn
    • 坏的: x, temp, a1
  • 在JavaScript和PHP中使用camelCase
  let userCount = 10;
  let isActive = true;
  • 在Python中使用snake_case
  user_count = 10
  is_active = True
  • Go 通常使用 camelCase 来命名局部变量,使用 PascalCase 来命名导出变量
  var userCount int
  var UserName string  // 可以被导出

2. 函数/方法命名

  • 使用动词 以便清晰表达其功能
    • 示例: calculateTotal(), sendEmail(), fetchUserData()
  • 在 JS、PHP、Go(本地)中使用 CamelCase
  function getUserInfo($id) { ... }
  function sendEmail(to, subject) { ... }
  func fetchUserData(id int) User { ... }
  • Python中的蛇形命名法(snake_case)
  def fetch_user_data(user_id):
      pass
  • 不要太长,但也不要太抽象
  • 差:f()
  • 好:calculateInvoiceTotal()

3. 常量命名

  • 通常使用全大写并用下划线_分隔,在所有语言中都是如此:
  define('MAX_LOGIN_ATTEMPTS', 5);
  const PI = 3.14;
  const MAX_LOGIN_ATTEMPTS = 5;

要求:
1. 保持技术术语的准确性和一致性
2. 保持HTML格式和代码块不变
3. 使用流畅的中文表达
4. 保持原文的专业性和技术性
5. 不要添加或删除内容

MAX_LOGIN_ATTEMPTS = 5

const MaxLoginAttempts = 5 // Go 通常使用 PascalCase 来命名导出的常量

4. 文件命名

  • 使用与内容/模块相符的文件名
  • 避免使用空格,使用各自语言的习惯:
语言 文件约定
PHP UserController.php(类使用PascalCase)
JS/TS userController.jsuser_controller.js
Python user_controller.py(snake_case)
Go user_controller.go(小写,使用下划线)
  • 对于表示单个实体的模块,使用单数名词,如有必要,对于集合使用复数。

5. 文件夹/目录命名

  • 文件夹应为小写且具有描述性:
  • 避免使用过短的缩写: /srv → 更好使用 /services
  • 保持一致文件夹结构通常遵循项目架构:
语言 示例结构
Go /cmd, /internal, /pkg, /tests
JS/TS /src, /lib, /tests, /config
Python /project_name, /tests, /configs, /scripts
PHP /app/Controllers, /app/Models, /app/Services


6. 其它通用建议

  1. 保持一致
  • 选择一种约定并在整个项目中使用。不要无理由地混合使用 camelCase 和 snake_case。
  1. 简短但清晰
  • 名字不要太长,又要足够描述性,让人一看就懂其含义。
  1. 使用领域语言
  • 变量或函数名最好贴合业务领域。
  • 例如:invoiceTotal 比 sum1 更直观。
  1. 必要时加前缀/后缀
  • 布尔值 → isLoggedIn, hasPermission
  • 数组/列表 → userList, emailArray
  1. 导出与局部区别
  • Go:需导出的用 PascalCase,仅局部使用的用 camelCase。
  • JS/TS:无硬性规定,但通常统一用 camelCase。


💡 快速总结: 语言 vs 约定

元素 JS/TS PHP Python Go
变量 camelCase camelCase snake_case camelCase / PascalCase (导出)
函数 camelCase camelCase snake_case camelCase / PascalCase (导出)
常量 ALL_CAPS ALL_CAPS ALL_CAPS PascalCase (导出)
文件 camelCase / snake_case PascalCase snake_case 小写 + 下划线
文件夹 小写 小写 小写 小写

通过遵循这些约定,代码变得更加 易读、一致且易于维护,无论使用何种编程语言。

更多