火车风格命名法(Train-Case)是一种单词首字母大写并用连字符(-)分隔的命名规范,形如 User-Profile 或 Api-Version。因其外观类似火车车厢连接而得名,在URL、CSS类名、项目命名等领域有独特应用。本文深入解析其规则、场景,并与其他主流命名法对比。
火车风格命名法(Train-Case,又称 Train-Case 或 Capital-Kebab-Case)是一种标识符命名约定,它结合了短横线(连字符)分隔和首字母大写的特性,使每个单词都像火车车厢一样通过连字符连接,同时每个单词的首字母大写,形成独特的视觉风格。例如 User-Profile、Api-Version。这种命名法在项目命名、URL设计、CSS类名(尤其是BEM变体)以及某些配置文件中有所应用,它比纯小写的短横线命名法更具可读性和视觉强调效果。
每个单词的首字母必须大写,其余字母小写。这与大驼峰(PascalCase)相似,但用连字符代替了无分隔符。例如 Max-Retry 而不是 max-retry 或 MAX-RETRY。
单词之间使用单个连字符 - 分隔,如 User-Account。连字符在URL和CSS中具有特殊语义,因此火车命名法在这些领域保持兼容。
对于常见缩写词(如 API, URL, ID),通常保持全大写(如 API-Key、User-ID),但有些风格建议只首字母大写(如 Api-Key)。团队内部应统一约定。
标识符不能以连字符开头或结尾,也不能包含连续连字符。
火车命名法虽然在编程语言变量中不常见(因连字符不被大多数语言支持),但在以下领域有独特价值:
许多开源项目和软件产品使用火车命名法作为项目名称,例如 My-Project、Awesome-Library。这种风格在视觉上比纯小写更具辨识度,同时连字符符合大多数包管理器的命名规则(如NPM允许但建议小写,但火车命名法仍常见于GitHub仓库名)。
在RESTful API或网站路径中,火车命名法可用于表示资源集合或版本,例如 /api/User-Profile 或 /v1/Order-Item。虽然更常见的是纯小写短横线,但火车命名法提供了额外的可读性,尤其适合品牌化URL。
在BEM(Block Element Modifier)方法论中,类名常使用短横线,但有些团队采用火车命名法来表示Block或Element,以区别于修饰符。例如 .User-Profile 表示块,而 .user-profile--active 可能使用小写。这种混合使用可根据项目规范调整。
某些配置文件(如 JSON、YAML)允许使用连字符作为键名,火车命名法可提高键名的可读性,例如 "Max-Retry": 3。但需要注意,许多编程语言解析配置时,连字符键名需用引号包裹。
火车命名法可以看作是短横线命名法(kebab-case)和PascalCase的混合体。它继承了短横线的分隔优势和PascalCase的首字母大写强调效果,但放弃了纯小写的简洁。与宏命名法(全大写+下划线)相比,火车命名法更注重可读性而非醒目性,因此常用于用户界面和标识,而宏命名法用于常量定义。
与蛇形命名法(全小写+下划线)相比,火车命名法在视觉上更突出,适合作为标题或名称,而蛇形更低调,适合作为内部变量。在实际项目中,火车命名法通常限于命名空间、项目名、URL路径等,而不会侵入代码内部标识符。
This-Is-A-Very-Long-Name)会降低可读性,应适当精简。火车命名法并非某一特定语言的官方规范,而是源自社区实践。其名称“Train-Case”源于视觉上像一列火车(每个单词是一节车厢,连字符是连接器)。它在早期Web开发中作为URL命名方式出现,后来被用于CSS类名的变体。虽然没有像驼峰或蛇形那样广泛,但因其独特的可读性,在特定领域(如品牌命名、API设计)中保持着稳定的受众。
火车命名法是一种兼具分隔清晰和大小写强调的命名风格,适合用于项目标识、URL路径和特定样式类名。虽然它不适用于编程语言的内部标识符,但在其适用场景中能提供优于纯小写短横线的视觉表现。理解火车命名法与宏命名法、短横线命名法等的差异,有助于你在不同上下文中做出合理的命名选择,提升代码和文档的专业度。