大家好,我是程序員魚(yú)皮。
用 AI 編程做項(xiàng)目的時(shí)候,你一定會(huì)遇到各種沒(méi)見(jiàn)過(guò)的技術(shù)名詞。
比如 AI 跟你說(shuō):用 Next.js 搭前端,Prisma 連數(shù)據(jù)庫(kù),部署到 Vercel。
你一臉問(wèn)號(hào):這都是啥?算了,讓 AI 干就完了,我不用管……
![]()
但問(wèn)題是,如果你對(duì)這些技術(shù)完全沒(méi)概念,跟 AI 溝通時(shí)就說(shuō)不清楚自己想要什么,AI 選錯(cuò)了方向你也判斷不出來(lái)。
我之前做項(xiàng)目就遇到過(guò),AI 給我用了一個(gè)很冷門(mén)的數(shù)據(jù)庫(kù)方案,我不了解就直接用了,結(jié)果后面想加功能的時(shí)候發(fā)現(xiàn)生態(tài)太差,很多東西沒(méi)有現(xiàn)成方案,只能推翻重來(lái)。
所以我寫(xiě)了這篇文章,幫你把 AI 編程時(shí)代最核心的技術(shù)梳理一遍。你不需要深入學(xué)習(xí)每一個(gè)技術(shù),但至少要知道它們是干嘛的?什么時(shí)候該用?做技術(shù)選型的時(shí)候心里有數(shù)就行。
一、編程語(yǔ)言
首先,你必須了解 AI 編程中最常用的 2 套編程語(yǔ)言。
1、JavaScript / TypeScript
JavaScript 最早是給瀏覽器用的語(yǔ)言,負(fù)責(zé)網(wǎng)頁(yè)上的各種交互效果。后來(lái) Node.js 的出現(xiàn)讓它也能跑在服務(wù)器上寫(xiě)后端,于是 JS 變成了前后端通吃的全棧語(yǔ)言。
![]()
TypeScript 是 JavaScript 的增強(qiáng)版,給每個(gè)變量都標(biāo)注了類型,寫(xiě)代碼時(shí)編輯器就能幫你檢查錯(cuò)誤。
現(xiàn)在 AI 生成代碼默認(rèn)就會(huì)優(yōu)先用 TypeScript,因?yàn)橛辛祟愋托畔⒑螅珹I 理解代碼的上下文更準(zhǔn)確,生成的代碼質(zhì)量也更高。
如果你想做網(wǎng)站相關(guān)的項(xiàng)目,JS/TS 幾乎是綁定的。
![]()
2、Python
Python 的語(yǔ)法接近英語(yǔ),讀起來(lái)像偽代碼一樣直觀,所以很多零基礎(chǔ)的同學(xué)第一門(mén)語(yǔ)言就學(xué) Python。
它在 AI、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、自動(dòng)化腳本這些領(lǐng)域有統(tǒng)治級(jí)的地位,大量 AI 框架和工具都是用 Python 寫(xiě)的。
如果你要做 AI 應(yīng)用開(kāi)發(fā)、數(shù)據(jù)處理、爬蟲(chóng)這些事情,Python 是非常好的選擇。
![]()
簡(jiǎn)單來(lái)說(shuō),做網(wǎng)站選 JS / TS,做 AI 應(yīng)用選 Python,兩者都會(huì)就更好了。
二、前端三件套
前端就是用戶能看到和交互的部分,也就是你在瀏覽器里看到的一切。
AI 編程中,前端是最容易搞定的部分,因?yàn)楦耐甏a刷新一下就能看到效果。
傳統(tǒng)的前端三件套是 HTML + CSS + JavaScript,但是 AI 時(shí)代,我愿稱 React + Next.js + Tailwind CSS 為全新的前端三件套,因?yàn)檫@是 AI 編程工具最愛(ài)用的前端組合。
1、React
React 是 Meta 開(kāi)發(fā)的前端框架,核心理念是把頁(yè)面拆分成一個(gè)個(gè)可復(fù)用的組件。
比如一個(gè)按鈕是一個(gè)組件,一個(gè)導(dǎo)航欄也是一個(gè)組件,像搭積木一樣拼起來(lái)就是一個(gè)完整的頁(yè)面。
根據(jù)開(kāi)發(fā)者調(diào)查數(shù)據(jù),React 的使用率超過(guò)了 80%,是全球最主流的前端框架。AI 訓(xùn)練數(shù)據(jù)中 React 代碼量最大,所以 AI 生成 React 代碼的質(zhì)量也是最高的。我們團(tuán)隊(duì)的產(chǎn)品基本都是用 React 開(kāi)發(fā)的。
![]()
2、Next.js
Next.js 是基于 React 的全棧框架,由 Vercel 公司開(kāi)發(fā)。
它的厲害之處在于不僅能寫(xiě)前端頁(yè)面,還能在同一個(gè)項(xiàng)目里寫(xiě)后端接口,真正實(shí)現(xiàn)了一個(gè)項(xiàng)目搞定前后端。而且它支持服務(wù)端渲染,對(duì)搜索引擎收錄非常友好。
很多 AI 零代碼平臺(tái)生成的項(xiàng)目默認(rèn)就是 Next.js。你在 app 目錄下創(chuàng)建一個(gè)文件夾就自動(dòng)對(duì)應(yīng)一個(gè)頁(yè)面路徑,后端接口寫(xiě)在 app/api 目錄下,前后端代碼能放在同一個(gè)項(xiàng)目里,但邏輯上是分開(kāi)的。
而且能夠輕松部署到 Vercel 平臺(tái),只需要把代碼推到 GitHub,連接倉(cāng)庫(kù)后每次推送自動(dòng)構(gòu)建上線,非常省事。
![]()
3、Tailwind CSS
Tailwind CSS 是一個(gè)原子化的樣式框架。
傳統(tǒng)開(kāi)發(fā)網(wǎng)頁(yè)是先寫(xiě) HTML 結(jié)構(gòu),然后再寫(xiě) CSS 文件定義樣式。而 Tailwind 的思路不同,它把常用樣式都變成了一個(gè)個(gè)小 class 名,直接在 HTML 里拼就行。比如想讓一個(gè)元素水平垂直居中,寫(xiě) flex justify-center items-center 就搞定了。
剛開(kāi)始你可能會(huì)覺(jué)得 class 名一大串有點(diǎn)丑,但用習(xí)慣之后真的回不去了。
AI 生成的前端代碼默認(rèn)就很喜歡用 Tailwind,因?yàn)樗恍枰~外維護(hù) CSS 文件,而且每個(gè)樣式類名只有一種寫(xiě)法,AI 生成的準(zhǔn)確率特別高。
![]()
不過(guò)你可能也注意到了,AI 生成的頁(yè)面經(jīng)常是藍(lán)紫色漸變的配色,就是因?yàn)?Tailwind 的默認(rèn)色板有藍(lán)色和紫色,AI 用起來(lái)特別順手,導(dǎo)致做出來(lái)的東西千篇一律…… 想避免這個(gè)問(wèn)題,記得在提示詞里明確你想要的配色風(fēng)格。
React + Next.js + Tailwind CSS 這三個(gè)技術(shù)為什么總是綁定出現(xiàn)呢?
因?yàn)?AI 模型是從互聯(lián)網(wǎng)上的大量代碼中學(xué)習(xí)的,React、Next.js、Tailwind CSS 恰好是這幾年開(kāi)源項(xiàng)目用得最多的組合,AI 對(duì)它們最熟悉,生成的代碼最靠譜。這形成了一個(gè)飛輪效應(yīng),AI 越推薦,用的人越多,訓(xùn)練數(shù)據(jù)越多,AI 就更推薦。
三、后端框架
后端是用戶看不見(jiàn)的部分,負(fù)責(zé)處理業(yè)務(wù)邏輯、存儲(chǔ)數(shù)據(jù)、管理用戶身份。
當(dāng)你在網(wǎng)站上點(diǎn)擊「注冊(cè)」按鈕,前端會(huì)把你填的信息發(fā)給后端,后端負(fù)責(zé)校驗(yàn)數(shù)據(jù)、存到數(shù)據(jù)庫(kù)、返回結(jié)果。
如果你用 Next.js,其實(shí)后端接口可以直接寫(xiě)在同一個(gè)項(xiàng)目里,不需要單獨(dú)搞一個(gè)后端項(xiàng)目。但如果你需要更獨(dú)立、更強(qiáng)大的后端服務(wù),就得選一個(gè)后端框架了。
1、Spring Boot
Spring Boot 是 Java 后端開(kāi)發(fā)的標(biāo)配框架,國(guó)內(nèi)大部分企業(yè)的后端系統(tǒng)都是用它寫(xiě)的。
它的理念是「約定大于配置」,幫你把各種繁瑣的配置都簡(jiǎn)化了,開(kāi)箱即用。
如果你學(xué) AI 編程的同時(shí)也想提升后端就業(yè)競(jìng)爭(zhēng)力,Spring Boot 是必學(xué)的。而且 Spring AI 框架的推出,讓 Java 程序員也能很方便地開(kāi)發(fā) AI 應(yīng)用了。
![]()
2、FastAPI
FastAPI 是 Python 生態(tài)中增長(zhǎng)最快的后端框架,目前已經(jīng)有接近 40% 的 Python 開(kāi)發(fā)者在使用。它天生支持異步和類型檢查,寫(xiě)完接口文檔就自動(dòng)生成了,不需要額外維護(hù)。
FastAPI 最爽的一點(diǎn)是,啟動(dòng)后訪問(wèn) /docs 路徑就能看到一個(gè)交互式的接口文檔頁(yè)面,可以直接在瀏覽器里測(cè)試接口。如果你用 AI 生成 Python 后端項(xiàng)目,大概率就是 FastAPI。
![]()
簡(jiǎn)單來(lái)說(shuō),Java 方向選 Spring Boot,Python 方向選 FastAPI,想省事用 Next.js 的 API Routes 前后端一把梭。
四、數(shù)據(jù)存儲(chǔ)
網(wǎng)站上的用戶信息、文章內(nèi)容、訂單記錄等需要多次查詢的數(shù)據(jù),都需要存在數(shù)據(jù)庫(kù)里。
1、MySQL / PostgreSQL
關(guān)系型數(shù)據(jù)庫(kù)就像 Excel 表格一樣,數(shù)據(jù)有行有列,數(shù)據(jù)之間可以建立關(guān)聯(lián)。
![]()
MySQL 和 PostgreSQL 是最主流的兩個(gè)關(guān)系型數(shù)據(jù)庫(kù),都是開(kāi)源免費(fèi)的。
![]()
MySQL 在國(guó)內(nèi)用得最廣,遇到問(wèn)題基本都能搜到解決方案。PostgreSQL 功能更強(qiáng)大,支持 JSON 數(shù)據(jù)類型、地理信息、全文搜索,還能通過(guò) pgvector 插件支持向量搜索,適合開(kāi)發(fā) AI 應(yīng)用,很多海外的 SaaS 產(chǎn)品和 AI 項(xiàng)目都在用 PostgreSQL。
順帶一提,在代碼中操作數(shù)據(jù)庫(kù)一般不直接寫(xiě) SQL 語(yǔ)句,而是通過(guò) ORM 工具來(lái)操作。比如 Node.js 項(xiàng)目常用 Prisma,Java 項(xiàng)目常用 MyBatis-Plus,Python 項(xiàng)目常用 SQLAlchemy。有了 ORM,你在代碼里操作數(shù)據(jù)就像操作普通對(duì)象一樣方便。
2、Supabase
如果你不想自己維護(hù)數(shù)據(jù)庫(kù),還有一個(gè)省事的選擇。
Supabase 是一個(gè)開(kāi)源的后端即服務(wù)平臺(tái),底層基于 PostgreSQL,提供了數(shù)據(jù)庫(kù)、用戶認(rèn)證、文件存儲(chǔ)、實(shí)時(shí)訂閱等功能。
注冊(cè)個(gè)賬號(hào)就能用,免費(fèi)額度夠個(gè)人項(xiàng)目折騰了。
你可以跟 AI 說(shuō)「用 Supabase 做數(shù)據(jù)庫(kù)和認(rèn)證」,AI 就能幫你生成完整的集成代碼。
![]()
五、部署上線
代碼寫(xiě)完了,怎么讓全世界的人都能訪問(wèn)到你的網(wǎng)站呢?
這就需要把代碼部署到服務(wù)器上。
1、Vercel
最省事的方式是用 Vercel 平臺(tái)。
它是 Next.js 框架背后的公司,對(duì) Next.js 項(xiàng)目的支持最好。你只需要把代碼推送到 GitHub,Vercel 會(huì)自動(dòng)幫你構(gòu)建和部署,幾分鐘就能上線,還自帶 HTTPS 和 CDN 加速。免費(fèi)額度對(duì)個(gè)人項(xiàng)目完全夠用,非常適合部署 AI 編程做出來(lái)的小項(xiàng)目。
![]()
2、Linux 云服務(wù)器
不過(guò) Vercel 的服務(wù)器在海外,而且它更適合前端和全棧項(xiàng)目。如果你要做面向國(guó)內(nèi)用戶的商業(yè)產(chǎn)品,或者后端是一個(gè)獨(dú)立的 Java / Python 服務(wù),就需要自己買 Linux 云服務(wù)器了。
國(guó)內(nèi)的云服務(wù)商可以選阿里云、騰訊云等等,新用戶一般有免費(fèi)試用或大額優(yōu)惠,買一臺(tái) 2 核 4G 的配置就夠個(gè)人項(xiàng)目用了。
服務(wù)器的操作系統(tǒng)基本都是 Linux,所以了解一些基本的 Linux 命令是有必要的,比如 cd 進(jìn)目錄、ls 看文件這些。不過(guò)大部分操作都可以讓 AI 幫你生成命令,不用死記。
3、Docker
Docker 可以把你的代碼、運(yùn)行環(huán)境、依賴庫(kù)全部打包成一個(gè)「容器」,不管在什么機(jī)器上運(yùn)行,效果都一樣。
以前經(jīng)常會(huì)遇到「在自己電腦上能跑,到服務(wù)器上就報(bào)錯(cuò)」的情況,用了 Docker 就不存在這個(gè)問(wèn)題了。
把應(yīng)用封裝為 Docker 很簡(jiǎn)單,讓 AI 幫你寫(xiě) Dockerfile 配置文件就行,不需要自己記 Docker 文件的寫(xiě)法。
![]()
如果你的項(xiàng)目涉及多個(gè)服務(wù),比如前端 + 后端 + 數(shù)據(jù)庫(kù),還可以用 docker-compose 一鍵啟動(dòng)所有服務(wù)。
六、代碼管理 1、Git
用 AI 編程做項(xiàng)目時(shí),建議用 Git 來(lái)管理代碼。比如讓 AI 改代碼之前先提交一版,萬(wàn)一改崩了還能回退。這就像游戲里的存檔,打 Boss 之前先存?zhèn)€檔,死了能重來(lái)。
你不需要死記 Git 命令,因?yàn)?AI 可以幫你執(zhí)行 Git 操作。但幾個(gè)核心概念要知道,比如 commit 是保存一個(gè)版本,branch 是創(chuàng)建一個(gè)分支,push 是把代碼推送到遠(yuǎn)程倉(cāng)庫(kù)。
![]()
2、GitHub
GitHub 是全球最大的代碼托管平臺(tái),也是曾經(jīng)大家玩梗說(shuō)的程序員社交平臺(tái)。上面有海量的開(kāi)源項(xiàng)目,是編程學(xué)習(xí)資源的寶庫(kù)。
你可以把代碼推送到 GitHub 上,便于備份、分享和協(xié)作。前面說(shuō)的 Vercel 部署,就是連接你的 GitHub 倉(cāng)庫(kù)來(lái)實(shí)現(xiàn)自動(dòng)上線的。
![]()
七、調(diào)用 AI 大模型
借助 AI 編程 + AI 大模型服務(wù),你可以輕松開(kāi)發(fā)出自己的 AI 應(yīng)用,比如做一個(gè) AI 客服、AI 寫(xiě)作助手、AI 數(shù)據(jù)分析工具。
要做這些事情,首先得知道怎么在代碼里調(diào)用大模型。
1、OpenAI API
OpenAI API 是目前最通用的大模型調(diào)用方式。
OpenAI 提供了一套標(biāo)準(zhǔn)的 API,你可以用它來(lái)實(shí)現(xiàn)對(duì)話、文本生成、代碼生成、圖片生成等功能。可以在代碼中安裝對(duì)應(yīng)語(yǔ)言的 SDK,然后用 API Key 初始化客戶端后就能調(diào)用模型了。
很多其他 AI 服務(wù)商的 API 也兼容 OpenAI 的接口格式,比如 DeepSeek、通義千問(wèn)等。所以學(xué)會(huì)調(diào)用 OpenAI API 后,切換到其他模型也很方便。
![]()
如果你想在一個(gè)項(xiàng)目中靈活切換不同的模型,還可以用 OpenRouter 這樣的統(tǒng)一接口服務(wù),一個(gè) Key 就能調(diào)用上百種大模型。
2、LangChain
學(xué)會(huì)基本的調(diào)用大模型之后,如果你想做更復(fù)雜的 AI 應(yīng)用,比如讓 AI 自主使用工具、編排多步驟的工作流,就需要 AI 應(yīng)用開(kāi)發(fā)框架了。
LangChain 可以說(shuō)是最流行的 AI 應(yīng)用開(kāi)發(fā)框架,你可以把它理解成 AI 應(yīng)用開(kāi)發(fā)的「積木」,它內(nèi)置了大量的集成組件,比如對(duì)接各種大模型、向量數(shù)據(jù)庫(kù)、工具調(diào)用等。對(duì)于快速搭建 AI 應(yīng)用原型來(lái)說(shuō),LangChain 能幫你省下大量的樣板代碼。
不過(guò)有一點(diǎn)要注意,LangChain 更適合原型開(kāi)發(fā)和復(fù)雜的多模型編排場(chǎng)景。如果你的應(yīng)用比較簡(jiǎn)單,直接用 OpenAI 或者各家大模型的 SDK 會(huì)更輕量。
![]()
八、向量數(shù)據(jù)庫(kù)和 RAG
做 AI 應(yīng)用時(shí),經(jīng)常遇到一個(gè)問(wèn)題:大模型的知識(shí)是有截止日期的,而且缺乏你自己的私有知識(shí)。
比如你想讓 AI 基于公司內(nèi)部文檔回答員工的提問(wèn),直接問(wèn)大模型肯定答不上來(lái)。
這時(shí)候就需要 RAG 技術(shù)了。
RAG 的全稱是 Retrieval-Augmented Generation 檢索增強(qiáng)生成,核心思想就是 先搜再答,讓大模型在回答之前先去搜一遍相關(guān)資料,再基于搜到的知識(shí)來(lái)組織答案。就跟開(kāi)卷考試差不多,遇到不會(huì)的先翻翻書(shū)。
![]()
但怎么搜到相關(guān)的資料呢?
如果用關(guān)鍵詞匹配,很容易出現(xiàn)問(wèn)題和文檔里的用詞不一致的情況。所以需要用到 向量 的概念。
簡(jiǎn)單來(lái)說(shuō),向量就是把一段文字用一串?dāng)?shù)字來(lái)表示,讓計(jì)算機(jī)可以比較語(yǔ)義上的相似度。負(fù)責(zé)把文字轉(zhuǎn)成向量的模型叫 Embedding 模型,存儲(chǔ)這些向量并支持快速相似度搜索的數(shù)據(jù)庫(kù)就是向量數(shù)據(jù)庫(kù)。
![]()
RAG 的做法其實(shí)就 2 步。
1)把你的文檔切成小塊,轉(zhuǎn)成向量存進(jìn)向量數(shù)據(jù)庫(kù)。
2)用戶提問(wèn)時(shí),把問(wèn)題也轉(zhuǎn)成向量,去向量庫(kù)里搜最相似的幾個(gè)文檔塊,再把這些塊連同用戶問(wèn)題一起交給大模型生成回答。
![]()
在 AI 時(shí)代,向量數(shù)據(jù)庫(kù)的應(yīng)用越來(lái)越廣,做 AI 知識(shí)庫(kù)、語(yǔ)義搜索、推薦系統(tǒng)都需要用到它。主流的向量數(shù)據(jù)庫(kù)有 Milvus、Chroma、Qdrant 這些,PostgreSQL 也可以通過(guò) pgvector 插件支持向量搜索。
![]()
如果想深入了解 RAG 的各種進(jìn)階方案,我之前寫(xiě)過(guò)一篇 ,感興趣可以去看看。
最后嗶嗶
OK 就分享到這里,我把 AI 編程時(shí)代最核心的技術(shù)給大家梳理了一遍,從編程語(yǔ)言到前后端框架,從數(shù)據(jù)庫(kù)到部署上線,從 AI 大模型調(diào)用到 RAG 知識(shí)庫(kù)。
有了 AI 輔助編程,很多技術(shù)你不需要深入學(xué)習(xí),只要知道它是什么、什么時(shí)候該用,AI 就能幫你搞定具體的代碼實(shí)現(xiàn)。
技術(shù)是為產(chǎn)品服務(wù)的,別為了學(xué)技術(shù)而學(xué)技術(shù)。
不過(guò)如果你想找程序員相關(guān)的工作,還是要系統(tǒng)學(xué)習(xí)這些技術(shù)的,但也不用面面俱到。實(shí)際做項(xiàng)目的過(guò)程中,遇到什么學(xué)什么,用到什么查什么。
如果你想系統(tǒng)學(xué)習(xí) AI 編程,可以看看我的免費(fèi)開(kāi)源教程 《Vibe Coding 零基礎(chǔ)入門(mén)教程》,上千張圖、幾十萬(wàn)字,從 0 開(kāi)始帶你學(xué)會(huì) AI 編程。
開(kāi)源指路:https://github.com/liyupi/ai-guide
我是魚(yú)皮,持續(xù)分享 AI 編程干貨。覺(jué)得有用的話記得點(diǎn)贊收藏和關(guān)注,也歡迎在評(píng)論區(qū)說(shuō)說(shuō)你們現(xiàn)在用的最多的技術(shù)有哪些?
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.