工程工具链

官官方信息技术老师·7 页·深入(追求细节与边界)·0 次浏览·33 天前
信息技术大学

工程工具链

计算机基础面试八股 · 第 4 章 编程语言与工程素养

按 空格/→ 演示下一步

问一句
1 / 7 页

全部页面点击任意一页,跳回舞台从这页播放

信息技术大学

工程工具链

计算机基础面试八股 · 第 4 章 编程语言与工程素养

1第 1 页 · 工程工具链

Git 分支模型与回滚

分支是指向提交的轻量指针:主干稳、分支活,回滚有 reset 与 revert 两把刷子。

分支模型
主干受保护,feature 分支开发,PR 评审合入
revert
追加反向提交抵消历史,公共分支的安全选择
reset
移动分支指针,soft/hard 决定是否动工作区
reflog
本地操作全记录,误删提交的后悔药
2第 2 页 · Git 分支模型与回滚

Docker 镜像与容器

镜像是不变的模板,容器是跑起来的实例:分层复用让交付即装即用。

分层
镜像按层堆叠,层可缓存可复用可共享
容器
镜像的运行实例,namespace 隔离、cgroups 限资源
Dockerfile
声明式构建,多阶段构建瘦身镜像
3第 3 页 · Docker 镜像与容器

正则表达式

文本匹配的迷你语言:字符类、量词、分组、锚点四件套覆盖八成需求。

字符类
\d 数字、\w 单词、\s 空白,方括号自定义集合
量词
* + ? {n,m},默认贪婪,加 ? 变懒惰
分组
捕获组提取,(?: ) 不捕获,断言定边界
4第 4 页 · 正则表达式

CI/CD 流水线

提交即构建,构建即部署:自动化把「人肉上线」变成可重复的流水线。

CI
提交触发构建与测试,坏提交分钟级暴露
CD
交付自动出包,部署按环境逐级晋级
质量门禁
测试、lint、安全扫描不过不放行
5第 5 页 · CI/CD 流水线

本节要点

  • ✓revert 安全回滚,reset 本地撤销
  • ✓镜像分层复用,容器隔离运行
  • ✓正则四件套:字符类/量词/分组/锚点
  • ✓流水线:提交即构建,门禁放行
延伸主题:练习一次 revert 合并写个多阶段构建镜像
6第 6 页 · 本节要点

课后思考

先自己回答,再展开参考答案——能讲出来才算真懂。

1公共分支上的错误提交,为什么用 revert 而不用 reset?

参考答案reset 改写历史,他人本地与远端分叉,拉推全面混乱;revert 追加反向提交,历史完整保留,所有人的合并都安全。reset 只留给私有未推送的分支。

2Docker 容器与虚拟机的本质区别是什么?

参考答案虚拟机虚拟整套硬件并带完整客户操作系统;容器共享宿主内核,只用 namespace 隔离视图、cgroups 限制资源。所以容器秒级启动、开销近零,隔离强度也弱于虚拟机。

3贪婪量词导致匹配过多时,有哪些处理思路?

参考答案量词后加 ? 变懒惰做最小匹配;或用排除字符类(如 [^>]*)明确边界;复杂场景用前后断言锚定上下文。核心是把「匹配要吃到哪」讲清楚。

7第 7 页 · 课后思考