第1827篇:技术博客写作方法论——如何写出有深度又有传播力的技术文章
第1827篇:技术博客写作方法论——如何写出有深度又有传播力的技术文章
我写公众号快两年了,前期发的一些文章,读者寥寥,评论几乎没有。后来有几篇开始有人转发,评论区开始热闹起来。
我仔细想了想这两类文章的区别,总结出来跟大家分享。
先说结论:有传播力的技术文章,不是"写得更技术",而是"写得更真实"。读者不需要再一篇完美正确的教科书,他们需要的是一个走过相同路的人,告诉他"这里有个坑,我掉进去了,是这么爬出来的"。
一、为什么大多数技术文章都写不好
你打开掘金、InfoQ,随机点十篇Java技术文章,我估计有七八篇是这个结构:
什么是XXX?XXX有以下特点……XXX的使用方法如下……代码示例如下……总结……
这种文章的问题不是内容错误,而是读者不知道为什么要读这篇,读完也不知道从这篇得到了什么新的东西。
它和官方文档的区别是什么?几乎没有。
真正好的技术文章,应该是你作为一个真实的工程师,走过某个具体的问题,有你的判断、你的踩坑、你的方法,这些是文档里没有的,是你独特的贡献。
二、选题:找到那个"值得被写下来"的点
选题是写作最难的部分,很多人觉得"没有什么好写的"。
其实不是没有内容,而是判断错了什么值得写。
2.1 最好的选题来自你的真实工作
把最近三个月遇到的技术问题列出来:
- 花了超过2小时才解决的Bug
- 做了技术选型,比较了几个方案
- 某个概念一直模糊,最近终于搞清楚了
- 某个"常规"方案在特定场景下失效了
- 和别人讨论技术方案,你有不同意见
这些都是好素材。不是因为别人写过或没写过,而是你有第一手的经历和判断。
2.2 判断一个选题是否值得写
几个维度:
问题的普遍性: 这个问题只有你会遇到,还是很多人都会遇到?最好是"我遇到了,但网上没有清晰的解答"这种情况。
你有独特视角吗: 如果你写的和百度第一个搜索结果差不多,写出来意义不大。你要有"你觉得这些解释没说清楚的地方"或"你踩了这个坑但网上没人提"。
你能写清楚吗: 如果一个话题你自己都还没彻底搞懂,写出来可能是误导读者,不如先搞清楚再写。
三、文章结构:从解决读者的迷惑开始
好的文章结构不是"介绍→原理→示例→总结",而是以读者的认知路径为线索。
我常用的两种结构:
3.1 问题驱动型
1. 描述一个具体的、有代入感的问题场景
2. 分析这个问题的根本原因
3. 提出解决方案(可以先说结论)
4. 展开细节和实现
5. 说明方案的边界和注意事项
6. 延伸思考这个结构的好处是:读者一开始就知道"读这篇文章对我有什么用"。如果开头的问题场景他遇到过,他会迫不及待地往下读。
3.2 经历叙述型
1. 说明背景(做了什么项目,遇到了什么情况)
2. 遇到的第一个问题 → 我是怎么想的 → 怎么解决的
3. 第二个问题...
4. 全局回顾:做了什么关键决策,为什么
5. 如果重来,会怎么做这种结构读起来有故事感,读者更容易代入。缺点是如果写得流水账,容易变成"日记体",失去技术深度。
关键是在叙述经历的同时,说清楚决策的逻辑和判断的依据。
四、开头:头100字决定读者去不去
很多工程师写文章,开头是这样的:
"本文将介绍Spring AI框架的使用方法,包括……"
读者心里的反应:好的,等我有需要的时候再来看。(然后就再也没来)
更好的开头:
去年我们把一个智能客服系统从Python重写成Java,有一段时间我以为这是个错误决定——Java生态里的AI工具还很不成熟,很多Python的功能直接移植不过来。但三个月下来,我改变了看法。今天想把这段踩坑经历系统说一说。
这个开头做了几件事:
- 有一个具体的场景(Java重写AI系统)
- 有戏剧性张力(一度觉得是错误)
- 有价值预期(有踩坑经历要分享)
- 没有从定义开始
两个规律:好的技术文章开头不以"本文"开头;开头里最好有一个你自己的观点或判断。
五、代码示例的写法
很多文章的代码示例是从文档里复制的,这没有意义。代码示例应该服务于文章的论点。
原则一:代码要能直接跑。
如果你的示例缺少import、缺少依赖配置、在某个版本上有问题,读者会立刻失去信任。最好是有一个真实能跑的项目作为基础,示例代码来自真实代码的简化版本。
原则二:用注释解释"为什么",不解释"是什么"。
// 差的注释(解释了"是什么",代码本身已经说了)
// 创建一个ChatClient
ChatClient client = ChatClient.create(model);
// 好的注释(解释"为什么")
// 这里创建ChatClient时不设置默认System Prompt
// 因为我们的业务场景需要根据用户角色动态设置不同的System Prompt
// 在请求级别传入会更灵活
ChatClient client = ChatClient.create(model);原则三:展示"踩坑"版本和"正确"版本的对比。
// 常见的写法(有问题)
public String chat(String message) {
// 每次调用都创建新的ChatClient,性能差
ChatClient client = ChatClient.create(chatModel);
return client.prompt(message).call().content();
}
// 正确的写法:ChatClient是线程安全的,应该复用
@Component
public class ChatService {
private final ChatClient chatClient;
public ChatService(ChatModel chatModel) {
// 在Bean创建时初始化一次,之后复用
this.chatClient = ChatClient.create(chatModel);
}
public String chat(String message) {
return chatClient.prompt(message).call().content();
}
}对比写法让读者理解"为什么这样不行,为什么那样可以",比只给答案的价值高很多。
六、踩坑和观点:最有传播力的内容
我观察自己文章的数据,传播最好的往往不是"最全面的教程",而是"说出了别人想说但没说的话"。
具体体现在:
- 你说某个工具有什么坑,踩坑的人看了立刻有共鸣
- 你对某个技术方向有判断,读者会在评论区说"我也这样觉得"或"我不同意,我认为..."
- 你分享某个反直觉的发现,读者会转发给同事
这意味着:写作时要敢于有立场。
不是胡说,是在充分了解某个话题之后,给出你的判断,并且说清楚判断依据。
举个例子,关于RAG的分块策略,可以这样写:
很多教程说分块大小设成512个token就好,我觉得这是害人的。512这个数字来自某篇论文对英文技术文档的实验,直接搬到中文业务文档上,效果可能很差。我们内部测试下来,对于结构化的产品文档,按段落语义分块比固定长度效果好20%以上,但前提是文档格式足够规范。如果文档格式乱,固定长度反而更稳定……
这段话有判断、有数据支撑、有适用条件——这种内容才是有价值的。
七、长度和密度的平衡
技术文章不是越长越好,也不是越短越好,而是和内容密度匹配。
我的经验:
- 概念解释类:1500-3000字足够,超过这个长度往往是在凑字数
- 实战操作类:3000-5000字,有完整的代码示例
- 深度分析类:5000字以上,但每一段都要有密度
"密度"是关键词。每一段都应该能回答"这段告诉了读者什么新东西"。
如果删掉某一段,文章的核心论点没有任何损失,那这段就是冗余的。
检查文章的方法:把文章里每个H2标题列出来,看看这些标题串起来是否讲了一个完整的故事,是否有逻辑递进。如果标题顺序乱了文章也不影响阅读,说明结构有问题。
八、修改比写作更重要
很多人写完就发出去了。我现在的流程是:
- 写初稿(不管质量,把想说的都写出来)
- 放一天,第二天再看
- 第一遍修改:删掉所有废话,包括"本文将……""总的来说……"这类
- 第二遍修改:检查每个代码示例是否能运行,技术细节是否正确
- 第三遍修改:重写开头(初稿开头通常都不好),优化标题
其中"放一天再看"是最有效的一个步骤。
昨天你觉得写得很好的段落,今天可能会发现它其实绕弯子;昨天你觉得理所当然的东西,今天可能发现没有充分解释清楚。
九、关于标题
公众号文章的标题对打开率影响很大。
我见过的标题有几种类型:
描述型(弱): "Spring AI框架使用指南" 问题型(中等): "Spring AI框架怎么选?"
观点型(强): "我用Spring AI做了10个项目,有3个被我推翻重做了" 反常识型(强): "别再用固定长度分块做RAG了"
观点型和反常识型标题传播力更强,因为它们预设了一个有立场的判断,会激发读者的好奇或认同。
但要注意:标题有立场,文章内容必须支撑这个立场。标题党只是短期有用,长期损害的是作者的可信度。
十、培养写作习惯的实用建议
理论说了很多,最关键的还是开始写,持续写。
建立素材库。 每遇到一个有意思的技术问题或发现,记录下来(一句话就够)。这是选题的种子,不然到真的要写的时候脑子空空。
设定写作时间,不依赖灵感。 我是每周四晚上写,不管那天有没有灵感。"等灵感来了再写"实际上是永远不写。
先完成,再完美。 发出去的次品,比存在草稿箱里的精品价值高。读者反馈会告诉你哪里需要改进,自己改1000遍不如发出去收到一条有价值的评论。
不跟踪数据太频繁。 文章发出后的前几天,我不看阅读数和转发数。那些数字对改进下一篇没有帮助,只会影响情绪。改善写作的方式是认真读每一条评论,找到读者真正关心什么。
持续写作两年带给我最大的收获,不是公众号涨了多少粉,而是我对自己做的事情的理解深了很多——因为写清楚一件事,需要你真的弄明白它。
写作是最好的学习方法之一。
