维基真的适合存储用于软件开发的文档吗?[关闭]


18

每个人都知道,有据可查的软件开发会带来成功。但是,这通常意味着文档中不仅会涉及纯文本,而且还会涉及二进制内容,例如UML图。我听说很多人都这么说。版本控制系统不适用于二进制文件。我完全理解并同意这个问题。我问了几个经验丰富的开发人员,最好的存储文档的位置应该在哪里,而我得到的答案是“ wiki”。Wiki很好,但是我考虑了另一个潜在的问题。存储在版本控制系统中的源代码如何连接到Wiki中的相关文档?假设有人克隆了git或mercurial的存储库。他/她如何轻松找到文件?还是我只是错过了什么?

我知道某些Wiki系统具有与源代码控制系统集成的能力。但是我关心的不是集成能力。如果您已经从git仓库中克隆了源代码,并且过了一会儿,那么您将在火车上并希望继续在火车上离线工作(这是DVCS的一大功能)。然后您突然意识到,由于您在火车上离线工作,因此您无权访问文档。另一方面,如果文档存储在git存储库中,则可以访问克隆了存储库的文档。


3
仅供参考:Wiki 不是首字母缩写词,它是夏威夷语,意为“快速”。
约尔格W¯¯米塔格

文档涉及二进制文件这一事实并不是避免将其存储在版本控制系统中的充分理由。VCS可以轻松处理二进制文件。而且,如果将其存储在项目的VCS中,则具有可以在分支项目时分支文档的优点。
JW01

关于脱机工作:暴力解决方案是仅使用某些脱机阅读器下载所需的页面。如果可行的话,更优雅的方法是克隆整个Wiki(例如,复制基础数据库并自行安装Wiki)。基于VCS的Wiki是一个更为优雅的解决方案。我经常离线工作,通常只需定期下载所需页面即可。
sleske

Answers:


16

WIKI是否真的适合存储用于软件开发的文档?

与其编写文档,pdf和其他类型的文件,不如不释放WIKI作为协作工具的全部潜力?您可以在此处编写文档,附加图表,甚至更好:如果使用Fitnesse,则可以将Wiki页面转变为真正有用的文档,因为它们可以成为可执行的规范。

人人都知道,有据可查的软件开发会成功

注意这一点。文档将不会成功,因为它们不会将废话变成好代码。但是文档是成功软件的一部分。但仅仅是一部分,他们将不会取代良好实践和好人。


8

由于有多个答案指向Trac作为建议,因此我想提出一个类似但更好的选择:Redmine

Redmine是一个项目管理解决方案,包括Wiki,文档存储库和版本控制集成。根据我的经验,它也是用Ruby on Rails编写的,并且比Trac更容易扩展和破解。

除了一切之外,它真的非常易于使用,并且很容易使团队使用它。

特征:

  • 多个项目支持
  • 基于角色的灵活访问控制
  • 灵活的问题跟踪系统
  • 甘特图和日历
  • 新闻,文件和文件管理
  • 提要和电子邮件通知
  • 每个项目Wiki
  • 每个项目论坛
  • 时间跟踪
  • 用于问题,时间输入,项目和用户的自定义字段
  • SCM集成(SVN,CVS,Git,Mercurial,Bazaar和Darcs)
  • 通过电子邮件创建问题
  • 多种LDAP身份验证支持
  • 用户自我注册支持
  • 多语言支持
  • 多数据库支持

对于您的离线需求,我不喜欢将设计文档中的版本控制弄乱的想法。我确定您有问这个问题的理由,但是实际上您有多少离线时间需要访问设计文档?这确实是一个极端的案例。


+1我在工作中使用Redmine,这确实是一个很棒的系统。
Luiz Damim

5

正如您提到的,某些Wiki(例如Ikiwiki)具有将其数据存储在Git中的能力。鉴于此,您可以将文档作为Git子模块链接到常规源存储库下。

通过上述设置,拉动源代码并更新子模块将拉动文档的最新副本。离线时,您可以随意编辑每一个。当您返回网络时,两者都可以推回到您正在使用的任何共享位置。

尴尬的是,无论何时更新文档(甚至通过Ikiwiki Web界面),您都还需要更新Git源存储库中的相应子模块。但是,这很容易实现自动化。


有趣。将文档放入git存储库和通过ikiwiki存储文档之间有区别吗?
Edison Chuang

1
@Edison Chuang:不,没有。实际上,给定ikiwiki知识库的副本,您可以使用所选的文本编辑器来编辑页面(不必使用笨拙的基于浏览器的文本输入框)。您甚至可以拥有Wiki的不同分支,以保留较旧文档的快照或其他内容。
Greg Hewgill

听起来文档可以存储在版本控制系统中,即使二进制文件也没有任何问题。开发人员只需使用ikiwiki之类的工具即可将Wiki页面按需转换为HTML页面。
Edison Chuang

为Ikiwiki Wiki引擎+1;在哈达wiki引擎是水银仓库有类似的想法。
大卫·卡里

ISTR Fitnesse还将其Wiki页面存储为文本文件,因此如果您愿意,也可以将其保留在版本控制系统中。尽管它的主要目的是测试,但没有理由不将其用作文档的通用Wiki系统。
Jules



0

我不会尝试适应离线工作。我将使用最易于与所有人一起使用的资源。例如,如果您正在编写PHP代码,则建议使用PHPDocumentor可以生成的内联文档。它可以在任何地方生成,并且有Trac插件。然后,无论在线还是离线,您都可以相当快速地访问文档。

关键在于可用性。如果难以维护,它将开始遭受痛苦。当它开始受到影响时,文档质量就会下降。发生这种情况时,人们开始抱怨,然后一切都变得艰难。


-1

使用Wiki存储文档对我来说很有意义。

准确性是DVCS的一个示例,它可以更紧密地集成Wiki内容和源代码。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.