V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
zjsxwc
V2EX  ›  程序员

感觉用带声调与分词的拼音来命名变量也还行

  •  
  •   zjsxwc ·
    zjsxwc · 2023-03-16 10:22:53 +08:00 · 946 次点击
    这是一个创建于 636 天前的主题,其中的信息可能已经有所发展或是发生改变。

    行业专业术语,不知道怎么命名,

    于是一股脑全用带声调( 1234 分别代表āáǎà)以及下划线_分词后的拼音了,

    术语 变量名 snake 变量名 camel
    经纱 jing1sha1 jing1sha1
    纬捻 wei3nian3 wei3nian3
    跟单人 gen1dan1_ren2 gen1dan1Ren2
    压烫人 ya1tang4_ren2 ya1tang4Ren2
    衬纸米数 chen4zhi3_mi3shu4 chen4zhi3Mi3shu4
    排单米数 pai2dan1_mi3shu4 pai2dan1Mi3shu4
    返单要求 fan3dan1_yao1qiu2 fan3dan1Yao1qiu2

    感觉用带声调与分词的拼音来命名变量也还行,

    IDE 也能通过输入拼音每个字拼音首字母简写来提示补全。

    第 1 条附言  ·  2023-07-14 14:56:37 +08:00

    已经用 感觉用带声调与分词的拼音来命名变量 做了6个项目,体验很ok,

    我写了个命令行程序专门来把 汉字 转换为 数字标记声调的拼音

    https://github.com/zjsxwc/ChineseToNumericPinyin

    ./ChineseToNumericPinyin 飞龙_在天
    `飞龙_在天 ` 的转换结果是: fei1long2_zai4tian1 
    
    cpsony
        1
    cpsony  
       2023-03-16 10:40:10 +08:00
    那遇到经纱 1 ,经纱 2 呢? jing1sha11 ,jing1sha12 ?
    zjsxwc
        2
    zjsxwc  
    OP
       2023-03-16 10:47:22 +08:00
    @cpsony 额,还没碰到这种情况,我应该会多个下划线_来分词,比如
    经纱 1 ,经纱 2 ====> jing1sha1_1 ,jing1sha1_2
    NewYear
        3
    NewYear  
       2023-03-16 11:28:02 +08:00
    纱算法=sha1suan4fa3=sha1 算法。
    zjsxwc
        4
    zjsxwc  
    OP
       2023-03-16 11:36:09 +08:00 via Android
    @NewYear
    应该很少会有中西结合的业务术语,
    有的话只能英文的用大写字母了,比如
    SHA1_suan4fa3
    nothingistrue
        5
    nothingistrue  
       2023-03-16 12:37:48 +08:00
    恭喜你又发明了一种汉字表音的分支方法。然并卵。1 、2 、3 、4 跟声调不具备所见即所得的关系,读的时候需要人脑多加一部翻译处理,所以你这个读起来,可能还没 jing_sha jingSha 这种无声调但分割更明显的方式更快。
    zjsxwc
        6
    zjsxwc  
    OP
       2023-03-16 13:05:11 +08:00
    @nothingistrue
    看习惯了还是可以的,
    无声调的缺点是同拼音但不同声调的词语容易歧义,这种歧义的误杀还特别容易碰到。

    比如
    “信号”,“星号”
    “视频”,“食品”
    zjsxwc
        7
    zjsxwc  
    OP
       2023-03-16 13:32:36 +08:00
    @nothingistrue
    每个中文字拼音都分割,也会引起更多的歧义比如:

    “热得快_炸了”与 “热得_快炸了”
    “新老师_生前_去操场”与“新老_师生_前去操场”
    BingoXuan
        8
    BingoXuan  
       2023-03-16 13:54:11 +08:00
    大部分语言都支持 unicode 生命变量的,有时候用 emoji 表意更方便
    zjsxwc
        9
    zjsxwc  
    OP
       2023-03-16 14:15:35 +08:00
    @BingoXuan
    我也考虑过用中文+中文分词的方式命名变量,比如 “投资者_今年_回报”、“用户_余额”
    但碰到这些问题:
    1 有些 ORM 不支持数据库表中文 column 到类的 field 相互转换。
    2 曾经碰到过 ssh 过去改代码,vim 改到一半断网,重新打开继续编辑发现删了半( 1/3 或 2/3 )个中文,导致难以跟踪的 bug 。
    3 IDE 输入麻烦,自动补全要多按好多键盘。
    4 json 有时候会显示 \u 后跟四个字符 以 UTF-16 编码来表示一个 unicode 中文,而不是直接显示中文,这个就很难受,不能一目了然看清是啥。
    Kilerd
        10
    Kilerd  
       2023-03-16 14:30:15 +08:00
    见鬼,你这玩意被前几年大吹特吹的中文编程还诡异。
    joApioVVx4M4X6Rf
        11
    joApioVVx4M4X6Rf  
       2023-07-19 10:45:04 +08:00
    最近也遇到这个问题了,命名真难受,还是拼音香
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5494 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 01:56 · PVG 09:56 · LAX 17:56 · JFK 20:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.