下划线和匈牙利命名法

2012-01-31 15:13:24 +08:00
 freefcw
这几天不知道为什么总是在想这个东西。python推荐的是使用下划线,也有很多地方依然使用的是匈牙利命名法,比如微软和苹果。

Function Names

Function names should be lowercase, with words separated by underscores as necessary to improve readability.

mixedCase is allowed only in contexts where that's already the
prevailing style (e.g. threading.py), to retain backwards compatibility.

原文:http://www.python.org/dev/peps/pep-0008/

从某种角度来说,觉得下划线似乎确实是更适合阅读,像空格,在视觉上更可读一些。

this_is_readability_statement

thisIsReadabilityStatement?
9868 次点击
所在节点    Python
18 条回复
hzlzh
2012-01-31 15:19:09 +08:00
我只能告诉你,我做前端代码html+css用 下划线 _(top_box) 和 中横线 - (top-box)这两种多一些,js代码 匈牙利多一些(topBox)。

中横线的SEO效果非常好,WordPress官方就是这样的,
下划线 在编辑器中的快捷选择非常舒服,
至于匈牙利也就是驼峰,见楼下分析吧。

主要还是看编辑器种类和个人习惯以及项目协作要求。
est
2012-01-31 15:41:25 +08:00
几乎所有语言的源码里都不能用 中横线。因为 top-box 会被理解成变量top减去变量box。(前缀函数闭嘴)
qiayue
2012-01-31 15:46:38 +08:00
@est css中我常用中横线
heroicYang
2012-01-31 16:01:25 +08:00
大多数情况下使用的匈牙利命名法~C#和Java里面比较通用的命名规范!
但是在脚本语言里,我总觉着匈牙利命名看着不舒服。。
insraq
2012-01-31 16:26:29 +08:00
匈牙利命名(Hungarian notation)可不是驼峰(camelCase):http://zh.wikipedia.org/wiki/%E5%8C%88%E7%89%99%E5%88%A9%E5%91%BD%E5%90%8D%E6%B3%95

关于驼峰和下划线,每个语言都有自己的偏好,比如Java偏爱驼峰,而Ruby Python偏爱下划线,PHP则是比较混乱。
freefcw
2012-01-31 16:31:44 +08:00
@heroicYang 嗯,我也发现有这种趋向
freefcw
2012-01-31 16:32:57 +08:00
@insraq 囧,我混淆了这两种说法。
ssword
2012-01-31 16:35:49 +08:00
匈牙利命名法迂腐之极,必须死。
驼峰命名法则比较容易写出冗长的名字,个人不大喜欢。
lldong
2012-01-31 16:57:42 +08:00
@ssword 关于匈牙利命名法也不是一无是处,只是一直以来都被错用了而已,Joel on Software 上就有一片文章讲这个 http://www.joelonsoftware.com/articles/Wrong.html
darcy
2012-01-31 17:12:27 +08:00
喜好而已,只要在同一份源码中,同一个应用中保持一贯的规则,修改别人的代码就保持使用创建者的风格即可。(在文件或者项目中始终使用同一种编码风格)
icyflash
2012-01-31 17:23:05 +08:00
输下划线还要按shift切一下,不喜欢
另外LZ举的例也太夸张了点吧,很少见这么长的
mcfog
2012-01-31 17:40:17 +08:00
@icyflash 驼峰也要按Shift啊

个人感觉驼峰更适合动词词组而下划线更适合名词,所以倾向于方法/函数用驼峰,变量/属性用下划线,但是如果是已有代码/项目的话肯定是要遵守已有的约定
hzlzh
2012-01-31 18:17:37 +08:00
@est html css 都可以用 中横线 。。。难道不是语言?
hzlzh
2012-01-31 18:21:25 +08:00
那啥,更正一下,驼峰 和 匈牙利 不一样,两者是两个概念。详见 5楼 @insraq 给出的链接
darcy
2012-01-31 18:26:21 +08:00
@hzlzh html/css是标签和属性,还谈不上到语言层次。
chuck911
2012-01-31 18:37:21 +08:00
有神马好纠结的?
每个框架都有推荐的命名规范,入乡随俗就是了
有些大牛实在没啥研究的就在那讨论这种抽象的问题,我们有时间不如多搞点有意思的东西...
icyflash
2012-01-31 19:12:52 +08:00
@mcfog 不用啊。反正我个人是“敲”capslock切大小写,不喜欢“按”shift
lepture
2012-02-02 21:44:54 +08:00
@icyflash capslock 已經被換到了 ctrl 的地方,所以還是 shift 好用。

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

https://www.v2ex.com/t/26298

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

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

© 2021 V2EX