存储软件文档的最佳方法是什么?
一个明显的答案是"内部Wiki"。 Wiki用于软件文档的优缺点是什么?还有其他建议吗?我们正在使用什么作为软件文档?
Loren Segal不幸的是,我们不支持任何文档工具来从源代码注释中编译信息,但是我同意这将是存储技术文档的最佳方法。我的问题是关于从sysadmin类型到用户文档的各种文档。
解决方案
我的公司使用各种Sharepoint和Wiki。特定要求(如需求,演示,合同等)的共享点,而Wiki则用作帮助指导开发人员资源库的内部使用库的教程。
假设我们是在谈论代码文档还是用户文档,如果我们不需要在组织外部,承包商或者合作伙伴之间分发代码文档,则内部Wiki非常有用。
如果我们需要可分发的代码文档,则Javadoc或者DOxygen更合适。
如果我们要参考用户文档,则可能需要看一下DITA。
是的,我们使用维基,也使用Google文档。我发现Google文档比我尝试过的大多数Wiki都要好,而且,如果我们不需要跟踪所有更改,那么我们将一无所获。 Google文档提供了一个很好的协作框架。
这是一个非常开放的问题,取决于许多因素。
一般来说,如果我们使用的语言具有良好的文档生成工具(javadoc,doxygen,MS的Cstuff),则应在方法上方编写文档,并让工具生成页面。这样做的好处是,我们可以将文本的源代码与代码保持在一起,这意味着它在逻辑上正确的位置进行了组织,并且在更改方法的行为时可以轻松地对其进行编辑。
如果我们没有良好的文档工具支持或者无法访问源代码,那么Wiki并不是一个坏主意,但是它们是上述的第二选择。
注意:我在这里只谈论代码文档。其他工件显然不能与代码一起存储-Wiki是放置这些文档的好地方。另外,如果我们使用某些CMS,则只需将它们提交到某些" docs /"文件夹中,作为text / pdf /任何文件即可通过存储库进行编辑。这样做的好处是,如果移动了存储库,它们将保留在存储库中,而Wiki则不会(必须)移动。
当前,我们使用由外部应用程序(PHP + PhpDocumenter)和各种内部Wiki解析的内联文档。有时充其量是痛苦的(主要是因为只有一个人更新wiki或者文档...)
但是,我一直在考虑使用ikiwiki做内部文档。它与源代码计数系统(包括Git,Subversion,Mercurial,Bazaar,TLA和Monotone)集成在一起,因此我们所有的文档都将与项目一起跟踪。它是用Perl内置的,并且具有广泛的插件系统(包括多种标记语言,默认为Markdown)。另外,源代码控制系统是基于插件的,因此,如果不立即支持我们使用的内容,则可以添加我们自己的内容。如果需要,请使用我们喜欢的语言,因为它也支持非perl插件。
我开始尝试一种实现这些目标的用户文档的方法:
基于Markdown / Html / Javascript /文件的相对链接的文档,具有移植性(可以在本地文件系统上运行,也可以将其扔到网络服务器上),屏幕截图的内置处理(交互式调整大小)和开源,以防其他人想要对疯狂的事情做些事情。
文档源是用Markdown编写的,并在浏览器运行时通过Javascript呈现给Html。
Mandown - http://wittman.org/mandown/
软件文档是一个非常笼统的术语。有"最终用户文档","开发人员文档","质量检查文档"。第一个通常是由合格的技术作家开发的。其他的可能是由Wiki,源代码的文档注释等动态形成的。所有这些东西的维护过程通常非常复杂,每个软件公司都遵循自己的方式。但是所有这些方式都有一个必要的要点:每个代码提交者,架构师,经理,质量保证工程师都必须妥善存储每条信息,这可能对其他信息有所帮助。并且其他人必须留意此物品的存放,并在需要时重新排列物品。所有这些步骤极大地改善了与开发过程相关的所有活动。
工具很重要,但是在寻找魔术工具时不要陷入困境。我发现的任何工具都没有"使用微小的隐形精灵神奇地记录所有内容"复选框。 :-)
维基可以正常工作。或者Sharepoint。或者Google文档。或者,我们可以使用SVN存储库。地狱,如果我们真的需要的话,可以用笔,便条纸和文件柜来做。 (我真的不建议这样做!)
最重要的关键是我们需要整个组织的支持。在许多商店中发生的事情是,他们去花了很多时间和金钱在诸如Sharepoint之类的精美解决方案上,然后每个人都虔诚地使用了大约两个星期,然后人们忙于达到最新的里程碑,这是最后一个任何人都听说过。
根据组织,领域,开发的产品类型等,有一些解决方案,但是我们需要使用一种或者另一种方法来建立系统并使用它。任命某人为官方文件沙皇,给他们一个线索,并让他们每当他们说"哦,是的,下周我将完成记录……"时就将他们击中头部。如果那是需要的。 :-)
至于工具...我建议使用Atlassian的Confluence。这是一个很好的Wiki,旨在在企业环境中工作,具有许多漂亮的功能,可以自定义,并且与Atlassian的其他漂亮的工具很好地集成在一起,并且基本上是一个非常可靠的产品。