记得有文章说, 取名字是最难的事之一, 大家有什么经验分享吗

2023-09-10 16:22:55 +08:00
 iorilu

有时候写一个函数

函数逻辑都想好了

但名字还没想出来

手放在键盘上, 无从下手, 有点急躁

毕竟知道, 名字也不能瞎凑合, 虽然现在 ide 改名字也不是什么难事

难经常还是要为想名字耽误下

我现在简单遵循几个原则

  1. 风格统一, 都用英文(或拼音也行, 但不能混用)
  2. 常用得名字, 都用约定俗称得, 不折腾(比如 username , 有可能有人用 user_name , 但自己应该所有项目统一)
  3. 不追求完美名字, 毕竟英文词汇有限, 用几个单词也行, 但不超过 3 个单词
  4. 统一用单数名词, 要不然有时候到底加 s 还是什么其他得变形又得想

暂时先想到这么多, 大家可以讨论补充下

6133 次点击
所在节点    程序员
57 条回复
imsoso
2023-09-11 10:12:56 +08:00
只看标题就回复
weilongs
2023-09-11 10:16:18 +08:00
起名字这事,按照公司规定套路避免重复、尽量说明白就好了。实在不行就 AI 给帮你吧。
sepwolves
2023-09-11 10:19:00 +08:00
@archxm 明显你只看标题不看全文。
itechnology
2023-09-11 10:19:48 +08:00
#4 #8 #12 #30 是只看了个标题就来回复吧
zhuisui
2023-09-11 10:22:33 +08:00
起名,不给是给变量、函数还是类、模块,这件事背后反映的,是你对这里业务的了解程度和抽象程度。这是上面回答几乎所有都没有提到的部分。
除了有个提到用 top-down 的方式去起名,这代表的是面向领域(业务)的解决方案编程(起名),是在难以做到面向领域编程时的最优选择。

跨越这一步之后,剩下的就是用中文来生成英文了。这里的问题是,翻译会给出一些近义词,英语不好的话,就会选到含义其实不合适的词。
比如简单的例子,declaration 和 definition ,work 、job 、task ,time 、duration 、date 、period ,size 、count 、amount 、length 之类的

最后才是命名风格的问题,驼峰还是下划线,无所谓,这步是最细枝末节的事情。
jatsz
2023-09-11 10:28:13 +08:00
我的经验是:以目标命令,而不是以实现命名。

启发点是:我给公司写的一个 CI 监控和部署,我就起了 CIMonitor ,通过来监控 CI 来实现自动部署。
后来一个同事指出其实这个 CIMonitor 真正的目的是部署,所以不如叫做 deployer 。

从这个点,让我意识到,名字要传达目的,而不是实现(做法)。
zackzergzeng
2023-09-11 10:32:20 +08:00
github copilot 会补全名字的,有会员可以试下
chenzw2
2023-09-11 11:07:53 +08:00
aababc
2023-09-11 11:29:42 +08:00
@jatsz 确实,很多人会把实现的细节体现在名字上
jatsz
2023-09-11 12:05:30 +08:00
在补充一下,以目标命名的好处。
- 传达目的,这个通常是稳定的抽象,避免 X-Y 问题。
- 给自己的实现带来灵活性,修改实现的时候不必修改名字。
des
2023-09-11 12:23:29 +08:00
@corcre 说到这个就不得不提一下苹果的接口了,名字都是巨长无比
MFWT
2023-09-11 12:46:21 +08:00
@veike 道理是相通的,你得看得出来这玩意在干啥,不然取名字没意义,写 aaabbb 就好
MoYi123
2023-09-11 15:16:23 +08:00
说明你的函数逻辑不清楚 ,需要用很长一段话才能说清楚在干什么, 建议重写.
alleluya
2023-09-11 15:38:04 +08:00
@aulayli 我没点进来以前也以为是给人起名字...🤣
yhm2046
2023-09-11 15:54:45 +08:00
有一本书叫[代码大全]大部分程序员常见问题都有说明,推荐看看,很有用
Qiss
2023-09-11 16:03:08 +08:00
确实,我家要不是祖先托梦,我想不出起啥名字
allanpk716
2023-09-11 18:23:57 +08:00
计算生辰八字五行属性的算法,非原创,只是用 C 艹 实现。我不迷信,但是给娃取名的时候我也用来玩了。https://github.com/allanpk716/BaziEval

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

https://tanronggui.xyz/t/972474

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

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

© 2021 V2EX