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

2020-03-26 22:58:32 +08:00
 FaiChou

18299 次点击
所在节点    程序员
127 条回复
JamesR
2020-03-28 12:11:59 +08:00
有个两全其美的办法,前期先用中文,后期开发完毕,和同事协商好后,全局替换下文本就好。
xuanwu
2020-03-28 12:24:00 +08:00
@JamesR "有个两全其美的办法,前期先用中文,后期开发完毕,和同事协商好后,全局替换下文本就好。"
——一直开发完毕都用的是中文的话(即使是一部分标识符),你不会想改回英文的。至少我听说的没有过。
shutongxinq
2020-03-28 14:31:20 +08:00
@xuanwu 支持老哥推广中文编程
vxyun
2020-03-30 10:56:43 +08:00
求配色
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
2020-03-31 14:55:28 +08:00
@tzengshinfu 关于思维切换,难道你们不是先写需求、设计文档吗?其中的业务相关术语难道都是用英文?
在我看来,标识符沿用文档中的术语顺其自然,而文档一般都是用的中文术语。
Mindjet
2020-08-25 19:45:24 +08:00
@learningman
搜狗输入法就支持,设置中英标点,这根本就不是问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/656566

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX