惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

C
Check Point Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
L
LangChain Blog
云风的 BLOG
云风的 BLOG
M
MIT News - Artificial intelligence
A
About on SuperTechFans
J
Java Code Geeks
量子位
博客园 - 三生石上(FineUI控件)
博客园 - Franky
博客园_首页
H
Hackread – Cybersecurity News, Data Breaches, AI and More
IT之家
IT之家
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
雷峰网
雷峰网
D
DataBreaches.Net
人人都是产品经理
人人都是产品经理
Martin Fowler
Martin Fowler
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

人人都是产品经理

为什么你的产品找不到差异化?90%的失败都卡在第一步上(下) – 人人都是产品经理, 3年从30万到1300万用户、获2200万美元融资,这个AI教育产品用“抽卡”破解了获客难题 – 人人都是产品经理, 园区招商系统怎么做才能真正帮到去化?我加了这一个功能,推广链接转发400次阅读过万 – 人人都是产品经理, AI大事件:OpenAI发完网络安全模型又搞药物研发,小鹏汽车要抓”DeepSeek时刻” – 人人都是产品经理, 电商不是卖货,是一场更残酷的产品经理实战 – 人人都是产品经理, 没想到,活动营销又回来了! – 人人都是产品经理, 为何All-in海外KOC:一场关于AI时代窗口期的豪赌 – 人人都是产品经理, 重新理解企业的内部协作 – 人人都是产品经理, 苹果的 AI 战略到底是什么? – 人人都是产品经理, 医疗智能体·第2讲——合规护城河:等保、PIPL与HIPAA的架构实战 – 人人都是产品经理, 向量知识库五步法:从“答非所问”到“精准回复” – 人人都是产品经理, 鸿蒙PC三方库构建总指挥HPKBUILD(sha)库为例 – 人人都是产品经理, 何时该用LLM?AI产品经理的LLM设计指南 – 人人都是产品经理, 医疗信息领域的需求方、决策方、准入方以及关注点(二) – 人人都是产品经理, 即梦涨价:一场被误读的「傲慢」 – 人人都是产品经理, 面试AI PM必答题:Hermes和OpenClaw的区别,如何讲清楚业务价值 – 人人都是产品经理, AI的下一张船票:世界模型——AI产品经理必须理解的技术拐点 – 人人都是产品经理, 小红书做GEO,怎么让AI信你?记住这 3 个重要信息 – 人人都是产品经理, 5 家印度 AI 初创公司,看看印度 AI 再做什么 – 人人都是产品经理, AI项目跨团队协作:产品技术业务如何不打架 – 人人都是产品经理, Agentic Workflow(智能体工作流):让AI从”答案生成器”变成”数字员工” – 人人都是产品经理, lycium_plusplus 项目全景解读:OpenHarmony 三方库构建的“大管家” – 人人都是产品经理, 从爆单救火到前置履约:两套预采策略,把生鲜大促履约效率拉满 – 人人都是产品经理, 什么时候该补货?我用一轮数据做了一个决定 – 人人都是产品经理, 从“机械兜底”到“动态分流”:AI客服重复进线治理的4大底层逻辑 – 人人都是产品经理, 抖音拼效率,红书拼洞察 – 人人都是产品经理, 全民狂欢与退潮——为什么龙虾这波热潮冷却得如此之快? – 人人都是产品经理, Stripe押注!MPP重塑全球支付 – 人人都是产品经理, 小红书GEO:AI引用你的内容,不是因为你对,而是因为你看起来可信 – 人人都是产品经理, 前百度副总裁押注办公Agent,日韩付费爆发,Manus迎来强劲对手 – 人人都是产品经理,
AI编程时代,为什么你的代码还是被吐槽?
徐浩楠 · 2025-11-10 · via 人人都是产品经理

AI已经能写代码了,为什么你的代码依然频频“被吐槽”?问题或许不在技术,而在认知。当AI降低了编程门槛,也在悄然抬高对“人”的要求。这篇文章将从协作逻辑、表达方式与工程心智出发,重新定义“好代码”的标准。

