技术博客写作Skill technical-blog-writing

技术博客写作技能用于撰写面向开发者的高质量技术博客文章,提供结构化写作指南、代码示例和SEO优化建议,帮助创建教程、深入解析、架构设计等内容,适用于工程博客、开发教程、技术营销和内容创作。关键词:技术博客,写作,开发者,教程,代码示例,SEO优化,内容营销。

内容营销 0 次安装 0 次浏览 更新于 3/12/2026

name: technical-blog-writing description: “技术博客文章写作,包含结构、代码示例和面向开发者的约定。涵盖文章类型、代码格式化、解释深度和开发者特定的参与模式。适用于:工程博客、开发教程、技术写作、开发者内容、文档文章。触发词:技术博客、开发博客、工程博客、技术写作、开发者教程、技术帖子、代码教程、编程博客、开发者内容、技术文章、工程帖子、编码教程、技术内容” allowed-tools: Bash(infsh *)

技术博客写作

通过 inference.sh CLI 撰写面向开发者的技术博客文章。

快速开始

curl -fsSL https://cli.inference.sh | sh && infsh login

# 研究主题深度
infsh app run exa/search --input '{
  "query": "building REST API Node.js best practices 2024 tutorial"
}'

# 生成标题图像
infsh app run infsh/html-to-image --input '{
  "html": "<div style=\"width:1200px;height:630px;background:linear-gradient(135deg,#0f172a,#1e293b);display:flex;align-items:center;padding:60px;font-family:ui-monospace,monospace;color:white\"><div><p style=\"font-size:18px;color:#38bdf8;margin:0\">// engineering blog</p><h1 style=\"font-size:48px;margin:16px 0;font-weight:800;font-family:system-ui;line-height:1.2\">How We Reduced API Latency by 90% with Edge Caching</h1><p style=\"font-size:20px;opacity:0.6;font-family:system-ui\">A deep dive into our CDN architecture</p></div></div>"
}'

安装说明: 安装脚本 仅检测您的操作系统/架构,从 dist.inference.sh 下载匹配的二进制文件,并验证其 SHA-256 校验和。不需要提升权限或后台进程。手动安装和验证 可用。

文章类型

1. 教程 / 操作指南

分步指导。读者应能跟随并构建某些东西。

结构:
1. 我们要构建什么(带有截图/演示)
2. 先决条件
3. 步骤 1:设置
4. 步骤 2:核心实现
5. 步骤 3:...
6. 完整代码(GitHub 链接)
7. 下一步 / 扩展
规则 原因
先展示最终结果 读者知道是否值得继续
明确列出先决条件 不浪费错误受众的时间
每个代码块都应可运行 复制粘贴运行是测试
解释“为什么”而不仅仅是“如何” 解释推理的教程更易分享
包含错误处理 真实代码有错误
链接到完整代码仓库 教程后参考

2. 深入解析 / 解释器

深入解释一个概念、技术或架构决策。

结构:
1. 什么是 [概念] 以及为什么您应该关心?
2. 如何工作(简化心理模型)
3. 如何工作(详细机制)
4. 现实世界示例
5. 权衡和何时不使用它
6. 进一步阅读

3. 事后分析 / 事件报告

描述发生了什么、原因以及修复了什么。

结构:
1. 摘要(发生了什么、影响、持续时间)
2. 事件时间线
3. 根因分析
4. 实现的修复
5. 我们正在做些什么以防止再次发生
6. 经验教训

4. 基准测试 / 比较

数据驱动的工具、方法或架构比较。

结构:
1. 我们比较了什么以及为什么
2. 方法论(使结果可复现)
3. 带图表/表格的结果
4. 分析(数字含义)
5. 推荐(带警告)
6. 原始数据 / 可复现性说明

5. 架构 / 系统设计

解释系统如何构建以及决策原因。

结构:
1. 我们需要解决的问题
2. 约束和要求
3. 考虑的选项
4. 选择的架构(带图表)
5. 我们接受的权衡
6. 结果和经验

面向开发者的写作规则

声音和语调

不做
直接:“使用连接池” “您可能想考虑使用…”
承认权衡:“这会增加复杂性” 假装您的解决方案完美
使用“我们”表示团队决策 “我独自架构了…”
具体数字:“p99 从 800ms 减少到 90ms” “显著改善性能”
引用来源和基准测试 做出未引用声明
承认替代方案 假装您的方法是唯一方式

