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

  • 在程序开发中,我总是被单复数搞得头疼,以前采用了最舒服的方法,一刀切:全部单数,因为理由也很简单,单数都可以作为定语解释,比如/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. 命名总结表

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

总结

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/912138.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot原理全解析:如何让开发更轻松高效(二)-起步依赖、自动装配

通过这篇博客,读者将能够掌握 Spring Boot 中的配置优先级和 Bean 管理的核心原理,为开发更加高效、可维护的 Spring Boot 应用打下坚实的基础。 目录 前言 起步依赖 自动配置 概述 常见方案 概述 方案一 方案二 总结 前言 通过这篇博客&#xf…

力扣动态规划基础版(矩阵型)

62.不同路径(唯一路径问题) 62. 不同路径https://leetcode.cn/problems/unique-paths/ 方法一:动态规划 找状态转移方程,也就是说它从左上角走到右下角,只能往右或者往下走,那么设置一个位置为&#xff…

Ubuntu 22 安装 Apache Doris 3.0.3 笔记

Ubuntu 22 安装 Apache Doris 3.0.3 笔记 1. 环境准备 Doris 需要 Java 17 作为运行环境,所以首先需要安装 Java 17。 sudo apt-get install openjdk-17-jdk -y sudo update-alternatives --config java在安装 Java 17 后,可以通过 sudo update-alter…

141/142题环形链表

本题返回环入口的位置。使用快慢指针,快指针每次移动两个,慢指针每次移动一个。设前一段距离是a,进入环内到slow和fast相遇的地点距离是b,环内剩下的距离是c,如图所示。 环的长度是bc 慢指针移动距离是ab 快指针移动距离是abk(bc…

leetcode25:k个一组链表反转

给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯的改变节点内部的值…

《今日制造与升级》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《今日制造与升级》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《今日制造与升级》级别? 答:国家级。主管单位:中国机械工业联合会 …

【Linux第八课-进程间通信】管道、共享内存、消息队列、信号量、信号、可重入函数、volatile

目录 进程间通信为什么?是什么?怎么办?一般规律具体做法 匿名管道原理代码 命名管道原理代码 system V共享内存消息队列信号量信号量的接口 信号概念为什么?怎么办?准备信号的产生信号的保存概念三张表匹配的操作和系统…

C++builder中的人工智能(18):神经网络中的SoftMax函数

在这篇文章中,我们将探讨SoftMax函数在神经网络中的作用,如何在人工神经网络(ANN)中使用SoftMax函数,以及在AI技术中SoftMax的应用场景。让我们来详细解释这些概念。 SoftMax函数是什么? SoftMax函数是逻辑…

证件照尺寸168宽240高,如何手机自拍更换蓝底

在提供学籍照片及一些社会化考试报名时,会要求我们提供尺寸为168*240像素的电子版证件照,本文将介绍如何使用“报名电子照助手”,借助手机拍照功能完成证件照的拍摄和背景更换,特别是如何将照片尺寸调整为168像素宽和240像素高&am…

pytest+request+allure接口自动化框架搭建分享

介绍分享一个接口自动化框架搭建方法 (pytestrequestallure),这个方案是由 xpcs 同学在TesterHome社区网站的分享。 写在前面 去年11月被裁,到现在还没上岸,gap 半年了。上岸无望,专业技能不能落下,花了两三天时间&…

大数据新视界 -- 大数据大厂之 Impala 性能优化:融合机器学习的未来之路(上 (2-2))(11/30)

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Unity 实现数字垂直滚动效果

Unity 实现数字垂直滚动效果 前言项目场景布置Shader代码编写材质球设置代码编写数字图片 前言 遇到一个需要数字垂直滚动模拟老虎机的效果,记录一下。 项目 场景布置 3个Image换上带有RollNumberShader的材质 在RollNumberScript脚本中引用即可 Shader代码编…

[linux]docker基础

常见命令 Docker最常见的命令就是操作镜像、容器的命令,详见官方文档: Docker Docs 案例: 查看DockerHub,拉取Nginx镜像,创建并运行Nginx容器 在DockerHub中搜索Nginx镜像 拉取Nginx镜像 查看本地镜像列表 把镜像保持到本地 查看保持命令的…

纯C++信号槽使用Demo (sigslot 库使用)

sigslot 库与QT的信号槽一样,通过发送信号,触发槽函数,信号槽不是QT的专利,早在2002年国外的一小哥用C写了sigslot 库,简单易用; 该库的官网(喜欢阅读的小伙伴可以仔细研究)&#xf…

(Go语言)Go里面的指针如何?函数与方法怎么不一样?带你了解Go不同于其他高级语言的语法

0. 序言 从这章开始,在Go基础语法里难度就开始上来了 在学习函数与方法前,先弄明白指针是很重要的。 1. 指针 在没学指针前,相信很多人就已经大概知道指针是个什么东西了。因为它太有名了,当然是与 C和C 的出名有关。 1.1 指针…

基于redis实现API接口访问次数限制

一,概述 日常开发中会有一个常见的需求,需要限制接口在单位时间内的访问次数,比如说某个免费的接口限制单个IP一分钟内只能访问5次。该怎么实现呢,通常大家都会想到用redis,确实通过redis可以实现这个功能&#xff0c…

实在智能受邀出席柳州市智能终端及机器人产业发展合作大会

10 月 27 日至 28 日,由中共柳州市委员会与柳州市人民政府主办的2024柳州市智能终端及机器人产业发展合作大会在柳州莲花山庄隆重举行。大会充分整合各方资源,持续深化与柳州在重大战略规划、重大平台建设、重点产业培育等领域的合作。作为智能体行业的知…

JDBC-PreparedStatement

在前面使用的Statement中,编写sql语句使用的是拼接的形式,这样不仅可读性差,还非常容易导致出错,最大的问题是安全问题。 sql注入 在需要用户输入的地方,用户输入的是SQL语句的片段,最终用户输入的SQL片段…

如何创建备份设备以简化 SQL Server 备份过程?

SQL Server 中的备份设备是什么? 在 SQL Server 中,备份设备是用于存储备份数据的物理或逻辑介质。备份设备可以是文件、设备或其他存储介质。主要类型包括: 文件备份设备:通常是本地文件系统中的一个或多个文件。可以是 .bak 文…

非计算机背景但是想从事医学AI研究,需要掌握的编程语言|个人观点·24-11-08

小罗碎碎念 目前,我们从事医学AI研究的,接触的最多的两种编程语言应该就是R和Python了。那么初学者很容易提出一个疑问,**我想从事医学AI相关的研究的话,应该学哪些编程语言呢?**在文章的开头,我可以先给出…