V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
FaiChou
V2EX  ›  程序员

第一次觉得变量名为中文可以接受

  •  
  •   FaiChou ·
    FaiChou · 2020-03-26 22:58:32 +08:00 · 16964 次点击
    这是一个创建于 1488 天前的主题,其中的信息可能已经有所发展或是发生改变。

    variables

    127 条回复    2020-08-25 19:45:24 +08:00
    1  2  
    0x11901
        101
    0x11901  
       2020-03-27 16:43:43 +08:00   ❤️ 1
    @realpg 我还有一个,棋牌里面的 [三带一] [飞机带一对] [顺子] [听牌] [天和]
    iriyave
        102
    iriyave  
       2020-03-27 17:11:02 +08:00   ❤️ 2
    @xsen 我工作中实际遇到的,二位三通阀,夹转联动,你找个合适的翻译?第一个是比较常见的,但是英文翻出来又臭又长,如果用阿拉伯数字,还是数字开头,第二个是一种夹持器和回转器的联动操作手柄,大佬您给翻一下看看能不能比中文言短意明?
    winterbells
        103
    winterbells  
       2020-03-27 17:24:51 +08:00   ❤️ 4
    英文高贵党又来了

    按实际情况用不就行了

    你回帖时不也打的中文吗
    ElmerZhang
        104
    ElmerZhang  
       2020-03-27 17:28:12 +08:00   ❤️ 1
    楼上某些脱离场景谈规范的都是耍流氓。凡事无绝对,“代码里不能使用中文”这条并不适用于所有场景。
    这段代码从格式上来看还是比较工整的,用中文变量名之前相信也是尝试过用英文的,实在太蛋疼了才用的中文。
    xsen
        105
    xsen  
       2020-03-27 17:33:14 +08:00
    已 block 主题,求求各位不要再 @我。你们喜欢用就用,我一点意见都没有
    @iriyave @rvkea
    sikong31
        106
    sikong31  
       2020-03-27 17:33:54 +08:00
    中文挺好,问题在于打字补全麻烦,一些难懂的常量用中文还是不错的
    函数用中文补全起来。。。
    jin5354
        107
    jin5354  
       2020-03-27 18:19:08 +08:00
    打起来打起来
    gimp
        108
    gimp  
       2020-03-27 18:26:34 +08:00
    这时候用拼音首字母缩写比较好,写好注释
    turi
        109
    turi  
       2020-03-27 18:54:53 +08:00
    @0x11901 确实,棋牌里面,特别是地方性棋牌,我都是用拼音 来的
    fromdark
        110
    fromdark  
       2020-03-27 19:21:30 +08:00   ❤️ 1
    其实英文变量名就是用英文表达的有语义的名词啊,只不过计算机是外国人发明的而已
    cai314494687
        111
    cai314494687  
       2020-03-27 20:26:58 +08:00
    切换输入法得累死
    ifxo
        112
    ifxo  
       2020-03-27 20:30:04 +08:00
    @0x11901 threeandone, planeandtwo, successive, listen, skywin
    baozijun
        113
    baozijun  
       2020-03-27 20:38:40 +08:00   ❤️ 2
    任何事情,只要说 绝对不能 怎么样的,要不就是傻子,要不就是 naive.
    zsdsz
        114
    zsdsz  
       2020-03-27 20:57:11 +08:00 via Android   ❤️ 1
    虽然我也反对中文变量名 但是看到有人在找优越感 也是呵呵了 都是下三流谁看不起谁啊 读几年书写几年代码就这德性了 连讨论都能这样 要真让这种人得势…
    xcstream
        115
    xcstream  
       2020-03-27 21:00:48 +08:00   ❤️ 1
    文化自信!
    fatestigma
        116
    fatestigma  
       2020-03-27 23:00:18 +08:00   ❤️ 1
    如果 IDE 能支持用拼音补全的话,感觉或许还可以?要不然真的切换输入法得累死
    DixCouleur
        117
    DixCouleur  
       2020-03-27 23:02:12 +08:00 via iPhone   ❤️ 1
    还有一些变量名比如:方天画戟,子母追魂胆等
    反正我是想不出来贴切的英文
    xuanwu
        118
    xuanwu  
       2020-03-28 00:34:31 +08:00
    @fatestigma #116
    shift 切换习惯了也还好。
    也可以保持中文输入法,英文单词回车(有时中文输入法还能提示英文拼写错误)。
    #13 有 vsc 拼音输入补全的演示。
    lijialong1313
        119
    lijialong1313  
       2020-03-28 01:27:26 +08:00
    中文变量的确可以接受,其实只要是修饰性的东西中文都可以接受,只不过呢……个人不建议采用中文,因为我认为用中文有时候会出现一些奇奇怪怪的问题。
    FaiChou
        120
    FaiChou  
    OP
       2020-03-28 10:03:02 +08:00
    @vxyun #93 Source Code Pro
    JamesR
        121
    JamesR  
       2020-03-28 12:11:59 +08:00
    有个两全其美的办法,前期先用中文,后期开发完毕,和同事协商好后,全局替换下文本就好。
    xuanwu
        122
    xuanwu  
       2020-03-28 12:24:00 +08:00
    @JamesR "有个两全其美的办法,前期先用中文,后期开发完毕,和同事协商好后,全局替换下文本就好。"
    ——一直开发完毕都用的是中文的话(即使是一部分标识符),你不会想改回英文的。至少我听说的没有过。
    shutongxinq
        123
    shutongxinq  
       2020-03-28 14:31:20 +08:00   ❤️ 1
    @xuanwu 支持老哥推广中文编程
    vxyun
        124
    vxyun  
       2020-03-30 10:56:43 +08:00
    求配色
    tzengshinfu
        125
    tzengshinfu  
       2020-03-31 10:19:58 +08:00
    前阵子帮朋友除错公司自行开发的 IT 系统,
    个人感想是:
    「如果是使用以英文为主的开发语言框架还是尽量用英文命名变数。」

    那个 IT 系统大部分业务逻辑都在资料库,
    而从数据库(表格 /字段 /预存程序)、开发语言框架(常数 /变数 /函数名称)
    全部都是中文命名,而且变数没有任何注解。

    我发现使用中文命名变数花费的成本会有:

    1.思维切换
    //函数
    public string 手动线上更新 Button_Click(object 传值, EventArgs 事件) {
    //实作
    }

    //预存程序
    CREATE procedure [dbo].[proc_权限复制] (@目的帐号 nvarchar(50)='AAAA') as
    delete from [网页权限] where [工号]=@目的帐号;
    select * from #temp;

    //Linq
    var 帐号 = 资料库.使用者帐号.Where(帐号=>帐号.代号 == 使用者代号).FirstOrDefault();

    要在符号文字(英文字母、宣告关键字、等号及括号)与图形文字(中文字)之间切换,要一段时间才能适应。

    2.命名风格
    因为中文字都是统一高度,
    不管是常数或变数一眼望去全部就像常数;
    而英文字母本身有大小写,
    这点比较能区分。

    3.辨识度
    英文字母构造比较简单,
    有类似的字母也可以用一些编程专用字体去区分 0/O/I/l/1 ;
    而有缩放程式码需求的场景,
    在缩小时如果有较复杂的中文字(如霸 /壸 /壹等)要花一点眼力判断,
    或用到一些相似中文字(日 /曰)会有混淆的可能性。

    4.输入补完
    中文没办法输入一个键就能自动带出变数清单。

    所以目前我个人还是把变数当成是一种占位符号,
    变数本身名称会写的简短,而详细的意义则由备注取得,
    如:
    /// <summary>
    /// 订单金额=单价 x 数量
    /// </summary>
    public decimal orderAmount

    其实中文命名只是要花费一些思维改变适应的成本,
    最重要的是一定要写上备注在变数宣告跟数据库字段,不写备注就该打。
    xuanwu
        126
    xuanwu  
       2020-03-31 14:55:28 +08:00
    @tzengshinfu 关于思维切换,难道你们不是先写需求、设计文档吗?其中的业务相关术语难道都是用英文?
    在我看来,标识符沿用文档中的术语顺其自然,而文档一般都是用的中文术语。
    Mindjet
        127
    Mindjet  
       2020-08-25 19:45:24 +08:00
    @learningman
    搜狗输入法就支持,设置中英标点,这根本就不是问题。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   6006 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 06:15 · PVG 14:15 · LAX 23:15 · JFK 02:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.