开发者讨厌的

❌ "在当今快节奏的技术世界中..."(填充内容)
❌ "正如我们都知道的..."(如果我们都知道,为什么要写?)
❌ "只需做 X"(如果您正在阅读教程,没有什么是简单的)
❌ "很容易..."(轻视读者经验)
❌ "显然..."(如果明显,就不要写)
❌ 技术内容中的营销语言
❌ 在 3 段上下文下埋没主题

代码示例

规则 原因
每个代码块必须可运行 损坏的示例破坏信任
显示完整、工作示例 没有上下文的片段无用
在围栏块中包含语言标识符 语法高亮
显示代码后的输出/结果 读者验证理解
使用现实变量名称 calculateTotalRevenue 而不是 foo
在示例中包含错误处理 真实代码处理错误
固定依赖版本 “与 React 18.2 兼容” 而不是 “React”
良好代码块格式:

```python
# 此代码做什么(一行)
def calculate_retry_delay(attempt: int, base_delay: float = 1.0) -> float:
    """指数退避与抖动。"""
    delay = base_delay * (2 ** attempt)
    jitter = random.uniform(0, delay * 0.1)
    return delay + jitter

# 使用
delay = calculate_retry_delay(attempt=3)  # ~8.0-8.8 秒

### 解释深度

| 受众信号 | 深度 |
|----------------|-------|
| "开始使用 X" | 解释一切,假设无先验知识 |
| "高级 X 模式" | 跳过基础,深入细节 |
| "X vs Y" | 假设熟悉两者,聚焦差异 |
| "我们如何构建 X" | 技术受众,可跳过基础 |

**在开头明确说明假设的受众水平**:

“本文假设熟悉 Docker 和基本 Kubernetes 概念。 如果您是容器新手,请从 [我们的介绍文章] 开始。”


## 博客文章结构

### 理想结构

```markdown
# 标题(包含主要关键词,陈述结果)

[英雄图像或图表]

**TL;DR:** [2-3 句摘要,包含关键要点]

## 问题 / 为什么重要
[设置为什么读者应该关心 — 具体,不泛泛]

## 解决方案 / 我们如何做到
[核心内容 — 代码、架构、解释]

### 步骤 1: [第一件事]
[解释 + 代码 + 输出]

### 步骤 2: [第二件事]
[解释 + 代码 + 输出]

## 结果
[数字、基准测试、结果 — 具体]

## 权衡和限制
[诚实谈论缺点 — 建立信任]

## 结论
[关键要点 + 下一步做什么]

## 进一步阅读
[3-5 个相关链接]

按类型字数

类型 字数 原因
快速提示 500-800 一个概念,一个示例
教程 1,500-3,000 分步需要细节
深入解析 2,000-4,000 彻底探索
架构文章 2,000-3,500 图表承担部分负载
基准测试 1,500-2,500 数据和图表承担重任

图表和视觉元素

何时使用图表

场景 图表类型
请求流程 序列图
系统架构 框线图
决策逻辑 流程图
数据模型 ER 图
性能比较 条形/折线图
前后对比 并排
# 生成架构图
infsh app run infsh/html-to-image --input '{
  "html": "<div style=\"width:1200px;height:600px;background:#0f172a;display:flex;align-items:center;justify-content:center;padding:40px;font-family:system-ui;color:white\"><div style=\"display:flex;gap:40px;align-items:center\"><div style=\"background:#1e293b;border:2px solid #334155;border-radius:8px;padding:24px;text-align:center;width:160px\"><p style=\"font-size:14px;color:#94a3b8;margin:0\">客户端</p><p style=\"font-size:18px;font-weight:bold;margin:8px 0 0\">React 应用</p></div><div style=\"color:#64748b;font-size:32px\">→</div><div style=\"background:#1e293b;border:2px solid #3b82f6;border-radius:8px;padding:24px;text-align:center;width:160px\"><p style=\"font-size:14px;color:#94a3b8;margin:0\">边缘</p><p style=\"font-size:18px;font-weight:bold;margin:8px 0 0\">CDN 缓存</p></div><div style=\"color:#64748b;font-size:32px\">→</div><div style=\"background:#1e293b;border:2px solid #334155;border-radius:8px;padding:24px;text-align:center;width:160px\"><p style=\"font-size:14px;color:#94a3b8;margin:0\">API</p><p style=\"font-size:18px;font-weight:bold;margin:8px 0 0\">Node.js</p></div><div style=\"color:#64748b;font-size:32px\">→</div><div style=\"background:#1e293b;border:2px solid #334155;border-radius:8px;padding:24px;text-align:center;width:160px\"><p style=\"font-size:14px;color:#94a3b8;margin:0\">数据库</p><p style=\"font-size:18px;font-weight:bold;margin:8px 0 0\">PostgreSQL</p></div></div></div>"
}'