引言:AI能写代码,但写不了你的未来

ChatGPT、Copilot、Claude…AI编程工具层出不穷,小白也能一键生成代码。但为什么在大厂,你的代码还是被评审吐槽?为什么同样的功能,有些人的代码看起来像艺术品,而你的却像AI生成的垃圾?

答案很简单:AI能写代码,但写不了你的职业未来。在AI编程时代,代码注释和文档不再是”可有可无”,而是程序员的”生存护城河”。今天,我们就来聊聊如何在AI时代,通过优秀的代码注释和文档,让你的编程之路走得更顺畅。

一、AI编程时代的残酷真相:代码注释是你的生存护城河

1.1 AI能写代码,但写不了可维护的代码

ChatGPT能生成功能代码,但无法理解你的业务逻辑、团队规范和长期维护需求。想象一下:当AI生成的代码需要紧急修复,或者交接给新同事时,没有注释的代码就是一场灾难。

# AI生成的代码(无注释)

def get_chat_completion(prompt, history):

history_string = “\n\n”.join([“\n”.join(turn) for turn in history])

prompt_with_history = f”{history_string}\n\n{prompt}”

completion = client.chat.completions.create(

model=”gpt-3.5-turbo-0125″,

messages=[

{“role”: “system”, “content”: “You are a helpful but terse AI assistant who gets straight to the point.”},

{“role”: “user”, “content”: prompt_with_history},

],

temperature=0.0,

)

return completion.choices[0].message.content

# 人类优化的代码(有注释)

def get_chat_completion(prompt, history):

“””获取带有聊天历史的AI响应

此函数将历史对话记录格式化后与当前问题组合,使AI能够理解上下文,生成更连贯的响应。

参数:

prompt: 当前用户输入的提示词

history: 之前的对话历史记录列表,每个元素为一问一答的元组

返回:

AI生成的响应文本

“””

# 将历史对话记录转换为字符串格式,每个轮次用双换行符分隔

history_string = “\n\n”.join([“\n”.join(turn) for turn in history])

# 将历史记录与当前问题组合,形成完整的上下文提示

prompt_with_history = f”{history_string}\n\n{prompt}”

# 调用OpenAI API获取响应

completion = client.chat.completions.create(

model=”gpt-3.5-turbo-0125″, # 指定使用的模型版本

messages=[

{“role”: “system”, “content”: “You are a helpful but terse AI assistant who gets straight to the point.”},

{“role”: “user”, “content”: prompt_with_history},

],

temperature=0.0, # 温度参数,控制回答的随机性,0.0表示更确定性的回答

)

return completion.choices[0].message.content

1.2 在AI时代,注释是你的不可替代性

当AI能写80%的代码时,你的价值在哪里?答案就在那20%:理解业务、设计架构、编写文档。优秀的代码注释和文档,是AI无法替代的人类价值,是你在AI时代的”不可替代性”。

二、如何写出犀利有用的代码注释

2.1 注释的三要素原则

要素一:解释“为什么”,而非“是什么”

# 不好的注释:只说明是什么

# 将历史记录转换为字符串

history_string = “\n\n”.join([“\n”.join(turn) for turn in history])

# 好的注释:解释为什么这样做

# 将历史对话记录转换为字符串格式,便于AI理解上下文

# 每个对话轮次之间用双换行符分隔,提高可读性

history_string = “\n\n”.join([“\n”.join(turn) for turn in history])

要素二:保持简洁,避免冗余

# 不好的注释:冗余啰嗦

# 这个函数的作用是接收一个提示词,然后调用OpenAI的API,获取AI的响应,最后返回这个响应

def get_llm_response(prompt):

# …

# 好的注释:简洁明了

# 调用OpenAI API获取AI响应并返回

def get_llm_response(prompt):

# …

