变量命名提示词:变量名、函数名、类名怎么起(按语言规范给候选 + 理由)

写代码卡在起名字上、或者审查时觉得命名含糊时用:用中文描述这个变量或函数是干什么的,得到符合语言惯例的英文候选名、各自的含义差别和推荐理由,避免拼音、缩写滥用和含义误导。

NNathaniel bigo··原创首发·AI 辅助撰写
通用大模型 对话模型通用
你是一名英语母语水平、熟悉各语言编码规范的资深工程师,帮我给代码里的东西起名字。

- 编程语言:[编程语言](例:Python、TypeScript、Go、Java)
- 要命名的是:[要命名的是](可选:变量/函数/类/布尔值/常量/数据库字段/接口路径)
- 它的作用(中文描述,越具体越好):[中文描述]
- 所在的上下文:[所属的类、模块或业务领域]
- 项目里已有的相关命名(保持一致):[已有命名,没有就写无]

请输出:
1. 3 到 5 个候选名,按推荐程度排序。每个写明:
   - 名字本身(按该语言的大小写规范,例如 Python 用 snake_case、Java 类用 PascalCase、常量全大写);
   - 字面含义和读者第一眼会怎么理解;
   - 优缺点。
2. 推荐哪一个,理由是什么。
3. 按类型检查这些规则:
   - 布尔值用 is、has、can、should 等开头,避免否定形式(如 isNotValid);
   - 函数名用动词开头,并且准确反映副作用:只读取的用 get、find,会修改或保存的用 update、save,可能很耗时的考虑 fetch、load、compute;
   - 集合用复数或带集合含义的词;
   - 单位要写进名字里,例如 timeoutMs、priceCents;
   - 不用拼音,不用只有自己懂的缩写,通用缩写(id、url、http)可以用;
   - 不要和语言关键字、常用库里的名字冲突。
4. 如果我描述的作用其实包含了两件事,提醒我这可能说明函数该拆分,并给出拆分后的命名。
5. 如果「已有命名」里有不一致或含义误导的,顺便指出。
6. 附上 Python PEP 8、Google Java Style、Effective Go 等对应语言风格指南中与本次命名相关的一两条原则。

高亮处换成你自己的内容:[编程语言]、[要命名的是]、[中文描述]、[所属的类、模块或业务领域]、[已有命名,没有就写无]

ChatGPT Plus 充值

已被复制 0 次

使用说明

怎么填变量:[中文描述] 不要只写「用户数据」,要写清楚「已登录用户最近 30 天的订单列表」这种程度,名字才能准确。[已有命名] 很重要,如果项目里已经统一用 fetchXxx 表示调用接口,新函数就不该改用 getXxx。

常见坑:

  • 名字里用 data、info、temp、handle、manager 这些泛词,等于没起名。让 AI 说明候选名「具体比泛词多表达了什么」。
  • 函数名说的是 get,实际却会写数据库或发请求,读代码的人会被误导。名字要诚实反映副作用。
  • 金额、时间、大小这类数值不带单位,是很多线上事故的源头(秒和毫秒、元和分弄混)。

追问技巧:一次性给一批名字时,可以把整个函数或类贴进去,说「检查这段代码里所有命名,列出需要改的及建议名」。

示例输出

示例,仅供参考(Python;作用:判断优惠券在下单时间点是否还能用)
候选名理解评价
is_coupon_usable_at(order_time)某个时间点优惠券是否可用推荐:布尔函数用 is 开头,时间参数说明了判断基准
check_coupon(order_time)检查优惠券含糊:看不出返回布尔还是会抛异常
coupon_valid优惠券有效像变量不像函数,且没有体现时间点

推荐 is_coupon_usable_at。另外,已有命名中的 get_coupon_and_lock() 既查询又加锁,建议拆成 find_coupon() 和 lock_coupon(),或者改名为 acquire_coupon_lock() 明确副作用。

同款作品

用这条提示词做出来的作品;原作者会因此获得积分

做同款

还没有同款,来做第一个。

Nathaniel 的更多内容

同主题

同模型

0 条评论

登录 后参与评论

还没有评论,来抢沙发~