ARTICLE · 1099228
从刀耕火种到 AI 编程:工具越强,人越需要判断

人类曾经用双手翻土,后来学会借助水、风与牲畜的力量;马车让路变短,汽车重新定义了距离;手工生产走向流水线与工业自动化,让一个人的劳动可以撬动庞大的生产系统。
信息时代,我们把知识、协作和交易搬进网络。今天,AI 开始参与写作、设计和编程。每一次跃迁,都把某种原本费力的事情变得容易,也带来了新的问题:当工具替我们完成更多动作,人该负责什么?
不敢想象百年、千年,甚至亿万年后的人类会以什么形态存在。如果那时人类仍在,也许我们早已无法用今天的职业和设备描述自己。但至少此刻,AI 编程已经给出一个清晰的提示:写出代码的成本正在下降,理解系统、定义目标和检验结果的责任却没有消失。
01 | 宏观地图
先看清地图,工具才有位置
过去学开发,常从语法和框架开始:JavaScript 怎么写,Java 的类如何设计,Go 的并发如何使用。如今 AI 能迅速生成组件、接口和测试,我们更需要先问:这段代码属于系统的哪一层?
- 浏览器:负责交互
- Web 或 BFF:负责编排
- Java、Go 等服务:承载业务规则
- PostgreSQL:保存交易和关系数据
- 运行环境:决定它们如何交付和观察
先看清地图,工具才有位置。
02 | 运行环境
运行在哪里,决定了它能接触的世界
同样是 JavaScript,运行在浏览器与 Node.js 中,能接触到的世界并不一样。浏览器有 DOM 和用户事件,服务端能处理文件、环境变量与后台任务。React 组织界面,Next.js 提供应用框架,Node.js 提供一种服务端运行时。AI 可以把它们写进同一个项目,却不会因为代码通过编译,就自动分清职责。
遇到
window is not defined,关键不是让 AI 再试一个写法,而是先确定代码实际运行在哪里。
03 | 页面时间线
页面不是瞬间成型的,它有自己的时间线
页面也有自己的时间线。
CSR、SSR、RSC 解决的约束不同:交互、首屏内容、搜索可见性、客户端代码量,都需要取舍。
服务器返回 HTML 后,用户可能已经看见按钮,却还不能点击;浏览器加载脚本并完成 Hydration,页面才获得相应的客户端行为。
让 AI 设计页面,要说明服务端与客户端的分工;出了问题,再沿着 HTML ➔ 脚本加载 ➔ Hydration ➔ 事件绑定 逐层排查。
04 | 数据归属
状态管理不是选框架,而是先问数据属于谁
数据流也一样。
fetch 与 Axios 都能发送 HTTP 请求,选择取决于项目怎样组织鉴权、超时、重试和错误处理。状态管理也不该从选 Redux、Zustand 或 React Query 开始,而要先问数据属于谁:
- 弹窗开关:属于局部界面
- 筛选条件:可能属于 URL
- 远端数据:来自 API
- 订单的最终事实:在后端数据库
若把这些生命周期不同的数据全塞进一个 Store,AI 只会更快地扩大混乱。
05 | 请求链路
一次调用背后,每一层都有契约和失败方式
一次 GET /api/user 背后,可能经过浏览器、网关、BFF、Java 或 Go 服务、缓存和 PostgreSQL。
- Java:适合承载复杂业务与长期维护的服务
- Go:常用于并发请求与轻量服务
- 选型依据:仍要看团队、约束和已有系统
PostgreSQL 不只是“存一下数据”:表结构、事务、索引与权限共同决定数据是否可靠。每一层都有契约和失败方式。浏览器不应直接持有数据库权限;请求失败时,要沿状态码、日志和调用链定位问题。
06 | 组合演进
技术名会变,核心职责的划分不会变
LAMP 的形态一直在变。
Linux、Apache、MySQL、PHP 曾是一套典型的 Web 组合。企业应用里,Java 与 .NET 又成为重要支柱:应用服务器、分层架构和框架承载了更复杂的业务。今天,一种务实的组合是 Linux、前端 JavaScript、Node.js、Go、PostgreSQL 及扩展。
技术名会变,运行环境、请求入口、业务规则和数据存储的职责仍需讲清。
07 | 演进与守成
AI 能协助迁移,却不能替我们判断代价
技术也会退下舞台中央。JSP、Classic ASP、VB6、ASP.NET Web Forms 曾经承载大量应用;今天的新项目已有不同选择,但旧系统仍在运行。它们的主流位置变了,并非一夜消失。
JSP 仍有规范 Visual Basic 仍受 .NET 支持 Web Forms 仍属于 .NET Framework 技术体系
08 | 工程全貌
“我电脑能跑”,到“系统可靠运行”的距离,即使代码写完,工程仍未结束。
package.json表达依赖意图 lockfile固定解析结果 包管理器安装物料 构建与测试验证交付产物
AI 能迅速添加依赖,却不能替团队保证版本一致、来源可信、部署可复现。“我电脑能跑”距离“系统可靠运行”,还隔着一整条工程链路。
09 | 终局能力
十个基础问题,最终指向同一种能力
回看这十个基础问题,它们指向同一种能力:
知道代码在哪里运行 何时执行 数据归谁 请求经过哪里 失败如何被观察 结果怎样被证明
今天的组合也不是固定配方:Node.js 可承担 Web 服务或构建任务,Go 可承载后端服务,PostgreSQL 可以通过扩展机制增加能力。与 AI 协作时,我们给出目标、边界、契约和验收标准,再让它加速实现;出了偏差,就带着证据修正。
从借助自然之力到借助机器,再到借助 AI,人类不断把力量交给工具。
我们无法预言遥远未来的形态,却可以决定今天怎样使用这份力量:
先理解边界与取舍,再让 AI 把想法带到现实。