要素三:使用中文,贴近团队

在国内大厂工作,使用中文注释能更好地与团队沟通。不要为了”国际化”而坚持使用英文,除非你的团队是国际化的。

2.2 注释的黄金位置法则

位置一:函数头部

每个函数都应该有清晰的文档字符串,说明函数的作用、参数和返回值。

def get_chat_completion(prompt, history):

“””此函数接收当前提示词和历史对话记录,生成带有上下文的AI响应。

参数:

prompt: 当前用户输入的提示词

history: 之前的对话历史记录列表

返回:

AI生成的响应文本

“””

# 函数实现…

位置二:复杂逻辑处

对于复杂的算法或业务逻辑,添加注释解释思路。

def get_cat_age(human_age):

if human_age <= 14:

# 对于前14个人类年,我们将其视为猫的前两年

cat_age = human_age / 7

else:

# 对于超过14岁的人类年龄:猫的年龄计算方式不同

cat_age = 2 + (human_age – 14) / 4

return cat_age

位置三:关键参数处

对于重要的参数或配置,解释其含义和选择原因。

completion = client.chat.completions.create(

model=”gpt-3.5-turbo-0125″, # 指定使用的模型版本

messages=[…],

temperature=0.0, # 温度参数,控制回答的随机性,0.0表示更确定性的回答

)

三、代码注释的进阶技巧

3.1 注释与代码的黄金比例

注释不是越多越好,也不是越少越好。一般来说,注释与代码的比例保持在1:3到1:5之间比较合适。关键是要在需要的地方添加有价值的注释,而不是为了注释而注释。

3.2 注释的时效性管理

代码在迭代,注释也需要同步更新。过时的注释比没有注释更糟糕,因为它会误导读者。养成修改代码时同步更新注释的习惯。

3.3 注释的风格统一

在团队中,保持注释风格的一致性非常重要。可以制定团队的注释规范,包括:

  • 使用中文还是英文
  • 注释的格式(如参数说明的格式)
  • 特殊标记的使用(如TODO、FIXME等)

四、从代码注释看职场进阶

4.1 初级程序员:能跑就行

初级程序员往往只关注代码能否实现功能,注释很少或者没有。这种代码在个人项目中可能没问题,但在团队协作中会成为障碍。

4.2 中级程序员:有注释就行

中级程序员知道需要添加注释,但往往注释质量不高,只是简单说明代码做了什么,而没有解释为什么这样做。

4.3 高级程序员:注释即设计

高级程序员通过注释表达设计思路和架构决策,他们的注释不仅解释代码,更是在传递思考过程和经验。

4.4 架构师:注释即影响力

架构师通过注释建立技术规范和最佳实践,他们的注释成为团队的技术指南,影响整个团队的技术方向。

五、实战案例:从糟糕到优秀的注释进化

让我们通过一个实际案例,看看如何将一段代码的注释从糟糕进化到优秀。

5.1 糟糕的注释

import os

import openai

openai.api_key = os.environ.get(“OPENAI_API_KEY”)

client = openai.OpenAI()

def get_llm_response(prompt):

completion = client.chat.completions.create(

model=”gpt-3.5-turbo-0125″,

messages=[

{

“role”: “system”,

“content”: “You are a helpful but terse AI assistant who gets straight to the point.”,

},

{“role”: “user”, “content”: prompt},

],

temperature=0.0,

)

response = completion.choices[0].message.content

return response

5.2 优秀的注释

# 导入必要的库

import os # 导入操作系统相关功能的库

import openai # 导入OpenAI库

# 从环境变量中获取OpenAI API密钥

# 这是一个安全地存储敏感信息的好方法

openai.api_key = os.environ.get(“OPENAI_API_KEY”)

# 初始化OpenAI客户端

# 所有的API调用都将通过这个客户端进行

client = openai.OpenAI()

def get_llm_response(prompt):

“””获取大型语言模型(LLM)的响应

