夜雨聆风学习资料网

ARTICLE · 1099228

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

从刀耕火种到 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 技术体系
AI 能协助迁移,却不能替我们判断兼容成本与数据风险。

08 | 工程全貌

“我电脑能跑”,到“系统可靠运行”的距离,即使代码写完,工程仍未结束。

  • package.json
     表达依赖意图
  • lockfile
     固定解析结果
  • 包管理器安装物料
  • 构建与测试验证交付产物

AI 能迅速添加依赖,却不能替团队保证版本一致、来源可信、部署可复现。“我电脑能跑”距离“系统可靠运行”,还隔着一整条工程链路。


09 | 终局能力

十个基础问题,最终指向同一种能力

回看这十个基础问题,它们指向同一种能力:

  • 知道代码在哪里运行
  • 何时执行
  • 数据归谁
  • 请求经过哪里
  • 失败如何被观察
  • 结果怎样被证明

今天的组合也不是固定配方:Node.js 可承担 Web 服务或构建任务,Go 可承载后端服务,PostgreSQL 可以通过扩展机制增加能力。与 AI 协作时,我们给出目标、边界、契约和验收标准,再让它加速实现;出了偏差,就带着证据修正。


从借助自然之力到借助机器,再到借助 AI,人类不断把力量交给工具。

我们无法预言遥远未来的形态,却可以决定今天怎样使用这份力量:

先理解边界与取舍,再让 AI 把想法带到现实。


往期回顾
01 / 10|一张图看懂现代 Web 开发
02 / 10|让 AI 写代码前,先懂 Runtime
03 / 10|一图看懂React、Next.js、Node.js
04 / 10|AI 时代的CSR、SSR、RSC 怎么选?
05 / 10|AI写的SSR页面为什么按钮总点不了?
06 / 10|AI 编码 fetch 和 Axios 怎么选?
07 / 10|如何使用 AI 写好前端状态管理?
08 / 10|使用AI设计API不能只画一条调用线
09 / 10|AI 维护项目依赖,如何稳定运行?
10 / 10|AI 接管编码以后开发者如何存在?

相关学习资料