当前位置: 首页 > news >正文

程序开发时单数复数及前缀的命名规范(目录名、文件名、函数名、变量名、数据库字段等)

  • 在程序开发中,我总是被单复数搞得头疼,以前采用了最舒服的方法,一刀切:全部单数,因为理由也很简单,单数都可以作为定语解释,比如/util,可以认为真正的名称是/util files或者/util directory,所以单复数问题就不存在了,如果你认同这个观点就关闭本页吧,不要被下面的文字误导~~哈哈。
  • 可在通行代码中往往遇到复数,而老外,作为英语真正的使用者也往往使用单复数混用情况。
  • 如果一刀切的话不利于交(复)流(制),以下是根据开发经验进行的详细解答:

在这里插入图片描述

在编程开发中,命名时选择单数还是复数,对代码的可读性和一致性非常重要。这涉及到文件、变量、函数、类、目录等的命名。以下是关于何时使用单数或复数的一些最佳实践建议:

分析

1. 变量和常量

  • 使用单数:通常,变量和常量代表的是一个单一的值或实体,因此使用单数命名更为自然。
    // JavaScript 例子
    const user = 'Alice';
    let score = 100;
    
    // PHP 例子
    $username = 'John';
    $totalPrice = 250.5;
    
  • 如果是集合或数组,则使用复数
    const users = ['Alice', 'Bob', 'Charlie'];
    const scores = [10, 20, 30];
    

2. 函数和方法

  • 使用动词开头,通常用单数,因为函数通常描述的是一个动作或行为。
    function getUser() { ... }
    function saveData() { ... }
    function calculateTotal() { ... }
    
  • 如果函数返回多个值或集合,可以使用复数来表明结果。
    function getUsers() { return ['Alice', 'Bob']; }
    function fetchOrders() { return ordersArray; }
    

3. 类和接口

  • 使用单数:类和接口通常表示一种类型或对象,因此单数更为合适。
    class User { ... }
    interface UserProfile { ... }
    class Product { ... }
    
  • 除非表示的是一个明确的集合类(如UsersListOrdersCollection),通常使用单数。

4. 数据库表

  • 建议使用复数:因为数据库表通常存储多个记录。
    CREATE TABLE users (id INT,username VARCHAR(50)
    );
    CREATE TABLE products (id INT,name VARCHAR(100)
    );
    

5. 文件和目录

  • 文件命名一般使用单数:因为文件通常对应一个模块、一个类或一个功能。
    userController.js
    productService.ts
    authHelper.ts
    
  • 目录命名视内容而定
    • 逻辑分组时用复数(比如存放多个文件的目录)。
      ├── controllers/
      ├── models/
      ├── services/
      ├── utils/
      
    • 如果目录是一个特定的模块或功能,可以用单数。
      ├── auth/
      │   ├── login.ts
      │   ├── register.ts
      

6. 枚举类型

  • 通常使用单数:因为枚举表示的是一种类型,而不是一个集合。
    enum UserRole {Admin,User,Guest
    }
    

7. 命名总结表

类型使用单数使用复数
变量/常量❌(除非是集合)
函数/方法❌(除非返回多个值)
类/接口❌(除非是集合类)
数据库表
文件名
目录名视情况而定视情况而定
枚举

总结

单数复数最终还是根据语言习惯、开发习惯来决定~~全是屁话,但本文里的命名规范方案是我认为的最优解,如果认同请点赞关注支持!

这是总结了单复数和大小写后的最终方案,如果觉得不错请一键三联:
《程序开发时命名规范(目录名、文件名、函数名、变量名、数据库字段等)的最终方案》


http://www.mrgr.cn/news/69084.html

相关文章:

  • 【操作系统】每日 3 题(二十四)
  • 数字IC后端低功耗设计实现案例分享(3个power domain,2个voltage domain)
  • SpringCloud核心组件(五)
  • 下一代以区域为导向的电子/电气架构
  • 【大模型实战篇】vLLM的由来以及大模型部署、推理加速实践
  • 用Python语言,将一个整数进行因式分解,打印出所有的因数。比如90=2*3*3*5, 90, 1, 2, 45,
  • ONLYOFFICE 8.2深度测评:集成PDF编辑、数据可视化与AI功能的强大办公套件
  • Chromium 中chrome.system.memory扩展接口定义c++
  • AWTK fscript 中的 日期时间 扩展函数
  • 2024年软件设计师中级(软考中级)详细笔记【12】软件系统分析与设计
  • mysql备份数据库及恢复
  • 【LeetCode】每日一题 2024_11_9 设计相邻元素求和服务(构造,哈希)
  • RHCE的学习(14)
  • 2024-11-2025-03 - 通用人工智能技术 - 问卷调研 - 软考 - 流雨声
  • 域名+服务器+Nginx+宝塔使用SSL证书配置HTTPS
  • PostgreSQL 之递归查询
  • 如何在微服务架构中优化微信 Access Token 管理:解决频率限制与过期问题的最佳实践
  • SpringBoot2~~~
  • WOA-RF|鲸鱼算法-随机森林-回归-降维|多变量特征筛选降维-回归预测|Matlab
  • JAVA开源项目 服装销售平台 计算机毕业设计
  • 嵌入式linux中gpio子系统的开发与实现
  • 2024年最新互联网大厂精选 Java 面试真题集锦(JVM、多线程、MQ、MyBatis、MySQL、Redis、微服务、分布式、ES、设计模式)
  • 丹摩征文活动 |【AI落地应用实战】文本生成语音Parler-TTS + DAMODEL复现指南
  • 什么是上拉和下拉
  • 弄巧成拙的 PFC(Priority-based Flow Control)
  • SpringBoot框架:共享汽车行业的技术升级