有时候写一个函数
函数逻辑都想好了
但名字还没想出来
手放在键盘上, 无从下手, 有点急躁
毕竟知道, 名字也不能瞎凑合, 虽然现在 ide 改名字也不是什么难事
难经常还是要为想名字耽误下
我现在简单遵循几个原则
暂时先想到这么多, 大家可以讨论补充下
1
1map 2023-09-10 16:55:43 +08:00
用 chatgpt 试试
|
2
xiaoz 2023-09-10 17:13:02 +08:00 via Android 1
为此,我用 AI 写了一个工具,每次我告诉他中文,自动给我 3 个变量作为参考。见 https://asbot.imgurl.ink/userole/17
|
3
lsry 2023-09-10 17:30:53 +08:00
|
4
archxm 2023-09-10 17:40:38 +08:00
主要是要避讳,不要和长辈已有的字重合。
其他都好说,选来选去的 |
7
MFWT 2023-09-10 17:49:26 +08:00 1
我一般是:
isAdmin isUserLogined getSomething setSomething 总结起来是:is/get/set/have/can 等 + 驼峰命名法的对象名 举例就是,比如我需要一个获取用户订单号的函数,我会写:getUserOrderNumber ,尽量写明白,避免日后麻烦 |
8
chanwang 2023-09-10 18:16:49 +08:00 via Android
找个算命的算一下缺什么,然后确定偏旁部首。再凑个好听一点的,满足您期望的文字。或者先给暂定字母,等娃要上学了再改。或者干脆搞个字典,让娃自己翻,翻两页凑俩字得了。
|
9
taotaodaddy 2023-09-10 19:13:15 +08:00
这个难题真的已经被 chatGPT 解决了
|
10
hsfzxjy 2023-09-10 19:14:54 +08:00 via Android
让我看看楼里有几个人不看正文🤣🤣🤣
|
11
des 2023-09-10 19:15:19 +08:00 1
要不试试这个,看看别人都是怎么命名的 https://i18ns.com
|
12
stephniebuewke 2023-09-10 19:33:23 +08:00
这是一个开源的利用古诗文起名的项目 https://github.com/holynova/gushi_namer
|
13
anoninz 2023-09-10 19:39:37 +08:00
如果是个人项目,可以试试用中文命名变量和函数名。
对于公司项目/多人协作的项目,反正我所在的公司现在对于枚举值已经可以接受中文命名了。。。 |
15
yaott2020 2023-09-10 19:44:29 +08:00 via Android
#4 #8 #12 不看正文🤣
|
16
kingjpa 2023-09-10 19:47:40 +08:00
a1 a2 a3 a4 a5 isno isyes noyes nook isok ,咋拗口咋来
|
17
chanwang 2023-09-10 19:49:53 +08:00 via Android
@yaott2020 通常只看标题🌚。
更加建议取个更好一点的标题参照新闻的标题。看完标题就知道想说什么……(死鸭子嘴硬) |
18
xavierchow 2023-09-10 22:19:21 +08:00 2
> 函数逻辑都想好了
> 但名字还没想出来 提供一个思路,我个人比较喜欢 top-down 的方式去写函数,而不是先去想逻辑。 即,先试图用一句话去描述这个函数是干什么的,可以不要管怎么实现( how ), 最好能在概括的时候思考一下函数的输入输出,只要你一句短语说的清楚的话,名字也就容易起了。 如果先去想逻辑和具体实现的话,很容易形成一个局面,就是你最后定义函数是为了包装一堆可能 原本不该在一个维度的逻辑代码,这时候取名字就很难了。 换句话说,发现函数难以起名的时候,可能要思考一下是不是应该转换一下思路,做一下拆解或者合并; 至于命名风格问题,各个语言和框架都有行业上比较成熟的惯例,加上 lint 就可以了。 |
19
yafoo 2023-09-10 22:25:05 +08:00 via Android 1
以为给孩子取名呢。为了给孩子取名,焦虑了半年多
|
20
hefish 2023-09-10 22:25:10 +08:00
《代码大全》上有推荐,采用动宾结构, get_XXX, make_XXX, check_XXX ,load_XXX ,fuck_XXX ....
|
21
followNew 2023-09-10 23:18:19 +08:00 via iPhone
以函数的结果为导向,命名一个动宾短语。
doSomething |
22
kneo 2023-09-11 00:22:00 +08:00 via Android
取名=>命名
|
25
AkiraZhao 2023-09-11 02:40:11 +08:00 via Android
正好你可以看看 Stripe 的前 CEO 是如何起 Stripe 这个名字的: https://www.quora.com/How-did-Stripe-come-up-with-its-name/answer/Greg-Brockman
|
26
leimao 2023-09-11 02:41:50 +08:00 via iPhone
老外就没这烦恼,直接圣经里找
|
27
xiamy1314 2023-09-11 08:26:46 +08:00
各聊各的。
|
28
xiaoz 2023-09-11 08:52:38 +08:00 via Android
@vhwwls #23 ,是的,需要注册才能使用。我只是提供一个思路,其实可以自己用 AI 的 API 自己写个工具就行了。
|
29
yxzblue 2023-09-11 08:54:56 +08:00
取名字是最难的事,那干脆别写逻辑了。光想怎么取名吧
|
30
Befehishaber 2023-09-11 09:23:31 +08:00
女诗经 男楚辞
|
31
corcre 2023-09-11 09:27:31 +08:00
我也碰到过, 我们乱七八糟的数据每个系统都存一份, 不说明系统的话还要翻代码看看数据从哪里过来的, 然后不加上点条件还容易重复, 最后取数的时候就有可能变成一长串(getXXXDataFromERPBySOAndPartNo)之类的...
|
32
encro 2023-09-11 09:34:42 +08:00
|
33
encro 2023-09-11 09:35:33 +08:00
这东西,最快的方法就是学习国外同类项目优秀的源码和数据库设计。
|
34
v23xowen 2023-09-11 09:43:30 +08:00
跨服聊天是吧
|
35
Tengdw 2023-09-11 09:44:35 +08:00
看看有多少人是看到帖子标题点进来不看正文直接回复的
|
36
dif 2023-09-11 09:50:29 +08:00
随便区,有个关键字知道是干啥的都行,你敢信我都见过 name 也要缩写为 nme 。
|
37
ruoxie 2023-09-11 09:51:49 +08:00
chatgpt 啊
{ "filters": [ { "component": "input", "key": "决算单状态", "label": "决算单状态", "placeholder": "请选择" }, { "component": "input", "key": "主合同编号", "label": "主合同编号", "placeholder": "请输入" }, { "component": "input", "key": "客户名称", "label": "客户名称", "placeholder": "请输入" }, { "component": "input", "key": "客户手机号", "label": "客户手机号", "placeholder": "请输入" }, { "component": "input", "key": "工程管理", "label": "工程管理", "placeholder": "请输入" } ], "columns": [ { "slot": false, "title": "决算单状态", "dataIndex": "决算单状态", "key": "决算单状态" }, { "slot": false, "title": "主合同编号", "dataIndex": "主合同编号", "key": "主合同编号" }, { "slot": false, "title": "客户名称", "dataIndex": "客户名称", "key": "客户名称" }, { "slot": false, "title": "客户手机号", "dataIndex": "客户手机号", "key": "客户手机号" }, { "slot": false, "title": "房屋地址", "dataIndex": "房屋地址", "key": "房屋地址" }, { "slot": false, "title": "工程管理", "dataIndex": "工程管理", "key": "工程管理" } ], "pagination": { "show": true, "page": "page", "size": "size", "total": "result.total" }, "includeModifyModal": false, "fetchName": "fetchTableList", "result": "[\"result\"][\"records\"]", "serviceName": "getTableList" } |
38
ruoxie 2023-09-11 09:52:10 +08:00
处理后
{ "filters": [ { "component": "input", "key": "finalStatementStatus", "label": "决算单状态", "placeholder": "请选择" }, { "component": "input", "key": "mainContractNo", "label": "主合同编号", "placeholder": "请输入" }, { "component": "input", "key": "customerName", "label": "客户名称", "placeholder": "请输入" }, { "component": "input", "key": "customerMobile", "label": "客户手机号", "placeholder": "请输入" }, { "component": "input", "key": "projectManagement", "label": "工程管理", "placeholder": "请输入" } ], "columns": [ { "slot": false, "title": "决算单状态", "dataIndex": "finalStatementStatus", "key": "finalStatementStatus" }, { "slot": false, "title": "主合同编号", "dataIndex": "mainContractNo", "key": "mainContractNo" }, { "slot": false, "title": "客户名称", "dataIndex": "customerName", "key": "customerName" }, { "slot": false, "title": "客户手机号", "dataIndex": "customerMobile", "key": "customerMobile" }, { "slot": false, "title": "房屋地址", "dataIndex": "houseAddress", "key": "houseAddress" }, { "slot": false, "title": "工程管理", "dataIndex": "projectManagement", "key": "projectManagement" } ], "pagination": { "show": true, "page": "page", "size": "size", "total": "result.total" }, "includeModifyModal": false, "fetchName": "fetchTableList", "result": "[\"result\"][\"records\"]", "serviceName": "getTableList" } |
39
dynastysea 2023-09-11 10:11:53 +08:00
好听,易记,好写就行了。。有些家长装 13 ,给孩子取了巨复杂的名字,又是生僻字,又是复杂笔画,百害而无一利
|
40
imsoso 2023-09-11 10:12:43 +08:00
哈哈,我就看看 v2 有多少是有娃的
|
41
imsoso 2023-09-11 10:12:56 +08:00
只看标题就回复
|
42
weilongs 2023-09-11 10:16:18 +08:00
起名字这事,按照公司规定套路避免重复、尽量说明白就好了。实在不行就 AI 给帮你吧。
|
44
itechnology 2023-09-11 10:19:48 +08:00
#4 #8 #12 #30 是只看了个标题就来回复吧
|
45
zhuisui 2023-09-11 10:22:33 +08:00 2
起名,不给是给变量、函数还是类、模块,这件事背后反映的,是你对这里业务的了解程度和抽象程度。这是上面回答几乎所有都没有提到的部分。
除了有个提到用 top-down 的方式去起名,这代表的是面向领域(业务)的解决方案编程(起名),是在难以做到面向领域编程时的最优选择。 跨越这一步之后,剩下的就是用中文来生成英文了。这里的问题是,翻译会给出一些近义词,英语不好的话,就会选到含义其实不合适的词。 比如简单的例子,declaration 和 definition ,work 、job 、task ,time 、duration 、date 、period ,size 、count 、amount 、length 之类的 最后才是命名风格的问题,驼峰还是下划线,无所谓,这步是最细枝末节的事情。 |
46
jatsz 2023-09-11 10:28:13 +08:00 2
我的经验是:以目标命令,而不是以实现命名。
启发点是:我给公司写的一个 CI 监控和部署,我就起了 CIMonitor ,通过来监控 CI 来实现自动部署。 后来一个同事指出其实这个 CIMonitor 真正的目的是部署,所以不如叫做 deployer 。 从这个点,让我意识到,名字要传达目的,而不是实现(做法)。 |
47
zackzergzeng 2023-09-11 10:32:20 +08:00
github copilot 会补全名字的,有会员可以试下
|
48
chenzw2 2023-09-11 11:07:53 +08:00
|
50
jatsz 2023-09-11 12:05:30 +08:00
在补充一下,以目标命名的好处。
- 传达目的,这个通常是稳定的抽象,避免 X-Y 问题。 - 给自己的实现带来灵活性,修改实现的时候不必修改名字。 |
53
MoYi123 2023-09-11 15:16:23 +08:00
说明你的函数逻辑不清楚 ,需要用很长一段话才能说清楚在干什么, 建议重写.
|
55
yhm2046 2023-09-11 15:54:45 +08:00 via Android
有一本书叫[代码大全]大部分程序员常见问题都有说明,推荐看看,很有用
|
56
Qiss 2023-09-11 16:03:08 +08:00
确实,我家要不是祖先托梦,我想不出起啥名字
|
57
allanpk716 2023-09-11 18:23:57 +08:00 via iPhone
计算生辰八字五行属性的算法,非原创,只是用 C 艹 实现。我不迷信,但是给娃取名的时候我也用来玩了。https://github.com/allanpk716/BaziEval
|