不喜欢写文档;
不喜欢项目文档太少。
](http://www.infoq.com/news/2009/06/Twitter-Architecture)
例:Netflix 的账单系统架构图。
[
](http://medium.com/netflix-techblog/netflix-billing-migration-to-aws-451fba085a4)
- 流程图
流程图是软件项目文档中一种常用图形,可以方便的表示各种不同条件下的逻辑路径。**要画好流程图不难,重点是要理清楚逻辑关系,各个关键节点在不同条件下的走向。**
例:重置密码流程图。
- 时序图
时序图也是软件项目所特有的一种图形,可以表示不同对象之间发送消息的时间顺序,尤其在涉及网络通信的文档中特别常用。
画好时序图,关键是要列清楚所有涉及的对象或者服务,以及消息发送的先后顺序。
例:注销登录过程的时序图。
- 各种格式截图
截图也是个非常简单直接的方式,把软件的UI、交互设计的效果、数据趋势图、数据统计图等直接截图,必要的话配上一些箭头、文字,也可以很好的说明清楚问题。尤其是产品设计文档,经常用到。
上面就是如何写文档的一些具体建议,按照上面说的方法做,写好项目文档不会是多难的事情,你还可以在日后的工作中,不断学习不断改进。
## 一些关于文档的其他建议
有时候我也看到一些比较极端的情况,就是过于追求文档,项目中要花大量的时间写文档,而很多文档是形式化的,并没有太大意义,可能写完了不会用来讨论,也不会有人看。
所以我是比较认同敏捷宣言观点的:文档很重要,但是工作的软件高于详尽的文档。这里面的平衡很重要。
不需要为代码写很多文档,好的代码格式,良好的注释、完善的单元测试可以很大程度上代替针对代码而写的文档。
Markdown是一种非常好的文档格式,可以让你更专注于内容上,而不是文档格式上面。
在线文档工具优于离线文档工具,在线文档有很好的版本管理,也更方便多人协作。像GitHub WIKI、石墨文档、Google Docs、Evernote等都是非常好的在线文档工具。
对于文档的撰写,要作为一个正规的项目任务进行,安排人、安排时间,放到项目计划中去。就像前面说的“懒得写”文档的情况,一旦把文档当成一个与开发同等重要的任务去执行,就没有借口去犯懒了。
**重要的是,文档的写作一样需要多练习,写的越多,就越熟练。**
## 总结
今天,带你一起分析了为什么不爱写项目文档的原因,也解释了为什么写文档很重要。
没时间写或者懒,不能成为不写文档的理由。对于重要的项目文档,就应该加入到日常的开发任务中,把写文档,摆在和设计、开发同等重要的位置。从某种角度来说,写不好文档,代码也很难写好。
针对程序员不爱写项目文档的情况,我也提出了切实可行的写文档的方法。比如说不会写,就可以从模仿别人写的文档开始,然后从粗到细,不断迭代,配合一些图表,就可以写出不错的项目文档。
## 课后思考
你所在的项目组,项目文档情况如何?你写文档吗?有没有什么写文档的经验和大家一起分享的?欢迎在留言区与我分享讨论。
感谢阅读,如果你觉得这篇文章对你有一些启发,也欢迎把它分享给你的朋友。