同事们口中常蹦出 Next.js、Node.js、TypeScript、Python 这几个名字。它们听起来都很「程序员」,其实可以一句话说清:你打开 Akke 获客看板的那一刻,背后有几种语言在接力干活——一种负责你看到的界面,一种当发动机让它们跑起来,还有一种专门出外勤去抖音抓评论、做 AI 分析。这篇就用「一条请求的旅程」把它们串起来,不写代码也能看懂同事每天在改什么。
先说这篇和 Akke 的关系,免得你觉得「跟我有什么关系」。
Akke 做的事,一句话:帮全屋定制的门店,从抖音评论区里自动找到想装修的潜在客户,再用 AI 一路把客户养到有成交意向。你在后台看到的获客看板、客户旅程时间轴、一条条被抓回来的评论——这些「能看、能点、会自己动」的东西,没有一样是凭空来的,全是用编程语言一行行搭出来的。而这些语言,就是 Akke 这栋楼的「建材」。
更妙的是,这四个名字其实分属三种不同的「物种」——这是新人最容易搞混的地方,我们先花一分钟把它们摆清楚。
很多人第一次听会以为它们是「四种并列的东西」,其实不是。打个装修的比方就懂了:
Akke 的界面和大部分后台逻辑都用它写。它是 JavaScript 的「严格版」——多了一层「类型」检查,相当于施工时先按图纸核对尺寸,装错了当场报错,而不是上线后才塌。
不是语言,是一套用 TypeScript 搭网站的「成品施工方案」。它把「页面长什么样」和「后台接口」打包在一起,让一个人也能又快又稳地盖出完整网站。Akke 的整个 Web 端就是它。
也不是语言,是一台发动机。TypeScript / JavaScript 写出来的代码,本身只是「图纸」,要靠 Node.js 这台引擎才能真正运转。Akke 的网站和那些定时任务,底下转的都是它。
另一种独立语言,Akke 用它干最脏最重的活:打开真浏览器去抖音一条条抓评论、再让 AI 判断「这个人是不是想装修」。爬虫和 AI 这两块,Python 的现成工具最齐。
摆清之后,我们就跟着一条请求出发——看一次「打开看板」背后,它们是怎么一棒接一棒的。
旅程从你打开浏览器、输入 Akke 后台网址那一刻开始。屏幕上出现的获客看板、能点的按钮、一条条客户旅程——这整层「门面」,归 Next.js 管。
用开店来比,Next.js 就是餐厅的「前厅」:客人进门看到的装修、菜单、服务员、点单的平板,全在这一层。它有两个对新人最关键的本事:
所以同事说「我在改 Next.js 那块」,八成是在动你能看到、能点的那些东西:看板加一个筛选、旅程页多显示一列、某个按钮的逻辑。它就是产品的「脸」。
// 一段「界面」大致就长这样:描述「该显示什么」
function 客户卡片(lead) {
return <div>
<h3>{lead.昵称}</h3>
<span>意向分:{lead.意向分}</span>
</div>
}
第一站说的界面,自己是不会动的——它得有台发动机带着跑。这台发动机就是 Node.js。Next.js 的后台逻辑、所有接口,底下转的都是它。
但 Node.js 对 Akke 最关键的角色,是「不用人盯、到点自己干活」。获客这件事不能等人来点一下才动一下——它必须 7×24 自己转。于是 Akke 配了几十个「定时任务」(行话叫 Cron),全靠 Node.js 在后台按点执行:
用开店比,Node.js 就是「后厨的电+灶」:前厅再漂亮,没有后厨持续供能、按点出餐,店是开不起来的。「这个走 Node 定时任务」,说的就是这种不用人管、到点自动执行的活。
这里要点破一件事:第一站的界面、第二站的定时任务,用的是同一种语言写的——TypeScript。Next.js 是「方案」、Node.js 是「引擎」,而真正一行行敲出来的「话」,绝大多数是 TypeScript。它才是 Akke 的主力语言。
网页世界最通用的语言叫 JavaScript,几乎所有网站都用它。它灵活,但有个毛病:太随便——你把「年龄」填成一段文字,它也不拦你,等到真出错才崩,而且常常是上线后用户那边才崩。
TypeScript 就是给 JavaScript 加了一层「类型护栏」:写代码时就规定好「这个位置只能放数字」「那个必须是文字」。一旦放错,当场红线报错,根本到不了上线。代价是写的时候要多说明几句,换来的是少一大半「上线才发现」的事故。
不规定类型,写得快、也容易写错。装错尺寸不拦你,等塌了才知道。适合小快灵的脚本。
写之前先核对「图纸尺寸」,装错当场报错。多写几笔说明,换来更稳。Akke 这种要长期维护的产品,选它。
// 先讲清楚「一条客户线索」该有哪些字段、各是什么类型
type Lead = {
昵称: string; // 必须是文字
意向分: number; // 必须是数字,填成文字当场报错
}
到这里有件事前三站干不了:真的去抖音,一条条把评论抓回来。这活儿又脏又重——要打开一个真的浏览器、模拟人去翻页、绕过平台的反爬,还得让 AI 判断每条评论背后的人值不值得跟进。Akke 把它单独外包给一支「外勤队」,用的语言是 Python。
为什么这块换成 Python,而不是继续用 TypeScript?因为爬虫和 AI 这两个领域,Python 的现成工具最成熟、最齐全,等于「干这行的专业装备都在它那」:
而且这支外勤队不住在网站那台机器上,是单独跑在一个叫 Fly.io 的地方。原因很实在:抓抖音需要一直开着浏览器、长时间运行,这种「重而常驻」的活,不适合塞进管门面的那台轻量服务器——各干各擅长的,互不拖累。
响应要快、用完即走的轻活:出页面、应答接口、跑短短的定时任务。
又慢又重、要一直开着的活:挂着浏览器抓评论、跑 AI 分析。放单独的机器,专事专办。
把四站连起来,就是 Akke 从「发现一个客户」到「你在看板上看到他」的完整接力。注意每一棒交接,靠的都是中间那本「共享账本」——数据库。
顺带认识第五种、也是最低调的一种语言——SQL。上面每次「写进数据库 / 从数据库取」,背后说的都是 SQL,它是专门用来跟数据库对话的语言(「把意向分大于 80 的客户给我」就是一句 SQL)。它不抛头露面,却是这本「公共账本」的官方语言。想入门可看 SQL 与 Python 入门 →。
不用记技术细节。记住「谁是谁、管哪一段」就够了:
| 名字 | 是什么 | 在 Akke 里管哪段 |
|---|---|---|
| TypeScript | 语言(更严谨的 JavaScript) | 主力建材:界面 + 大部分后台逻辑都用它写 |
| Next.js | 框架(搭网站的现成方案) | 前厅:你看到、能点的整个 Web 界面与接口 |
| Node.js | 运行时(发动机) | 带着网站和几十个定时任务跑起来 |
| Python | 语言(爬虫 / AI 专长) | 外勤队:去抖音抓评论 + AI 意向分析(跑在 Fly.io) |
| SQL | 语言(跟数据库对话) | 那本「公共账本」的官方语言,各方靠它交接 |