# AI自习室 — 全部内容 (中文) Generated: 2026-05-22 Total articles: 65 --- ## AI每日资讯 — 2026年5月19日:Gemini 3发布、Anthropic收购、马斯克败诉、Cerebras IPO URL: https://aidev.fit/zh/daily/ai-daily-news-2026-05-19.html # AI每日资讯 — 2026年5月19日 ## 1. Google 发布 Gemini 3,全生态同步上线 Google 同步在搜索 AI 模式、Workspace、Android、Cloud 和开发者工具中上线 Gemini 3.0,打破以往开发者优先的发布惯例。同步推出 **Antigravity** 智能 IDE,AI 在编辑器、终端和浏览器中均为一等协作角色。分析师指出,没有其他 AI 公司能在发布当日覆盖如此多的产品触点。 **来源:** [Maginative](https://www.maginative.com/article/googles-gemini-3-is-here-heres-why-it-actually-matters/) ## 2. Anthropic 收购被 OpenAI、Google、Cloudflare 共同使用的开发者工具公司 Anthropic 收购了一家其产品被 OpenAI、Google 和 Cloudflare 同时使用的开发者工具初创公司。此举拓展了 Anthropic 的企业开发者生态,增强其在 AI 平台竞争中的布局。交易金额未披露。 **来源:** [TechCrunch](https://techcrunch.com/2026/05/18/anthropic-has-acquired-the-dev-tools-startup-used-by-openai-google-and-cloudflare/) ## 3. 陪审团裁定马斯克在诉 OpenAI 及 Sam Altman 案中败诉 陪审团裁定埃隆·马斯克在针对 Sam Altman 和 OpenAI 的诉讼中败诉,驳回了关于公司治理和方向的主张。庭审核心涉及信义义务以及 OpenAI 从非营利向有限营利结构的转型。此裁决成为 AI 公司治理领域的重要法律里程碑。 **来源:** [TechCrunch](https://techcrunch.com/2026/05/18/elon-musk-has-lost-his-lawsuit-against-sam-altman-and-openai/) ## 4. Cerebras 以 55 亿美元完成 2026 年迄今最大科技 IPO AI 芯片公司 Cerebras 公开上市募资 55 亿美元,首日股价暴涨 108%。这是 2026 年迄今为止规模最大的科技 IPO,表明投资者对 NVIDIA 之外的 AI 训练与推理芯片存在强劲需求。 **来源:** [TechCrunch](https://techcrunch.com/2026/05/14/cerebras-raises-5-5b-kicking-off-2026s-ipo-season-with-a-bang/) ## 5. NVIDIA H200 对华出口协议在美中峰会中存续,但附加限制 NVIDIA H200 对华出口协议在美中领导人高层会谈中得以保留,但附带了影响 AI 芯片供应格局的意外限制条件。协议既保住了 NVIDIA 的关键收入渠道,又回应了美国对先进 AI 硬件流向中国实体的国家安全关切。 **来源:** [AI News](https://www.artificialintelligence-news.com/news/nvidia-h200-china-deal-stalled-trump-xi-summit-2026/) ## 6. OpenAI 以 Apache 2.0 协议发布开源安全模型 OpenAI 发布 **gpt-oss-safeguard** 开源权重推理模型(120B 和 20B),可根据用户自定义策略在推理时动态调整内容安全分类,规则变更无需重新训练。作为 ROOST 非营利倡议的一部分在 Hugging Face 上以 Apache 2.0 协议发布。120B 模型在 OpenAI 内部安全基准上超越 GPT-5(46.3% vs 43.2%)。 **来源:** [Maginative](https://www.maginative.com/article/openai-releases-open-weight-safety-models-that-rewrite-policy-rules-on-the-fly/) ## 7. IBM 研究院发布突破性模拟 AI 芯片,实现高效深度学习 IBM 研究院公开了一款用于高能效深度学习推理的新型模拟 AI 芯片。该芯片利用存内计算技术在模拟电路中直接执行矩阵运算,相比数字加速器有望将功耗降低数个数量级。此突破针对 AI 最紧迫的瓶颈之一:大规模推理的能源成本。 **来源:** [AI News](https://www.artificialintelligence-news.com/news/ibm-research-breakthrough-analog-ai-chip-deep-learning/) ## 8. Google 警告:恶意网页正在积极毒害 AI Agent Google 发布安全警报,警告攻击者正利用对抗性网页内容毒害浏览互联网的 AI Agent。攻击者可在网页中注入隐藏提示或数据,当被 AI 爬虫和 Agent 消费时操纵其行为或提取敏感信息。Google 建议开发者实施内容沙箱和检索验证机制。 **来源:** [AI News](https://www.artificialintelligence-news.com/news/google-warns-malicious-web-pages-poisoning-ai-agents/) ## 9. Hugging Face 平台发现伪装成 OpenAI 官方包的恶意软件 Hugging Face 平台上发现伪装成 OpenAI 官方发布的恶意软件,暴露了开源 AI 生态中的供应链安全漏洞。事件凸显了 AI 模型仓库中对包来源验证、加密签名和自动化安全扫描的迫切需求。 **来源:** [AI News](https://www.artificialintelligence-news.com/news/malware-on-hugging-face-malicious-software-masquerading-as-openai-release/) ## 10. 人形机器人进入真实工厂测试,物理 AI 迈向成熟 多家公司已开始在真实制造环境中测试人形机器人,从受控实验室演示迈入实际生产。这些部署测试机器人在多变、复杂任务中与人类工人协作的能力,标志着物理 AI——机器人、计算机视觉与自主决策在非结构化环境中的交汇——的重要里程碑。 **来源:** [AI News](https://www.artificialintelligence-news.com/news/physical-ai-humanoid-robots-factories/) --- *AI每日资讯由编辑团队从可信科技新闻源整理。最后更新:2026年5月19日。* --- ## Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战 URL: https://aidev.fit/zh/tech/git-advanced.html # Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战 如果你已经会 add/commit/push/pull,是时候学这三个进阶命令了。它们不会让你每天多用 Git,但在关键时刻能省下几个小时。 交互式 Rebase:整理你的提交历史 场景:你吭哧吭哧写了一下午,做了 12 个小提交,但提交信息都是 "wip"、"fix"、"fix again"。现在要提交 PR 了——这些乱七八糟的提交历史会让同事鄙视你。 git rebase -i HEAD~12 会打开编辑器,列出最近 12 个提交: pick a1b2c3d wip pick e4f5g6h fix typo pick i7j8k9l fix again pick m0n1o2p actually works now ... 核心操作: * **squash (s)** — 把当前提交合并到上一个,保留所有更改但合并为一个提交 * **fixup (f)** — 类似 squash,但丢弃当前提交的信息(适合那些 "wip" 提交) * **reword (r)** — 只改提交信息,不改内容 * **drop (d)** — 删除这个提交 * **edit (e)** — 停下来让你修改这个提交的内容 把 12 个乱七八糟的提交整理成 3 个逻辑清晰的提交: pick a1b2c3d feat: 添加用户登录 API fixup e4f5g6h wip fixup i7j8k9l fix typo pick m0n1o2p feat: 添加 JWT Token 验证 fixup n2o3p4q fix again pick r5s6t7u docs: 更新 API 文档 fixup v8w9x0y wip doc 保存退出,Git 自动完成。提交历史从一团乱麻变成清晰的叙事。**注意:只在还没 push 的分支上做 rebase。已经 push 的提交,rebase 会改写历史,需要 force push——在共享分支上这是灾难。** Cherry-Pick:精准移植代码 场景:你在 feature-A 分支上写了一个特别好用的工具函数,feature-B 也需要它。但你不想合并整个 feature-A 分支。 # 找到那个提交的 hash git log feature-A --oneline # 摘樱桃 git checkout feature-B git cherry-pick a1b2c3d Git 会把这个提交的变更单独应用到 feature-B 上,生成一个新的提交(hash 不同,内容相同)。 常见用法: * **移植 Bug 修复** — 在 hotfix 分支修了一个 Bug,cherry-pick 到 main 和 dev 分支 * **复用工具代码** — 在一个分支写的基础组件,移植到另一个分支 * **回滚后重新应用** — revert 了一个提交后又想加回来 # 一次 cherry-pick 多个提交 git cherry-pick a1b2c3d e4f5g6h i7j8k9l # 如果冲突了 git cherry-pick a1b2c3d # 解决冲突... git add . git cherry-pick --continue # 放弃这次 cherry-pick git cherry-pick --abort Git Bisect:二分法定位 Bug 场景:两周前一切正常,今天发现一个 Bug,但中间有 200 个提交。是谁引入的? Bisect 用二分查找自动定位——你只需要告诉 Git 哪个提交是好的、哪个是坏的,然后 Git 切到中间点让你测试。 git bisect start git bisect bad HEAD # 当前版本有 Bug git bisect good v2.0.0 # v2.0.0 是正常的 # Git 自动切到中间某个提交 # 测试这个版本有没有 Bug... # 如果有 Bug: git bisect bad # 如果正常: git bisect good # 重复 5-8 次,Git 定位到引入 Bug 的那个提交 # de7f3a2 is the first bad commit # 结束 bisect git bisect reset 200 个提交,log2(200) ≈ 8 次测试就能定位。比一个一个找快 25 倍。 # 自动化 bisect(如果你的测试可以用脚本跑) git bisect start git bisect bad HEAD git bisect good v2.0.0 git bisect run python test_specific_feature.py # Git 自动二分查找,输出引入 Bug 的提交 总结 命令| 用途| 一句话 ---|---|--- `git rebase -i`| 整理提交历史| 把 12 个 wip 整理成 3 个清晰的 commit `git cherry-pick`| 移植单个提交| 把 A 分支的好代码复制到 B 分支 `git bisect`| 二分查找 Bug| 从 200 个提交中快速定位是谁引入的 Bug 这三个命令是高级 Git 用户的标志。不需要每天用,但需要的时候知道怎么用——你的同事会以为你是 Git 魔法师。 📖 相关推荐 * [Git 常用命令速查表]() * [单元测试入门:从零到写出第一个可维护的测试]() * [REST API 设计最佳实践:写出让人愿意用的接口]() **See also:** [Git 常用命令速查表](), [VS Code 十大必备插件:让编码效率翻倍](), [10 款开发者必备的命令行工具(2026 版)](). --- ## 单元测试入门:从零到写出第一个可维护的测试 URL: https://aidev.fit/zh/tech/unit-testing-guide.html # 单元测试入门:从零到写出第一个可维护的测试 写单元测试是你从"会写代码"到"专业开发者"的分水岭。这篇文章用最少的理论带你直接上手。 为什么必须写测试 * **重构有底气** — 有测试覆盖的代码,改完跑一次就知道有没有破坏现有功能 * **文档即测试** — 测试描述了函数在各种输入下应该如何表现,比注释更可靠 * **减少回归 Bug** — 修一个 Bug 加一个测试,同样的错不会再犯第二次 AAA 模式(Arrange-Act-Assert) def test_add_two_numbers(): # Arrange(准备) a, b = 2, 3 # Act(执行) result = add(a, b) # Assert(断言) assert result == 5 第一个真实测试 # user_service.py def get_full_name(user): return f"{user.first_name} {user.last_name}" # test_user_service.py def test_get_full_name(): user = type('User', (), {'first_name': '张', 'last_name': '三'})() assert get_full_name(user) == "张 三" def test_get_full_name_empty_last(): user = type('User', (), {'first_name': '李', 'last_name': ''})() assert get_full_name(user) == "李 " Mock 和 Fixture # Fixture: 共享的测试数据 @pytest.fixture def sample_user(): return User(id=1, name="张三", email="zhang@test.com") def test_user_email(sample_user): assert sample_user.email == "zhang@test.com" # Mock: 隔离外部依赖 @patch("requests.get") def test_fetch_user(mock_get): mock_get.return_value.json.return_value = {"name": "张三"} result = fetch_user(1) assert result["name"] == "张三" 什么该测、什么不该测 * **该测** — 业务逻辑、边界条件、错误路径、数据转换 * **不该测** — 简单的 getter/setter、框架代码、第三方库的内部行为 起步建议不用追求 100% 覆盖率——那会增加大量维护负担。先给核心业务逻辑写测试,看到覆盖率数字攀升的成就感会推着你继续写。 📖 相关推荐 * [Python 入门教程:从零到写出第一个程序]() * [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战]() * [REST API 设计最佳实践:写出让人愿意用的接口]() **See also:** [Python 入门教程:从零到写出第一个程序](), [正则表达式 30 分钟入门指南](), [OpenAI API 入门:用 10 行代码调用 GPT](). --- ## REST API 设计最佳实践:写出让人愿意用的接口 URL: https://aidev.fit/zh/tech/rest-api-best-practices.html # REST API 设计最佳实践:写出让人愿意用的接口 好的 API 设计让调用方心情愉悦,坏的 API 让他们想砸键盘。这篇文章总结 10 条实战验证的设计原则。 URL 设计原则 * **用名词复数而非动词** — `GET /users` 不是 `GET /getUsers`。HTTP 方法已经表达了动作。 * **层级关系用嵌套 URL** — `GET /users/123/orders` 清晰表达了"用户 123 的订单"。 * **不要超过 3 层** — `/users/123/orders/456/items` 太深了,这种情况拆成 `/orders/456/items`。 * **用 kebab-case 不用 camelCase** — `/shipping-address` 不是 `/shippingAddress`。SEO 友好,肉眼易读。 HTTP 方法正确使用 方法| 操作| 幂等?| 示例 ---|---|---|--- GET| 读取| ✅| `GET /articles` POST| 创建| ❌| `POST /articles` PUT| 全量更新| ✅| `PUT /articles/1` PATCH| 部分更新| ❌| `PATCH /articles/1` DELETE| 删除| ✅| `DELETE /articles/1` 响应格式规范 { "data": { "id": 1, "title": "..." }, "meta": { "page": 1, "per_page": 20, "total": 150 }, "errors": null } 错误处理 * **用正确的 HTTP 状态码** — 400 参数错误、401 未认证、403 无权限、404 不存在、422 参数校验失败、429 频率限制、500 服务器错误。 * **错误信息结构化** — 返回 `{"errors":[{"code":"VALIDATION_ERROR","field":"email","message":"邮箱格式不正确"}]}`,不要只返回一个字符串。 五大常见反模式 1. **所有操作都用 POST** — 这是 RPC 不是 REST 2. **返回所有字段** — 支持 `?fields=id,title` 让客户端选择需要的字段 3. **不版本化** — URL 加 `/v1/` 前缀或在 Header 中指定版本 4. **不限制分页** — `per_page` 最大 100,防止一次请求拖垮数据库 5. **不写 API 文档** — OpenAPI/Swagger 规范是标配 📖 相关推荐 * [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战]() * [单元测试入门:从零到写出第一个可维护的测试]() * [正则表达式 30 分钟入门指南]() **See also:** [30 个免费又好用的 API 合集:开发者必备](), [OpenAI API 入门:用 10 行代码调用 GPT](), [AI 自动化工作流实战:让 AI 替你干重复活](). --- ## 正则表达式 30 分钟入门指南 URL: https://aidev.fit/zh/tech/regex-guide.html # 正则表达式 30 分钟入门指南 正则表达式是文本处理的瑞士军刀——验证表单、提取数据、搜索替换,没有比它更强的工具。学会它,一辈子受益。 基础元字符 符号| 含义| 示例匹配 ---|---|--- .| 任意单个字符| a.c → abc, a1c \d| 数字| \d\d\d → 123, 456 \w| 字母数字下划线| \w+ → hello_world \s| 空白字符| a\sb → "a b" [abc]| 字符组,匹配 a/b/c| [aeiou] → 元音字母 [^abc]| 取反,不匹配 a/b/c| [^0-9] → 非数字 量词 符号| 含义 ---|--- *| 0 次或多次 +| 1 次或多次 ?| 0 次或 1 次 {n}| 恰好 n 次 {n,m}| n 到 m 次 实战 5 例 # 1. 验证手机号(中国大陆) ^1[3-9]\d{9}$ # 2. 提取邮箱地址 [a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} # 3. 匹配 URL https?://[\w.-]+(:\d+)?(/[\w./-]*)? # 4. 提取 HTML 标签内容 >([^<]+)< # 5. 验证日期格式 YYYY-MM-DD ^\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01])$ 分组和捕获 # 匹配 "2026-05-07",分别捕获年月日 (\d{4})-(\d{2})-(\d{2}) # Python 中可以用 group(1) group(2) group(3) 获取 # 等价于 \1 \2 \3 在替换中引用 零宽断言(进阶) 符号| 含义| 示例 ---|---|--- (?=...)| 正向前瞻| \d+(?=元) 匹配"50元"中的50 (?<=...)| 正向后顾| (?<=¥)\d+ 匹配"¥50"中的50 (?!...)| 负向前瞻| \d+(?!元) 匹配后不跟"元"的数字 练习是关键 推荐在 **regex101.com** 上实操练习,它有交互式解释器、多语言支持和测试用例功能。每天练 2 个正则,一周后你就能随手写出匹配规则了。 📖 相关推荐 * [Linux 命令行入门:30 个最常用的命令]() * [Python 入门教程:从零到写出第一个程序]() * [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战]() **See also:** [Python 入门教程:从零到写出第一个程序](), [单元测试入门:从零到写出第一个可维护的测试](), [OpenAI API 入门:用 10 行代码调用 GPT](). --- ## Linux 命令行入门:30 个最常用的命令 URL: https://aidev.fit/zh/tech/linux-commands.html # Linux 命令行入门:30 个最常用的命令 不管你做不做运维,Linux 命令行都是程序员的必修课。这 30 个命令覆盖 80% 日常场景。 文件操作(10 个) 命令| 用途| 示例 ---|---|--- ls| 列出目录| `ls -la` cd| 切换目录| `cd /var/log` pwd| 显示当前路径| `pwd` mkdir| 创建目录| `mkdir -p a/b/c` cp| 复制文件| `cp -r src dst` mv| 移动/重命名| `mv old.txt new.txt` rm| 删除| `rm -rf dir/` cat| 查看文件内容| `cat file.txt` head/tail| 查看头/尾行| `tail -f log.txt` find| 搜索文件| `find . -name "*.py"` 文本处理(6 个) 命令| 用途| 示例 ---|---|--- grep| 文本搜索| `grep "error" log.txt` wc| 统计行/字数| `wc -l file.txt` sort| 排序| `sort -n data.txt` uniq| 去重| `sort file.txt | uniq -c` sed| 流编辑器| `sed 's/old/new/g' file.txt` awk| 列处理| `awk '{print $1}' data.txt` 权限管理(3 个) 命令| 用途| 示例 ---|---|--- chmod| 修改权限| `chmod +x script.sh` chown| 修改所有者| `chown user:group file` sudo| 超级用户权限| `sudo systemctl restart nginx` 系统信息(5 个) 命令| 用途 ---|--- ps aux| 查看进程 top/htop| 实时资源监控 df -h| 磁盘空间 free -h| 内存使用 uname -a| 系统信息 网络(3 个) 命令| 用途 ---|--- curl| 发送 HTTP 请求 ping| 测试连通性 netstat| 网络连接状态 管道和重定向(3 个) 符号| 用途| 示例 ---|---|--- || 管道| `cat log.txt | grep error | wc -l` >| 输出重定向| `echo "hello" > file.txt` >>| 追加输出| `echo "world" >> file.txt` 推荐学习路径 先掌握文件操作 → 文本处理 → 管道重定向(这是 Linux 的精髓)→ 权限管理 → Shell 脚本编写。 📖 相关推荐 * [正则表达式 30 分钟入门指南]() * [Python 入门教程:从零到写出第一个程序]() * [Git 常用命令速查表]() **See also:** [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战](), [单元测试入门:从零到写出第一个可维护的测试](), [REST API 设计最佳实践:写出让人愿意用的接口](). --- ## Python 入门教程:从零到写出第一个程序 URL: https://aidev.fit/zh/tech/python-tutorial.html # Python 入门教程:从零到写出第一个程序 Python 是最适合初学者的编程语言——语法接近自然语言,生态强大到几乎无所不能。这篇教程带你 30 分钟入门。 安装 Python macOS 自带 Python 3,终端输入 `python3 --version` 检查。Windows 去 python.org 下载安装包,安装时勾选 "Add Python to PATH"。 第一个程序 print("Hello, World!") 保存为 `hello.py`,终端运行 `python3 hello.py`,看到输出就成功了。 变量和数据类型 name = "小明" # 字符串 age = 25 # 整数 height = 1.75 # 浮点数 is_student = True # 布尔值 print(f"{name}今年{age}岁") 条件判断 score = 85 if score >= 90: print("优秀") elif score >= 60: print("及格") else: print("不及格") 循环 # for 循环 for i in range(5): print(f"第{i+1}次") # while 循环 count = 0 while count < 3: print(f"count = {count}") count += 1 列表和字典 # 列表 — 有序集合 fruits = ["苹果", "香蕉", "橘子"] fruits.append("葡萄") print(fruits[0]) # 苹果 # 字典 — 键值对 user = {"name": "小明", "age": 25, "city": "北京"} print(user["name"]) # 小明 函数 def greet(name): return f"你好,{name}!" print(greet("小明")) # 你好,小明! 下一步学什么 1. **pip 包管理** — 安装第三方库 2. **文件读写** — 处理文本和 CSV 3. **requests 库** — 爬取网页和调用 API 4. **Flask** — 写一个简单的 Web 应用 📖 相关推荐 * [单元测试入门:从零到写出第一个可维护的测试]() * [正则表达式 30 分钟入门指南]() * [Linux 命令行入门:30 个最常用的命令]() **See also:** [正则表达式 30 分钟入门指南](), [单元测试入门:从零到写出第一个可维护的测试](), [OpenAI API 入门:用 10 行代码调用 GPT](). --- ## GitHub Copilot 完全使用指南:从安装到高效协作 URL: https://aidev.fit/zh/tech/github-copilot-guide.html # GitHub Copilot 完全使用指南:从安装到高效协作 GitHub Copilot 是目前最成熟的 AI 编程助手。但很多人只用到了它的 30% 能力——只会按 Tab 接受补全。这篇文章帮你榨干它。 快速上手 1. VS Code 扩展商店搜索 "GitHub Copilot" 安装 2. 用 GitHub 账号登录,个人版 $10/月(学生免费) 3. 打开任意代码文件,Copilot 会自动开始建议 核心快捷键(必须记住) 快捷键| 功能 ---|--- Tab| 接受当前建议 Esc| 拒绝建议 Alt + ]| 下一个建议 Alt + [| 上一个建议 Ctrl + Enter| 打开 Copilot 面板,一次性看 10 个建议 Ctrl + I| 打开内联聊天(Chat in Editor) Ctrl + Shift + I| 打开 Copilot Chat 侧边栏 上下文工程:让 AI 理解你的意图 Copilot 不是读心术。它从你当前文件和相关打开的文件中获取上下文。以下技巧显著提升建议质量: * **保持相关文件打开** — Copilot 会读取你当前打开的所有标签页。写前端组件时把类型定义文件也开着。 * **先写注释再写代码** — 用注释描述你要实现的功能,Copilot 的注释转代码能力非常强。 * **写好函数签名** — 函数名和参数名是对 AI 最直接的提示。 * **给好示例** — 在同一文件中先手写一两个正确的示例,后续补全质量明显提升。 Chat 功能:不只是补全 * **解释代码** — 选中代码 → Ctrl+Shift+I → "explain this" * **重构代码** — 选中 → "refactor this to use async/await" * **生成测试** — 选中函数 → "/tests" 自动生成单元测试 * **修复 Bug** — 选中报错代码 → "/fix" 自动诊断并修复 常见陷阱 * **盲目信任** — Copilot 会写出看起来正确但有安全漏洞的代码,永远 review。 * **死循环接受** — 不要一直按 Tab,每接受一个建议后看一眼逻辑是否正确。 * **忽略旧 API** — Copilot 训练数据可能包含过时的库版本,遇到不认识的 API 先查文档。 📖 相关推荐 * [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战]() * [单元测试入门:从零到写出第一个可维护的测试]() * [REST API 设计最佳实践:写出让人愿意用的接口]() **See also:** [AI 编程助手对比 2026:Cursor vs Copilot vs Claude Code 怎么选](), [用 AI 辅助编程:从零到生产力](), [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战](). --- ## Docker 30 分钟入门:从安装到第一个容器 URL: https://aidev.fit/zh/tech/docker-quickstart.html # Docker 30 分钟入门:从安装到第一个容器 Docker 是现代开发者的必备技能。这篇文章用最通俗的语言带你 30 分钟上手。 为什么需要 Docker * **环境一致性** — "我电脑上能跑啊" 从此成为历史。开发、测试、生产环境完全一致。 * **快速部署** — 一条命令启动完整环境,不用装数据库、配环境变量。 * **资源隔离** — 每个项目独立运行,不互相干扰。 核心概念三件套 概念| 比喻| 说明 ---|---|--- 镜像 (Image)| 系统安装盘| 只读模板,包含运行应用所需的一切 容器 (Container)| 运行中的虚拟机| 镜像的运行实例,相互隔离 Dockerfile| 安装说明书| 定义如何构建镜像的文本文件 安装 Docker macOS 用户推荐 [OrbStack]()(轻量替代 Docker Desktop),或直接 `brew install docker`。Windows/Linux 用户去 docker.com 下载即可。 第一个容器 # 拉取并运行 nginx docker run -d -p 8080:80 --name my-nginx nginx # 浏览器打开 http://localhost:8080 就能看到 nginx 欢迎页 写一个 Dockerfile FROM python:3.12-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt COPY . . EXPOSE 8000 CMD ["python", "app.py"] 常用命令速查 `docker ps`| 查看运行中的容器 ---|--- `docker images`| 查看本地镜像 `docker build -t name .`| 构建镜像 `docker exec -it name bash`| 进入容器 shell `docker-compose up -d`| 启动多容器应用 下一步 掌握这些就可以开始在工作中使用 Docker 了。推荐下一步学习 docker-compose 多容器编排和 Docker Hub 镜像仓库。 📖 相关推荐 * [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战]() * [单元测试入门:从零到写出第一个可维护的测试]() * [REST API 设计最佳实践:写出让人愿意用的接口]() **See also:** [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战](), [单元测试入门:从零到写出第一个可维护的测试](), [REST API 设计最佳实践:写出让人愿意用的接口](). --- ## VS Code 十大必备插件:让编码效率翻倍 URL: https://aidev.fit/zh/tech/vscode-extensions.html # VS Code 十大必备插件:让编码效率翻倍 VS Code 是目前最流行的代码编辑器没有之一。装对这 10 个插件,编码效率可以翻倍。 AI 编程类 * **GitHub Copilot** — AI 代码补全的开创者,支持行内补全、函数生成、注释转代码。付费($10/月),学生免费。 * **Codeium** — 免费的 AI 补全替代方案,速度比 Copilot 快,支持 70+ 语言,企业版才收费。 Git 可视化 * **GitLens** — 行级 Git Blame、文件历史、分支对比,免费版功能已很强。必装。 * **Git Graph** — 可视化 Git 提交树,鼠标点几下就能完成 checkout、merge、revert 操作。 代码质量 * **Prettier** — 代码格式化工具,支持 JS/TS/CSS/HTML/JSON 等,保存时自动格式化,团队协作统一风格必备。 * **ESLint** — JavaScript/TypeScript 代码检查,实时标记潜在错误和风格问题。 效率工具 * **Auto Rename Tag** — 修改 HTML/JSX 标签自动同步配对标签,小小的改动巨大提升体验。 * **Path Intellisense** — 输入文件路径时自动补全,引号和 import 语句必备。 * **Remote - SSH** — 微软官方出品,直接在 VS Code 里编辑远程服务器上的代码,免去 scp 和 vim 的痛苦。 * **Error Lens** — 把错误信息内联显示在代码行尾,不用鼠标悬停就能看到完整报错。 经验之谈 插件不是越多越好——装太多会拖慢启动速度。这 10 个是我用过上百个插件后留下的"真必需品"。Copilot 或 Codeium 二选一即可,两个同时开会冲突。 📖 相关推荐 * [macOS 效率工具推荐合集]() * [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战]() * [单元测试入门:从零到写出第一个可维护的测试]() **See also:** [Git 常用命令速查表](), [10 款开发者必备的命令行工具(2026 版)](), [VS Code vs JetBrains vs Cursor:2026 年代码编辑器终极对比](). --- ## Git 常用命令速查表 URL: https://aidev.fit/zh/tech/git-cheatsheet.html # Git 常用命令速查表 日常开发中 Git 是最常用的版本控制工具。这里整理了高频命令,按场景分类,方便速查。 分支管理 命令| 说明 ---|--- `git branch`| 查看本地分支 `git branch -r`| 查看远程分支 `git branch `| 创建新分支 `git checkout `| 切换分支 `git checkout -b `| 创建并切换到新分支 `git merge `| 合并指定分支到当前分支 `git branch -d `| 删除本地分支 `git push origin --delete `| 删除远程分支 暂存与提交 命令| 说明 ---|--- `git status`| 查看工作区状态 `git add `| 添加文件到暂存区 `git add .`| 添加所有更改到暂存区 `git commit -m "msg"`| 提交暂存区内容 `git commit --amend`| 修改上一次提交 撤销操作 命令| 说明 ---|--- `git restore `| 撤销工作区修改 `git restore --staged `| 取消暂存 `git reset --soft HEAD~1`| 撤销上次 commit,保留修改 `git reset --hard HEAD~1`| 撤销上次 commit,丢弃修改 `git revert `| 安全撤销某次提交(生成新 commit) 远程协作 命令| 说明 ---|--- `git remote -v`| 查看远程仓库地址 `git push`| 推送当前分支到远程 `git pull`| 拉取远程更新并合并 `git fetch`| 拉取远程更新但不合并 `git clone `| 克隆远程仓库 日志与历史 命令| 说明 ---|--- `git log --oneline`| 查看简洁提交历史 `git log --graph --oneline`| 查看分支图 `git diff`| 查看未暂存的修改 `git diff --staged`| 查看已暂存的修改 储藏 (Stash) 命令| 说明 ---|--- `git stash`| 暂存当前修改到储藏栈 `git stash pop`| 恢复最近一次储藏并删除 `git stash list`| 查看储藏列表 `git stash drop`| 删除最近一次储藏 📖 相关推荐 * [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战]() * [Linux 命令行入门:30 个最常用的命令]() * [单元测试入门:从零到写出第一个可维护的测试]() **See also:** [VS Code 十大必备插件:让编码效率翻倍](), [10 款开发者必备的命令行工具(2026 版)](), [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战](). --- ## macOS 效率工具推荐合集 URL: https://aidev.fit/zh/tech/macos-tools.html # macOS 效率工具推荐合集 一套好用的工具能让 Mac 工作效率翻倍。这里整理了我长期使用后筛选出的精品工具,涵盖各个高频场景。 启动器与搜索 * **Raycast** — 免费且功能强大的启动器,替代 Spotlight。支持剪贴板历史、窗口管理、快捷搜索、插件扩展。比 Alfred 更现代,社区生态活跃。 * **Alfred** — 老牌启动器,Powerpack 付费后可自定义 Workflow。功能深度够,但界面略显老旧。 窗口管理 * **Rectangle** — 开源免费,快捷键快速分屏。支持左右半屏、四分之一屏、全屏等布局。 * **Magnet** — 付费($8),拖拽窗口到边缘自动吸附分屏,操作直觉化。 剪贴板管理 * **Maccy** — 开源免费,轻量级剪贴板管理器。菜单栏快捷访问,支持纯文本粘贴。 * **Paste** — 付费订阅,可视化剪贴板界面华丽,适合设计类工作。 截图与录屏 * **CleanShot X** — 付费($29 一次性),截图标注、滚动截图、录屏、OCR 文字识别。功能最全。 * **Shottr** — 免费(基础功能),轻量截图工具,支持像素级放大镜和取色器。 终端工具 * **iTerm2** — 老牌终端增强,分屏、热键窗口、Shell Integration。 * **Warp** — 现代化的 Rust 终端,AI 辅助命令,团队协作功能。 * **Homebrew** — macOS 必不可少的包管理器。`brew install ` 搞定一切。 其他精品 * **IINA** — 开源视频播放器,界面优雅,支持所有格式。 * **Keka** — 免费解压工具,支持 7z、RAR、ZIP 等格式。 * **AppCleaner** — 彻底卸载应用并清理残留文件。 📖 相关推荐 * [VS Code 十大必备插件:让编码效率翻倍]() * [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战]() * [单元测试入门:从零到写出第一个可维护的测试]() **See also:** [Git 进阶:交互式 rebase、cherry-pick 和 bisect 实战](), [单元测试入门:从零到写出第一个可维护的测试](), [REST API 设计最佳实践:写出让人愿意用的接口](). --- ## Web 安全入门:每个开发者都应知道的 10 个安全实践 URL: https://aidev.fit/zh/tech/web-security-basics.html # Web 安全入门:每个开发者都应知道的 10 个安全实践 "安全是运维的事"——这是 Web 开发中最危险的误解。实际上,**大多数安全漏洞都来自应用层代码** :没有校验的用户输入、硬编码的密钥、错误配置的 CORS。本文用最直白的语言讲清楚 10 个你明天就能用上的安全实践。 1\. 永远不要信任用户输入(XSS 防御) 跨站脚本攻击(XSS)的原理很简单:攻击者在输入框里插入 JavaScript 代码,你的网站原封不动地把它显示给其他用户,然后代码就执行了。 **三种 XSS 类型** : * **存储型 XSS** :恶意脚本被存到数据库,每次有人访问页面都会执行。比如论坛帖子内容里插入了 script 标签。 * **反射型 XSS** :恶意脚本通过 URL 参数传入,服务端直接返回到页面。比如搜索结果的"你搜索了: