脑洞大开:能否建设一个帮助程序员起变量名的垂直搜索引擎

2015-08-10 10:09:13 +08:00
 jesse6679

本帖是从《放过那些程序猿,写文档的事让我们来》衍生出来的,因为原帖楼已经歪了,所以专门新辟一个帖子讨论。

说到被变量起名,还真是一件麻烦的事情。如果变量名起得乱七八糟,代码的可读性会下降很多。
如果用英文全拼吧,表意是很清晰,但是变量名会超长;如果汉语拼音缩写吧,变量名是短了,但总感觉土的掉渣;如果用随机字母拼成的变量名吧,还得写注释记录变量含义,如果漏写了注释,一个月后自己也休想看得懂了;还有变量风格到底是用驼峰命名法,还是用下划线分割,常常很纠结。

所以,作为一个有代码洁癖的码农,每次写程序的时候都要为给变量起名伤透脑筋。最不能忍受的是写HTML和CSS,每个DIV都得起一个名,弄的不好和Bootstrap里的重名,页面就各种错乱斯巴达了。

以前还以为只有我有这种小众烦恼的,在上一个帖子里面也有好几个人提出来,也有类似的“变量命名强迫癌”,原来我并不孤独。

我在考虑,有没有可能建设一个专门帮助程序员给变量起名字的垂直搜索引擎,当程序员输入心中的关键字后,搜索引擎给出与此相关的热门变量名称。
搜索引擎的模式大致上可以分为两类:
1、通过爬虫爬取github网站上的开源代码,搜集其中的海量变量名,然后通过数据清洗、分析、聚类提取出最热门、最常用、最优质、表意最清晰的变量名称供搜索用。
2、把常见的变量命名规则做成搜索策略,来自动构建变量名
3、记录搜索后,程序员选中了那些变量名,只要用户足够多,就能够统计出变量名中的高频词汇。

当然要做这样一个东西,难度是相当大的,仅人才要求这一项就很难搞定。开发团队需要具备开发爬虫经验,同时还要精通搜索算法,要找到这样的开发者谈何容易。如果要做的话,只能把这个项目做成开源项目,零门槛吸引各路技术极客的加入,远程线上协作。

还有一个难题就是投入产出比。需要投入这么大的开发量做出来的产品,到底有多少程序员会用?是不是真的能解决他们的问题?我心里面没有底。

以上只是我个人脑洞大开的想法,欢迎大家和我争论。
如果你也有为变量起名的烦恼,请留言+1,我想统计一下需求。
如果你有更高明的解决方案,欢迎留言论战。
如果你是爬虫、数据分析和搜索算法界的高人大牛,欢迎和我联系,进一步讨论: kepler6679@163.com

4487 次点击
所在节点    奇思妙想
31 条回复
IamI
2015-08-10 10:35:06 +08:00
在有现代 IDE 的自动提示的前提下,我是觉得变量名长就由它长吧,再长也没什么所谓…
wezzard
2015-08-10 10:41:18 +08:00
i_think_a_variable_name_could_not_be_too_long_because_mother_has_said_that_it_is_not_good_that_a_vaiable_is_fucking_long.
lingo233
2015-08-10 10:45:27 +08:00
那就面向汉字编程吧
ariestiger
2015-08-10 10:54:45 +08:00
用英文全称 + 约定俗成的简写足矣。
如果是面向对象语言,一个真正的类(不是那种只有静态方法的 helper, util 类)其实, 一个方法就是一层 namespace,实例变量,方法变量结合这些 namespace context 就可以很好的理解了。
变量名长根本不是个问题,至少不是个多起眼的问题,spring 里面四五个单词,二三十个字符的类名变量多了,但这只会让代码更容易理解。
使用拼音,拼音首字母简写是要绝对禁止的,如果不禁止,那我就要离职。
真正在起名时面临的问题是,英文太差,找不到合适的词来给变量命名,随意使用缩写,缩写简写混用等。
比如,刚刚十分钟前,我还和人讨论数据库结构,起的一堆表名已经让人头疼,表的权限还没给我,我还没去细看这些列名是怎么样的,但估计也是乱成一坨:
md_security_stg: security 一般是做和安全相关的意义来理解,虽然也有有价证券的意思,但这里用来保存私募基金的相关信息,md 是什么意思叫? master data, 缩写, stg 呢? stage, 搞得我还真只能拿张纸和笔来一个个记对应关系。
pfund_nav: 私募基金净值, private fund 一个简写一个全写已经不能容忍, 你还当中不用来下划线来区分一下, 还有, 净值用 nav 是个什么意思? 一眼看上去绝逼是 navigation 的简写, net value 简写也不是这么个写法啊。
xujif
2015-08-10 11:08:16 +08:00
@ariestiger 基金里面确实nav默认表示净值,至少我见过好几套项目里都这么用。 不同的缩写在不同的行业有不同的默认含义正常的
metrue
2015-08-10 11:13:01 +08:00
变量都取不好,还写什么代码。
loading
2015-08-10 11:17:17 +08:00
xing4_ming2
xue2_hao4

现在我都是拼音加音调,用起来挺好~233
sobigfish
2015-08-10 11:18:28 +08:00
那还用什么web搜索引擎,直接代码片段管理工具就OK啊
jesse6679
2015-08-10 11:19:58 +08:00
@wezzard 哈哈,你太懂英式幽默了,好冷
em70
2015-08-10 11:28:56 +08:00
这个项目没什么难度啊,爬虫和搜索都是迷你量级,还“仅人才要求这一项就很难搞定",产品出来用得人不会太多,但你不如借此机会把Python水平提高一下
ariestiger
2015-08-10 11:35:46 +08:00
@xujif 有可能,刚入这一行,真要是约定俗成,也就可以接受了,不过其他的问题仍然让人觉得头疼。
tshwangq
2015-08-10 11:36:34 +08:00
妈妈再也不用担心我不会取变量名了
master13
2015-08-10 11:40:39 +08:00
- -我能说你是实在是闲的没事干了吗
ca1123
2015-08-10 11:55:02 +08:00
用汉字就好了 啊哈哈哈哈哈哈哈哈
tabris17
2015-08-10 11:56:45 +08:00
我宁愿用中文变量名也不用拼音做变量名
FrankFang128
2015-08-10 11:59:23 +08:00
一个项目需要有项目字典
linescape
2015-08-10 13:09:08 +08:00
PHP是世界上最好的语言不是胡说的,不信你试试 $中文
BOYPT
2015-08-10 13:23:29 +08:00
@xujif 对呢,我最近自己做了个小网页app来跟踪新浪api的基金净值,就遇到了net value跟navigation的缩写撞上了……
GPU
2015-08-10 13:28:35 +08:00
好醉好醉,英语不好起产量名都是用谷歌翻译的
azurefire
2015-08-10 13:28:57 +08:00
安利一下http://schema.org/docs/full.html

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

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

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

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

© 2021 V2EX