感觉用带声调与分词的拼音来命名变量也还行 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
zjsxwc

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

  •  
  •   zjsxwc
    zjsxwc 2023 年 3 月 16 日 1346 次点击
    这是一个创建于 1135 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    于是一股脑全用带声调( 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 年 7 月 14 日

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

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

    https://github.com/zjsxwc/ChineseToNumericPinyin

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

    比如
    “信号”,“星号”
    “视频”,“食品”
    zjsxwc
        7
    zjsxwc  
    OP
       2023 年 3 月 16 日
    @nothingistrue
    每个中文字拼音都分割,也会引起更多的歧义比如:

    “热得快_炸了”与 “热得_快炸了”
    “新老师_生前_去操场”与“新老_师生_前去操场”
    BingoXuan
        8
    BingoXuan  
       2023 年 3 月 16 日
    大部分语言都支持 unicode 生命变量的,有时候用 emoji 表意更方便
    zjsxwc
        9
    zjsxwc  
    OP
       2023 年 3 月 16 日
    @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 年 3 月 16 日
    见鬼,你这玩意被前几年大吹特吹的中文编程还诡异。
    joApioVVx4M4X6Rf
        11
    joApioVVx4M4X6Rf  
       2023 年 7 月 19 日
    最近也遇到这个问题了,命名真难受,还是拼音香
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1050 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 177ms UTC 23:07 PVG 07:07 LAX 16:07 JFK 19:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86