简体中文

文本及日常工具·文本工具包

大小写转换器如何拆分驼峰命名法和首字母缩略词(例如 parseHTTPResponse)

· 工作原理

文本转换 开发人员工作流程 统一码

标识符 parseHTTPResponse 分为解析、HTTP 和响应令牌
原始 ToolAcre 矢量图

解释了一个好的大小写转换器应用的三个边界规则——分隔符运行、从下到上的转换和首字母缩略词边缘——以及为什么 parseHTTPResponse2Json 是暴露弱规则的测试。

parse_h_t_t_p_response 和其他失败 - 为什么转换标识符比转换“hello world”更难

将“hello world”转换为 hello_world 很容易;将 parseHTTPResponse 转换为 parse_h_t_t_p_response 表明算法将每个大写字母视为一个单词。为 Python API 重命名 JavaScript 标识符的开发人员需要相反的操作:首先识别令牌,然后应用目标的加入约定。同样的第一步应该为蛇、烤肉串、骆驼和帕斯卡输出提供动力,否则四个按钮在单词开始的位置上不一致。

规则一:分隔符 — 空格、连字符、下划线和标点符号都标记边界,无论一行中有多少个

连续的空格、连字符、下划线和其他非字母/非数字字符已经标记了边界。将运行视为一个分隔符:button--primary 应成为两个标记,而不是连字符之间的空标记。 ToolAcre 的大小写转换器与字母和数字的 Unicode 感知表达式分开,因此常见的非 ASCII 字母不会仅仅因为位于 A-Z 之外而被丢弃。空白规范化是关于命名约定,而不是自动更改原始源文件。

规则二:从下到大的转换——小写字母或数字后跟大写开始一个新单词

小写字母或数字后跟大写字母的模式会在大写字母之前插入边界。这会将 parseResponse 变成 parse + Response,并允许 2Json 变成 2 + Json。此规则本身并不将前面的单词与其最后的数字分开:ToolAcre 在拆分大写 J 之前将 Response2 视为一个标记。是否需要 Response + 2 是一个样式指南决定,因此请检查数字标识符,而不是假设每个转换器都做出相同的选择。

规则三:首字母缩略词边缘 - 一连串大写字母,后跟大写字母和小写字母对,在最后一个大写字母之前结束首字母缩略词

首字母缩略词需要再向前看一次。在 HTTPResponse 中,大写 HTTP 在 R 之前结束,因为 R 后面跟着小写 esponse。匹配 run 和大写-小写对的规则会在那里插入边界:HTTP + Response,而不是 H + T + T + P + Response。当名称以全部大写结尾时,没有小写后缀来标记新单词,并且首字母缩略词保持在一起。这就是标记标识符和在每个大写字母之前插入分隔符之间的区别。

数字和边缘情况 - “2Json”分裂的地方,以及为什么没有规则集满足每个样式指南

数字约定仍然不明确:version2Parser、HTTP2Json 和 IP6Address 并不都暗示相同的单词分组。 ToolAcre 将数字与前面的标记分组,直到后续大写触发下一个边界。同样,具有区域设置敏感的大写字母的扩展或行为可能与 ASCII 不同:土耳其语点/无点 i 和德语 ß 需要手动检查。该工具进行确定性转换,而不是声称理解变量的语义命名。

工作示例 - 通过蛇、烤肉串、骆驼和 Pascal 大小写运行 parseHTTPResponse2Json 和连字符的 CSS 类

通过实际大小写转换器运行 parseHTTPResponse2Json。它在蛇的情况下生成parse_http_response2_json,在kebab的情况下生成parse-http-response2-json,在骆驼的情况下生成parseHttpResponse2Json,在Pascal的情况下生成ParseHttpResponse2Json。对于button--primary,连续的分隔符会折叠成button_primary 和button-primary。这些输出公开了成功的首字母缩略词规则和数字分组选择。在跨代码库使用搜索和替换之前,先针对目标 API 进行测试。

这不包括什么 - 特定于区域设置的大小写,例如土耳其语点分 i,它有自己的帖子

此机制不会实现每种语言的大小写折叠、推断首字母缩略词代表特定领域术语或重命名整个程序中的引用。字符串和标识符转换与使用符号感知重构源代码不同。该工具不能保证 Python 服务接受重命名的 JSON 字段;调用者可能仍然依赖旧的拼写。更改公共字段名称后运行架构测试。

要点 - 文本工具包的大小写转换器应用这三个规则并立即显示结果,以便您可以在粘贴到代码中之前检查它

首先使用分隔符、转换和首字母缩略词边缘来识别标记;然后才加入并保护它们。文本工具包使这些规则可见并立即输出,并允许您撤消转换。对于包含大量首字母缩略词的字段名称,请比较真实的蛇/烤肉串结果,而不是盲目地将简单的大写字母正则表达式应用于整个存储库。