# 生成基准测试图表
infsh app run infsh/python-executor --input '{
  "code": "import matplotlib.pyplot as plt
import matplotlib
matplotlib.use(\"Agg\")

fig, ax = plt.subplots(figsize=(12, 6))
fig.patch.set_facecolor(\"#0f172a\")
ax.set_facecolor(\"#0f172a\")

tools = [\"Express\", \"Fastify\", \"Hono\", \"Elysia\"]
rps = [15000, 45000, 62000, 78000]
colors = [\"#64748b\", \"#64748b\", \"#3b82f6\", \"#64748b\"]

ax.barh(tools, rps, color=colors, height=0.5)
for i, v in enumerate(rps):
    ax.text(v + 1000, i, f\"{v:,} req/s\", va=\"center\", color=\"white\", fontsize=14)

ax.set_xlabel(\"每秒请求数\", color=\"white\", fontsize=14)
ax.set_title(\"HTTP 框架基准测试(Hello World)\", color=\"white\", fontsize=18, fontweight=\"bold\")
ax.tick_params(colors=\"white\", labelsize=12)
ax.spines[\"top\"].set_visible(False)
ax.spines[\"right\"].set_visible(False)
ax.spines[\"bottom\"].set_color(\"#334155\")
ax.spines[\"left\"].set_color(\"#334155\")
plt.tight_layout()
plt.savefig(\"benchmark.png\", dpi=150, facecolor=\"#0f172a\")
print(\"已保存\")"
}'

分发

开发者阅读地点

平台 格式 如何发布
您的博客 完整文章 主要 — 拥有您的内容
Dev.to 交叉发布(规范 URL 返回您的博客) Markdown 导入
Hashnode 交叉发布(规范 URL) Markdown 导入
Hacker News 链接提交 Show HN 用于项目,Tell HN 用于故事
Reddit(r/programming、r/webdev 等) 链接或讨论 遵循子版块规则
Twitter/X 线程摘要 + 链接 见 twitter-thread-creation 技能
LinkedIn 适配版本 + 链接 见 linkedin-content 技能
# 交叉发布线程到 X
infsh app run x/post-create --input '{
  "text": "新博客文章:我们如何将 API 延迟减少 90%

简短版本:
→ 将计算移至边缘
→ 积极的缓存控制标头
→ 消除 N+1 查询

p99 从 800ms 减少到 90ms。

带代码的完整深入解析: [链接]"
}'

常见错误

错误 问题 修复
无 TL;DR 繁忙开发者未获要点就离开 顶部 2-3 句摘要
损坏代码示例 破坏所有可信度 发布前测试每个代码块
无版本固定 代码在 6 个月后失效 “与 Node 20、React 18.2 兼容”
“只需做 X” 轻视、傲慢 删除 “只需”、“仅仅”、“容易”
架构无图表 用文字墙描述系统 一个图表 > 500 字描述
营销语调 开发者立即脱离 直接、技术性、诚实
无权衡部分 读起来像偏颇营销 始终讨论缺点
内容前冗长介绍 读者跳出 在 2-3 段内切入主题
未固定依赖 教程对将来读者失效 固定版本,注明撰写日期
无 “进一步阅读” 死胡同,无上下文 3-5 个链接加深理解

相关技能

npx skills add inference-sh/skills@seo-content-brief
npx skills add inference-sh/skills@content-repurposing
npx skills add inference-sh/skills@og-image-design

浏览所有应用:infsh app list