从前端规范到AIGC实战:全栈开发者必备技术栈复盘
一、前端
1.1 html 语义化标签,BEM 命名规范
1.1.1 HTML语义化标签
定义:拥有天然语义标识的HTML标签,摒弃全div布局,优化SEO、无障碍阅读、代码可读性。
常用标签分类:
| 标签 | 用途 |
|---|---|
<header> |
区块/页面头部 |
<nav> |
导航栏 |
<main> |
页面唯一主体内容 |
<section> |
内容分块 |
<article> |
独立内容(商品卡片、文章) |
<footer> |
页脚区域 |
错误写法:全div嵌套;正确写法:用语义标签划分页面层级。
1.1.2 BEM命名规范
BEM = Block(块)__Element(元素)–Modifier(修饰状态)
- Block:独立功能模块,独立复用,例
goods-card - Element:块内部子元素,双下划线
__拼接,例goods-card__title - Modifier:样式/状态变体,双横线
--拼接,例goods-card__title--hot
示例代码:
<article class="goods-card">
<h4 class="goods-card__title goods-card__title--hot">爆款玩偶</h4>
<p class="goods-card__desc">毛绒公仔</p>
</article>
使用价值:杜绝CSS类名冲突,团队样式统一。
1.2 es6 array API 正则
1.2.1 高频ES6数组API
map:遍历映射,返回等长新数组,数据格式化filter:按条件筛选,返回符合条件数组reduce:累加、数组去重、多维数据合并find:匹配首个符合条件元素,无则undefinedsome/every:存在匹配/全部匹配,返回布尔值
1.2.2 正则搭配数组实战
// 手机号正则 + 数组过滤
const phoneReg = /^1[3-9]\d{9}$/
const user = [{name:'A',phone:'13511112222'},{name:'B',phone:'12345'}]
const validUser = user.filter(item=>phoneReg.test(item.phone))
console.log(validUser)
落地场景:表单批量校验、后端接口数据清洗。
1.3 你不知道的JavaScript:js执行机制和原型链
1.3.1 JS执行机制(事件循环EventLoop)
JS单线程运行,执行优先级:同步代码 > 微任务(Promise/await) > 宏任务(setTimeout)
一轮调用栈清空后,优先清空微任务队列,再执行单个宏任务,循环往复即事件循环,面试必考。
1.3.2 原型链
每个对象自带__proto__隐式原型,指向构造函数prototype;访问属性时逐层向上查找原型,链路构成原型链。
作用:实现原型继承、公用方法挂载原型节省内存。
二、后端
2.1 Python List & Dict
- List:有序可变数组,下标取值,批量存列表数据,接口列表结果存储;增删:
append/pop - Dict:键值对,key唯一,结构化数据存储,接口标准返回体首选;
dict[key]取值,JSON天然对应字典
简易示例:
# 接口返回组装
res = {
"code":200,
"data":[{"id":1,"name":"商品1"},{"id":2,"name":"商品2"}]
}
2.2 node process & esm
2.2.1 process
Node全局进程对象:
process.env:读取环境变量,区分生产/开发环境process.argv:获取启动命令行参数,项目启动配置读取
2.2.2 ESM模块化
文件后缀.mjs或package.json配置"type":"module"启用ES模块;import/export替代CommonJS的require/module.exports,前端后端统一模块化语法。
2.3 restful api 设计
核心准则:URL只用名词,HTTP方法区分动作
| 请求方式 | 功能 | 接口示例 |
|---|---|---|
| GET | 查询 | /orders查全部订单,/orders/1查id=1订单 |
| POST | 新增 | /orders创建订单 |
| PUT | 全量修改 | /orders/1全量更新订单 |
| PATCH | 局部修改 | /orders/1只改订单状态 |
| DELETE | 删除 | /orders/1删除订单 |
禁用:/addOrder /deleteOrder?id=1(URL携带动词,非REST规范)
统一返回JSON格式:
{"code":200,"data":{},"msg":"操作成功"}
三、AI
3.1 prompt提示词工程
参考课程:DeepLearning Prompt开发课
核心思路:清晰指令+限定格式+约束条件,精准控制大模型输出结果,不用复杂机器学习即可快速搭建NLP应用。
优势:传统ML开发NLP系统需数天~数周,Prompt开发仅需几分钟落地。
3.2 AIGC 接口
定义:大模型厂商对外开放RESTful接口,后端通过HTTP请求携带API_KEY+Prompt调用大模型,获取生成结果。
通用调用格式:POST /v1/chat/completions,入参包含提示词、模型参数,出参返回AI生成文本;按token计费,是AI小程序/网站底层依赖。
3.3 NLP四大基础任务
3.3.1 情感分类 sentiment analysis
三分类:正面/负面/中性;落地:电商评论质检、客服舆情预警、商品好评分析。
例:玩偶评论「柔软可爱但偏小」→中性评价。
3.3.2 信息提取 information extraction
从原文抽取关键实体:人名、产品名、价格、物流信息,结构化输出。
3.3.3 主题推断
判断文本包含的指定主题,0/1标注是否命中。
3.3.4 文本总结 summarization
按约束(字数、聚焦维度)精简长文本;落地:行政文档提炼、商品评论汇总、资讯精简。
3.4 Node实战:批量评论总结(完整可运行代码)
配套completions.mjs封装getCompletion请求AIGC接口
// index.mjs
import {getCompletion} from './completions.mjs';
async function main() {
// 四条电商原始评论
const prod_review_zh = `
这个熊猫公仔是我给女儿的生日礼物,她很喜欢,去哪都带着。
公仔很软,超级可爱,面部表情也很和善。但是相比于价钱来说,
它有点小,我感觉在别的地方用同样的价钱能买到更大的。
快递比预期提前了一天到货,所以在送给女儿之前,我自己玩了会。
`
const review_2 = `
我想为我的卧室找一个漂亮的灯,这款灯还有额外的存储空间,价格也不太高。
购买后很快就收到了,两天就送到了。但在运输过程中,灯的拉链断了,公司态度很好,发来了一条新的。新的拉链也在几天内就到了。这个灯非常容易装配。后来,我发现缺少一个部分,所以我联系了他们的客户支持,他们很快就给我寄来了缺失的部件!我觉得这是一家非常关心他们的客户和产品的好公司。
`
const review_3 = `
我的牙科卫生师推荐我使用电动牙刷,这就是我购买这款牙刷的原因。目前为止,我发现电池的续航时间颇为令人印象深刻。在初次充电并在第一周保持充电器插头插入以调节电池状态之后,我已经将充电器拔掉,并在过去的3周里,每天两次刷牙都使用同一次充电。然而,这款牙刷的刷头实在太小了。我见过的婴儿牙刷都比这个大。我希望牙刷头能做得更大一些,搭配不同长度的刷毛更好地清洁牙齿间缝,因为现有的无法做到这一点。总的来说,如果你能以大约50美元的价格购入这款电动牙刷,那它就物超所值。厂家配套的替换刷头价格相当昂贵,但你可以买到价格更为合理的通用款。使用这款牙刷让我感觉像每天都去看了牙医一样,我的牙齿感觉洁净如新!
`
const review_4 = `
他们还在11月把17件套系统以大约$49的优惠价格销售,几乎是五折。但不明原因(轻易就可以归咎为价格欺诈)在到了12月第二周,同一套系统的价格一下儿飙升到了$70-$89之间。11件套系统的价格也从之前的优惠价$29上升了大概$10。看上去还算公道,但如果你仔细观察底部,会发现刀片锁定的部位相比几年前的版本要略逊一筹,所以我打算非常小心翼翼地使用(例如,我会将像豆子、冰块、大米之类的硬质食材先用搅拌机压碎,然后调到我需要的份量,再用打发刀片研磨成更细的粉状,制作冰沙时我首选交叉刀片,如果需要更细腻些或者少些浆糊状,我会换成平刀)。在制作果昔时,把将要用的水果和蔬菜切片冷冻是个小技巧(如果你打算用菠菜,要先稍微焖炖软,再冷冻,制作雪葩时,用一个小到中号的食品加工器就行)这样就不用或者很少加冰块到你的果昔了。大约一年后,电机开始发出一些可疑的声音。我联系了客服,但保修期已经过期,所以我只好另购一台。友情提示:这类产品的整体质量都在下滑,所以他们更多的是利用品牌知名度和消费者的忠诚度来保持销售。我在两天之后就收到了它。
`
const reviews = [review_1, review_2, review_3, review_4];
// 循环批量总结评论
for(let review of reviews){
const prompt =`
你的任务是从电子商务网站上的产品评论中提取相关信息。
请对三个反引号之间的评论文本进行概括,最多20个字符。
评论文本:\`\`\`${review}\`\`\`
`
const response = await getCompletion(prompt);
console.log('评论摘要:',response,'\n');
}
}
main();
completions.mjs 自行封装axios/fetch请求AIGC服务商接口,填入平台Key即可运行。
四、全文总结
本文串联前端工程规范、JS底层原理、后端常用数据结构与接口设计、AIGC+NLP落地方案,打通传统全栈开发与AI应用落地链路;依托Prompt工程无需机器学习算法,即可快速落地四大经典NLP业务,是当下全栈开发低成本接入AI的主流方案。
五、核心知识点复盘
- 前端:语义化优化工程规范性,BEM解决CSS样式冲突;ES6数组+正则是数据处理基础;事件循环、原型链是JS底层核心。
- 后端:Python List/Dict是数据载体;Node process管理进程环境,ESM统一前后端模块;RESTful是工业级接口标准。
- AI:Prompt快速构建NLP系统,AIGC API是AI产品接入标准;情感分类、摘要、实体抽取、主题识别是商用NLP高频场景。
六、常见问题/避坑指南
前端避坑
- BEM不要随意缩写命名,缩写过多造成可读性下降;
- 事件循环易错点:await后面代码属于微任务,定时器永远延后执行。
后端避坑
- REST接口不要在GET请求体内传参,部分网关会丢弃body数据;
- ESM与CommonJS混用易报错,统一项目type配置。
AI&NLP避坑
- Prompt描述模糊会造成大模型输出不可控,必须增加字数、维度、格式限制;
- AIGC接口调用注意限流、异常捕获,批量循环请求增加延时,避免API超限扣费。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)