代码廉价的时代,技术品味才是程序员的护城河
作者:🧑🚀 deadmau5v 发布于 2025/11/23
最近,我们改了面试题:不再考 LeetCode,而是让候选人用 Cursor 写项目,要求很简单:45 分钟,实现一个全栈功能。
结果很有意思。
有的候选人很快搞定,连 UI 细节都调好了,有的则陷入了和 AI 的车轱辘话里,代码越改越乱,最后连项目都跑不起来。
这说明一个事实:生成代码越来越便宜,但写好代码却变难了。
AI 时代,程序员的护城河不再是背 API 或手写红黑树,而是技术品味(Technical Taste)。
什么是技术品味
Linus Torvalds 曾用两段代码解释什么是 Good Taste,在 AI 时代,这一点更重要。
技术品味,说白了就是对好代码的判断力。
在 AI 编程中,主要体现在三个方面。
嗅觉:一眼看出 AI 代码里的坑
让 AI 写一个缓存,它可能给你这样的代码:
cache = {}
def get_user(user_id):
if user_id not in cache:
cache[user_id] = db.query(user_id)
return cache[user_id]
新手觉得没问题,但有经验的程序员立刻能闻到坏味道:没有过期机制,没有容量限制,高并发下还有竞态条件。这代码跑几天内存就爆了。
预判:用 Prompt 提前规避问题
同样是写缓存,有品味的程序员不会让 AI 自由发挥,而是直接约束:
✅ 用 LRU 缓存,最大 1000 条,TTL 5 分钟,考虑线程安全
AI 会直接给出用 cachetools 或 functools.lru_cache 的方案,省去一轮返工。
审美:能跑但很丑的代码不能忍
def process(data):
result = []
for item in data:
if item['type'] == 'A':
if item['status'] == 'active':
if item['value'] > 100:
result.append(item)
return resultdef is_valid_item(item):
return (item['type'] == 'A'
and item['status'] == 'active'
and item['value'] > 100)
def process(data):
return [item for item in data if is_valid_item(item)]逻辑一样,但右边的代码可读、可测、可复用。
感兴趣可以去搜索一下“无嵌套主义”
代码越多,Bug 越多
以前代码是一行行敲的,每一行都经过思考。现在 AI 一秒钟能生成 500 行。
没有技术品味,会以光速帮你堆出一座屎山。
场景一:并发陷阱
举个例子,让 AI 写一个 Python 数据处理脚本。它很快给出一个 ThreadPoolExecutor 版本。
新手看来没问题,但有经验的程序员知道:Python 的 GIL 会导致 CPU 密集型任务在多线程下反而更慢。
正确的做法:直接告诉 AI 这是 CPU 密集型任务,用 ProcessPoolExecutor,注意序列化开销。
场景二:架构扩展性
再比如,让 AI 写一个用户积分系统。新手往往满意于简单的数据库加减操作。
但有品味的程序员知道:这处理不了并发,也查不了账。
正确的做法:指示 AI 用事件溯源设计,或者加一张流水表,用事务保证一致性。
如何培养技术品味
品味不是玄学,是大量阅读、实践积累出来的。
1. 读经典,别只看教程
少看 3 分钟学会 XXX,多读源码,多读架构复盘。看看 Redis 怎么管内存,Kafka 怎么做零拷贝。
见过好的,自然受不了差的。
2. 做 Code Reviewer
用 AI 时,别当写手,要当 Reviewer。
别 AI 给你什么就用什么。问问自己:异常处理了吗?变量名起得对吗?函数是不是太长了?
敢于让 AI 重写,是建立品味的第一步。
3. 关注看不见的细节
面试中我们发现,高手会关注 AI 容易忽略的地方:日志格式、配置结构、接口幂等性。
这些细节,决定了系统是玩具还是产品。
小结
AI 不会取代程序员,但会淘汰没主见、没品味的码农。
当代码生成变得像呼吸一样简单,判断力就是最稀缺的资源。
个人认为,未来的程序员的方向更像技术总监或架构师。不用拼手速,但脑子要清楚。代码行数不重要,系统的健壮性、优雅度才重要。
评论