目标观众
我认为在回答这个问题时,您确实需要询问谁打算阅读本文档。开发人员与用户甚至业务分析师的需求完全不同。
- 作为开发人员:与正在研究的代码相关的文档,接口合同等详细信息以及用法示例。也许是一些高级文档,以及很好的协议规范。
- 作为用户:可通过帮助菜单或可访问的网站获取有关如何使用该软件的文档。
- 作为业务分析人员:以文档或可访问网站的形式提供的文档很有用。关于协议,高级体系结构和用例的少量详细信息是最好的。
保养
至于该文档的来源放置位置将取决于您的受众,以及谁在为您的受众写作。
- 只有一所开发商吗?将所有内容放入代码中。它将鼓励它进行更新。您将需要一种鼓励文件更新与代码更改同样重要的文化。
- 有一家开发人员和文档编写者吗?划分职责。为开发人员使用面向开发人员的工具,为文档编写人员使用文档编写人员工具。
尽可能确保可以执行代码示例或用例。自动执行它们并在内部标记故障。这些页面很可能是不良或不良的文档。
另外,无论您选择使用哪种工具编写文档,都需要一种可靠的方法来将文档的特定版本与特定版本的代码相关联。即使在只有一个常绿部署的快乐云土地上,这仍然是有益的。
整合文件
可能需要集成才能生成一些文档,但是请注意,只有用户希望在一个地方可以访问他们需要的所有文档。
业务分析师对API规范,设计规范和使用方案位于单独的文档或网站的不同部分中感到非常满意。
开发人员更喜欢从源头可见的所有内容,但是很高兴在代码外部有几个高级设计文档和详细的协议规范文档,尽管最好在同一签出之内。
你的情况
老实说,您的Wiki中的文档可能与您的代码库中的文档类型不同。合并也可能没有意义。
另一方面,可以通过几种简单的方式将两者整合在一起。
- 源文档工具(例如doxygen)可以生成html,而wiki则位于网络服务器上。这是一个简单的集成点,只需将构建版本与Wiki一起提供并相互链接两者即可。
- 某些Wiki产品将允许您直接从可检入代码库的文件中运行Wiki。这提供了一个简单的所见即所得工具,同时使文档与代码配对。
- 也可以使用其他格式,例如pdf,但这取决于您要使用的特定工具。将您的Wiki刮入markdown文件并通过doxygen(或其他工具)进行输入可能是有意义的。分别对Wiki和源进行pdf并使用pdf合并工具可能会有意义。
归根结底,找出哪种文档系统维护成本低,并帮助您交付高质量的产品,如开发人员,业务分析师和用户的观众所看到的。任何阻碍这些群体的事情都必然会降低产品质量。