这个函数就像给机器人朋友打电话,问它一个问题,然后拿到它的回答。

它会调用OpenAI的API,发送我们的问题,并返回机器人的回答。

参数:

prompt: 要发送给AI的问题,必须是字符串

返回:

AI生成的回答文本

“””

# 调用OpenAI API创建聊天完成

# 这就是我们打电话给机器人朋友的指令

completion = client.chat.completions.create(

model=”gpt-3.5-turbo-0125″, # 指定要使用的模型版本

messages=[

{

“role”: “system”, # 系统角色,设定AI的行为

“content”: “You are a helpful but terse AI assistant who gets straight to the point.”,

},

{“role”: “user”, “content”: prompt}, # 用户角色,包含用户的问题

],

temperature=0.0, # 温度参数,控制回答的随机性,0.0表示更确定性的回答

)

# 从完成响应中提取机器人的回答内容

# 就像从机器人朋友那里拿到它的回答

response = completion.choices[0].message.content

# 返回机器人的回答

return response

六、AI编程时代的生存法则:文档是你的第二大脑

6.1 .md文件:你的知识外挂

在AI时代,.md文档文件不再是”锦上添花”,而是你的”第二大脑”。它记录你的思考过程、设计决策和业务逻辑,是AI无法替代的知识资产。

# 项目文档示例

## 项目概述

本项目是一个基于OpenAI API的智能问答系统,旨在提供高效、准确的AI对话服务。

## 核心功能

1. 单轮对话:处理独立问题,无需上下文

2. 多轮对话:维护对话历史,提供连贯交流

3. 成本计算:实时监控API调用成本

## 技术架构

– 前端:Gradio界面(可选)

– 后端:Python + OpenAI API

– 数据存储:内存缓存(可扩展至Redis)

## 关键设计决策

1. 为什么选择gpt-3.5-turbo-0125?

– 性价比高,响应速度快

– 适合大多数对话场景

– 成本可控

2. 为什么设置temperature=0.0?

– 确保回答的一致性和可靠性

– 减少随机性,提高可预测性

– 适合生产环境使用

## 使用指南

1. 环境配置:设置OPENAI_API_KEY环境变量

2. 基础调用:使用get_llm_response函数

3. 多轮对话:使用get_chat_completion函数

4. 成本监控:使用calculate_llm_cost函数

## 扩展计划

1. 添加向量数据库支持,实现长期记忆

2. 集成更多AI模型,提供模型选择

3. 开发Web界面,提升用户体验

6.2 文档驱动的开发:AI时代的新常态

在AI编程时代,文档驱动的开发将成为新常态:先写文档,再写代码。文档不仅是给人类看的,也是给AI看的”上下文”,能帮助AI生成更符合需求的代码。

七、结语:AI时代,你的价值在哪里

AI能写代码,但写不了你的思考;AI能生成功能,但生成不了你的价值。在AI编程时代,代码注释和文档不再是”软技能”,而是”硬实力”,是你在AI时代的”生存护城河”。

记住:代码是写给人看的,顺便给机器执行;文档是写给你和AI看的,顺便给团队参考。

当你开始注重代码注释和文档的质量时,你的编程之路将走得更远、更稳。

AI时代的行动建议:

  1. 把文档当作“第一公民”,先写文档再写代码
  2. 为每个函数、每个模块编写清晰的注释和文档
  3. 建立团队的文档规范和注释标准
  4. 使用AI辅助生成文档,但由人类审核和优化
  5. 定期回顾和更新文档,保持与代码同步

AI时代的思考题:

  • 当AI能写80%的代码时,你的价值在哪里?
  • 如何利用AI工具提高文档和注释的质量?
  • 在你的团队中,如何平衡AI生成代码和人工优化?

欢迎在评论区分享你的AI编程经验和思考!

本文由 @徐浩楠 原创发布于人人都是产品经理。未经作者许可,禁止转载

题图来自Unsplash,基于CC0协议