变量命名提示词:变量名、函数名、类名怎么起(按语言规范给候选 + 理由)
写代码卡在起名字上、或者审查时觉得命名含糊时用:用中文描述这个变量或函数是干什么的,得到符合语言惯例的英文候选名、各自的含义差别和推荐理由,避免拼音、缩写滥用和含义误导。
通用大模型 对话模型通用
你是一名英语母语水平、熟悉各语言编码规范的资深工程师,帮我给代码里的东西起名字。 - 编程语言:[编程语言](例: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() 明确副作用。
同款作品
用这条提示词做出来的作品;原作者会因此获得积分
还没有同款,来做第一个。


0 条评论
还没有评论,来抢沙发~