为何我不使用大语言模型辅助编程


基本信息


导语

随着大语言模型(LLM)在编程领域的普及,作者却提出了一个反直觉的观点:在编程中并不依赖这些工具。文章探讨了过度依赖 LLM 可能带来的潜在风险,包括对代码质量的忽视以及对开发者核心能力的削弱。通过分析 LLM 的局限性,作者强调了保持独立思考和深入理解代码逻辑的重要性。阅读本文,你将获得关于如何在 AI 时代保持技术敏锐度的实用建议,以及平衡工具使用与能力提升的思考。


评论

以下是对文章《I don’t use LLMs for programming》(我不使用大模型进行编程)的深度评价。由于未提供原文全文,本评价基于该类文章通常涉及的核心论点(即“在LLM盛行的当下,为何坚持传统编程模式”)进行针对性的技术分析与行业探讨。

1. 中心观点

文章的核心观点是: 在当前的软件工程实践中,完全依赖或大量使用大语言模型(LLM)生成代码可能存在隐患,坚持传统的“手写代码”模式在维护成本、代码质量控制和深度理解系统逻辑方面仍具有不可替代的优势。

2. 支撑理由与边界条件

以下是对该观点的深入解构:

支撑理由:

  1. 认知摩擦与黑盒问题

    • [事实陈述] LLM 生成代码的过程是基于概率预测的,而非逻辑推导。
    • [分析] 当开发者使用 LLM 生成复杂逻辑时,往往只获得了“结果”,而失去了对“路径”的掌控。如果代码运行出错或存在边缘情况,开发者如果不理解底层逻辑,调试成本将远高于手写代码。这被称为“认知负债”——你欠下了一笔需要在未来偿还的理解成本。
    • [你的推断] 文章可能强调,对于核心业务逻辑,必须由人类构建清晰的思维模型,而非让 AI 堆砌“看似正确”的代码块。
  2. 技术债务的指数级增长

    • [作者观点] AI 生成的代码往往倾向于“能跑就行”,缺乏架构层面的前瞻性。
    • [分析] LLM 擅长生成样板代码,但在处理抽象层设计、接口定义的可扩展性时往往表现平庸。大量引入 AI 生成的代码会导致项目迅速充斥着过时的模式或冗余的依赖,形成难以维护的“大泥球”。
    • [案例] 比如在一个微服务架构中,AI 可能会为每个简单功能生成一个独立服务,却忽略了服务间通信的延迟与数据一致性问题。
  3. 安全性与合规风险

    • [事实陈述] LLM 的训练数据包含大量存在漏洞的开源代码。
    • [分析] 直接使用 LLM 编程容易引入已知的安全漏洞(如 SQL 注入、XSS)或带有许可证争议的代码片段。在金融、医疗等强监管行业,这种不可追溯的代码来源是致命的。

反例/边界条件:

  1. [反例] 简单的胶水代码与测试用例

    • 对于编写正则表达式、JSON 转换脚本、单元测试或配置文件等低创造性、高重复性的工作,LLM 的效率远超人工,且错误率极低。在这些场景下,不使用 LLM 反而是生产力的浪费。
  2. [边界条件] 开发者的资历

    • 该观点主要适用于资深工程师架构师。对于初学者,LLM 是极佳的学习辅助工具;但对于需要对系统稳定性负责的资深开发者,过度依赖 LLM 会导致技能退化(即“用进废退”)。

3. 维度评价

1. 内容深度

文章的深度在于它挑战了当前的“技术政治正确”。大多数媒体鼓吹 AI 提效,而该文章指出了**“隐性成本”**。它揭示了软件工程不仅仅是“写代码”,而是“管理复杂性”。如果论证中能详细区分“Copilot(副驾驶)”与“Autopilot(自动驾驶)”的区别,即辅助与替代的界限,其深度将更具说服力。

2. 实用价值

该文章具有极高的“纠偏”价值。它提醒管理者:不要单纯用 LOC(代码行数)或交付速度来衡量 AI 的价值。对于初创公司,快速用 AI 堆出 MVP 是可行的;但对于长线维护的产品,文章建议的“核心逻辑手写,边缘逻辑 AI 辅助”策略更具实际指导意义。

3. 创新性

提出了**“反向思考”**的视角。虽然“AI 代码质量差”不是新话题,但将其上升到“方法论”层面——即“拒绝 LLM 是一种保持代码洁癖和架构清晰度的手段”——具有一定的观念创新性。它重新定义了程序员的价值:从“代码编写者”转变为“逻辑审定者”。

4. 可读性

此类文章通常逻辑清晰,通过对比“AI 生成代码的速度”与“人类理解代码的时间”来建立论点。若文章使用了具体的 Debug 案例或架构图,其可读性和说服力会大幅提升。

5. 行业影响

这类文章是行业情绪的“冷却剂”。目前行业处于“AI FOMO(害怕错过)”的焦虑中,该观点有助于推动业界建立**“人机协作的伦理规范”**,促使工具厂商(如 GitHub, Google)更多地关注代码的可解释性和安全性,而不仅仅是生成速度。

6. 争议点或不同观点

  • 效率 vs 质量: 拥护者认为“先跑起来,再优化”是互联网法则,拒绝 LLM 是低效的傲慢。
  • 未来技能: 反对者认为未来编程语言就是自然语言,坚持手写代码就像坚持用汇编语言一样,是在对抗历史潮流。

4. 实际应用建议与验证

可验证的检查方式:

  1. 调试时间对比实验:
    • 指标: 选取