函数取名纠结综合症

2014-10-21 15:49:46 +08:00
 wangccddaa
每次要给工程,类,函数取个合适的名称的时候就特别纠结,想了好几个名字都觉得不能很好表达这个类(函数)的作用,大家都是怎么解决这个问题的?
4074 次点击
所在节点    问与答
26 条回复
fangzhzh
2014-10-21 15:58:08 +08:00
学好英语
angelface
2014-10-21 16:02:38 +08:00
jsonline
2014-10-21 16:02:57 +08:00
备好字典
drush
2014-10-21 16:06:35 +08:00
就算英语好,遇到 object_get() 跟 get_object() 这两种风格都够你纠结一番。
zooeys
2014-10-21 16:28:20 +08:00
不是有规范么? 按照规范来~~~
chmlai
2014-10-21 16:33:36 +08:00
Naming is hard; 老外都这么说.
sojingle
2014-10-21 16:39:27 +08:00
不去试图取个短名字的话,就会容易很多
kmvan
2014-10-21 16:48:19 +08:00
@drush 就算英语好,遇到 object_get() 跟 get_object() 这两种风格都够你纠结一番。

说来也是,遇到这情况怎么样解决呢?
jsonline
2014-10-21 16:48:55 +08:00
@kmvan 函数以动词开头,有啥好纠结的。
Doubear
2014-10-21 17:05:42 +08:00
@jsonline 哈哈 正解~~~

我一般命名就是动作在前,中间一线,后边驼峰、、、、如:get_userData()
也有时候是直接全部小写,每个词中间一线、、、、、
蛋疼
drush
2014-10-21 17:07:07 +08:00
@jsonline

我也知函数以动词开头, 但很多其他cms ,框架不按这个的。

例如在 drupal 里,很多都是动词结尾的, 如 node_load 等。
Laravel 里的 helper function 也是,array_fetch() array_get() ....
kchum
2014-10-21 17:08:09 +08:00
@Doubear 下划线跟驼峰都上,有点看不习惯啊~~
curiousjude
2014-10-21 17:22:30 +08:00
这个世界性难题。

就我个人经验而言,遵循规范(语言层面,框架层面等等都可以Google到比较通用的规范)就可以解决大部分问题了。同时自己也做一下积累,建个自己的词汇库,这在涉及到业务方面的命名时,很有效果。
kmvan
2014-10-21 17:22:44 +08:00
@jsonline 函数以动词开头,有啥好纠结的。

php也不是的吧,例如 ini_set()...
sunocean
2014-10-21 17:49:30 +08:00
前缀+动词+域(可选)+名词+加写好注释
angelface
2014-10-21 18:22:19 +08:00
@drush 定好自己的规范, 至于别人怎么用, 那就管不了了。
wangccddaa
2014-10-21 18:28:02 +08:00
@curiousjude 是个好方法~
mhycy
2014-10-21 18:46:47 +08:00
动词在后便与排序
动词在前便与阅读
curiousjude
2014-10-21 19:10:15 +08:00
我觉得要从「从函数名称一眼就可以看出函数功能」,需要一定的积累。

一些常见的动作,最好使用大家普遍使用的,比如入队列,用「enqueue」,而不要用「addToQueue」之类的。

另一方面,要明确函数的功能,举个反例,我们项目中有个方法是做迁移游客账号数据到会员账号的,结果命名这方法的人理解为同步了,于是命名为「syncUserData」了,这样光看名字就会误解它的功能了,我觉得准确的描述应该是「migrateUserData」.
jsonline
2014-10-21 19:55:41 +08:00
@kmvan 有些项目一开始的命名就是一团糟,神仙也救不了。

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

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

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

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

© 2021 V2EX