跳转到内容

DOMAIN · STACK

技术栈与运行环境

项目依赖什么,又如何运行与发布。从用户常说的话进入,逐步看懂背后的技术关系与验收边界。

01
技术栈

完成一个产品所使用的语言、框架、运行时、数据库和部署工具组合。

“这个项目到底用了哪些技术,各自负责什么”
02
框架与库

库由代码主动调用,框架规定整体组织方式并在合适时机调用代码。

“这个功能用现成库,整个项目按框架规则组织”
03
运行时

真正执行程序并提供文件、网络、计时器等基础能力的环境。

“这段 JavaScript 是在浏览器还是 Node.js 里运行”
04
包管理器

负责下载、锁定、升级和运行项目依赖的工具。

“用 npm 安装依赖并按锁文件恢复环境”
05
依赖

当前项目运行或开发时需要的外部代码包。

“这个功能依赖哪个包,生产环境也需要吗”
06
终端与 CLI

终端是输入命令的界面,CLI 是通过命令和参数操作的软件。

“在项目目录运行构建命令并查看输出”
07
开发服务器

为本地开发提供页面、热更新和调试信息的临时服务。

“改完代码以后浏览器自动刷新”
08
构建与打包

把源代码、样式和资源转换成浏览器或服务器可发布产物。

“把源码编译成 dist 目录再上传服务器”
09
环境变量

由运行环境注入、用来区分配置而不写死在源码里的键值。

“开发和生产用不同接口地址,密钥不能提交 Git”
10
部署与托管

部署把可发布产物交付到运行环境,托管负责持续提供访问。

“构建完成后上线域名,并能回滚上一版”
11
TypeScript

在 JavaScript 上增加静态类型检查,帮助更早发现接口和数据错误。

“给 API 返回值定义类型,字段改名时让编译器提醒所有使用点。”
12
模块系统

把代码拆成可导入、可导出的独立单元并管理依赖关系。

“工具函数只导出公共接口,不要让页面依赖内部实现。”
13
Monorepo 单仓库

在一个版本库中管理多个应用或共享包。

“官网、知识库和共享导航放同一仓库,但构建可以独立运行。”
14
Lockfile 锁定文件

记录依赖解析后的精确版本,保证不同环境安装结果一致。

“提交 package-lock.json,CI 不要每次解析出不同版本。”
15
语义化版本

用主版本、次版本和修订号表达兼容性与变更范围。

“修复小错误升 patch,新增兼容功能升 minor。”
16
Lint 与格式化

用自动规则检查潜在代码问题,并统一排版风格。

“保存时自动格式化,提交前阻止明显错误进入仓库。”
17
容器

把应用和运行依赖封装成可重复启动的隔离环境。

“开发、测试和服务器都用同一镜像运行服务。”
18
Docker

用于构建、分发和运行容器镜像的一套工具与运行方式。

“用 Dockerfile 构建应用,用 Compose 启动 Web 和数据库。”
19
CI/CD 持续集成与交付

每次改动自动执行检查、构建,并按规则发布到目标环境。

“推送分支先跑测试,通过审批后再部署生产。”
20
域名与 DNS

域名是易读地址,DNS 负责把它解析到服务器或服务节点。

“让 kb.railwise.cn 指向知识库服务并启用 HTTPS。”
21
CDN 内容分发网络

把静态内容缓存到离用户更近的节点,降低延迟和源站压力。

“安装包和图片从国内节点就近下载。”
22
反向代理

由入口服务器接收请求,再转发到内部应用或静态资源。

“同一个域名把 /api 转给后端,把其他路径交给前端。”
23
日志与监控

日志记录事件细节,监控聚合指标并在异常时告警。

“下载失败要能看到请求、错误码和最近趋势。”
24
Feature Flag 功能开关

用配置控制功能是否对某环境或用户群开放,而不重新改代码。

“先让内部用户看到新编辑器,稳定后逐步放量。”