2009-12-28 157 views
4

您可以在网上找到许多开源项目(如Linux,开放式办公,...)开源项目

,但我没有找到一个完整的,不错过任何开源项目和REAL文档。

我不是说只是源文件。我的意思是,收集客户需求,设计模式和所有文件。

亲切的问候

+1

我不认为你会找到一个开源拥有所有设计文档的项目。 – 2009-12-28 17:10:19

+1

我仍然对使用你的程序员数量感到惊讶,因为他们的意思是你:) – talonx 2010-09-08 09:01:15

回答

12

为什么我们有要求文件和设计文件?敲定两方之间的协议,一方需要某种软件,另一方则负责实现。该文件非常有用,因为它可以帮助双方共同合作,高效地制作正确的软件。

有时在开源软件中,你可以找到那种关系。在这种情况下,您有时可以找到预先设计的文件。如果你想添加一个功能到Python编程语言,你必须编写一个Python Enhancement Proposal并获得批准,以确保你正在实现的是Python维护者愿意采用的。你可以在this page of OpenSolaris documentation找到很多设计文档的链接;我猜这里的“客户”是Sun的营销。我最近为其他人实施的某些开源软件设计了一个API,并为此提供了一个开源软件。

但很多开源的发展遵循一个完全不同的模型,其中以下因素一个或多个适用于:

  • 工作的单位是一个单一的功能或错误修复。通常在错误跟踪系统中,您可以找到一段需求文档,如果您想以这种方式思考它们。较小的工作单位实际上很大的优势;封闭源代码开发往往不能遵循这种模式,因为交易成本(建立信任,确定需要什么,商定范围和价格等)过高。

  • 开发人员正在为自己开发软件。如果你知道你想要什么,写一份正式的设计文件可能没有成效。 (你可能会在白板上写几条曲线。)

  • 该项目最初并不打算广泛使用。如果代码将在一小时内在机器上运行并完成其工作,那么单独的设计文档将如何提供帮助?如果它随着时间的推移而成长为其他人可以使用的东西,那么过程文档应该在什么时候进入图片?

  • 有一个设计文件,但它没有被公开。请记住,这些文档的目的是帮助高效地制作正确的软件。一旦完成,这些文件就不是非常有用。 (另外:开源软件通常是根据公司的合同编写的,虽然完成的代码是公开的,但是过程文档可能被明确或隐含地视为保密)。前面的设计。我倾向于认为这太糟糕了,但唉,这是一个促成因素。

有时软件记录后,它的实施和验证。这里是描述其内部的the GCC manual的一部分。这里有一个关于Mozilla's JavaScript engine。如果您有一个特定的项目感兴趣,找到示例相当容易。使用Google搜索linux kernel design找到more free, detailed documentation

+0

我不相信唯一的目的是正式确定请求软件的人和创建软件的人之间的协议。它也让人们在同一页面上。设计文件并不是刚刚写好的文件,但随着项目的继续,文件可能会改变,Joel Spolsky就此撰写了一篇很棒的博客文章。 http://www.joelonsoftware.com/articles/fog0000000036.html – bigblind 2013-03-28 20:54:48

3

开源项目通常由痒不像开始瞄准了丰富的潜在客户(客户要求)专有应用程序从头开始。设计模式与文档无关。这只是样板设计。至于文书工作,你会让这听起来像是一件“好事”。 :)

有一些开源项目在实施前提前详细设计。想到的是bzr DVCS。 Docs Here。 Martin Pool在开始工作之前花了很长时间记录下来。

1

看看(早期版本)jHotDraw。这是a.o.的HotDraw框架的java版本。 Erich Gamma(GoF)为他的模式语言工作而开发。

您不可能找到包含依赖关系图在内的完整和最新文档的任何项目(开放源代码或封闭源代码)。为了教育目的,您可能会找到一些非常小的构建。对于法律规定的系统,文件的实际质量通常很低,因为它们不是为了信息的作者或消费者的真正利益而产生的,而仅仅是为了承担法律责任。

在开源项目中,强烈倾向于只编写直接使用的文档,因为它们具有非常好的工作优先级过程。交流工作需要交流。文档可以提供。但是在大多数开源项目中,希望某个功能的人也可以成为该功能的实现者。在这种情况下,很少需要大量文档。 开源项目需要概述文档描述工作标准,使用的设计模式以及可以帮助新贡献者加快速度的所有内容。

如果你想真正了解它是多么的困难妥善管理的依赖,来看看:

管理设计数据:CAD框架,配置管理,产品数据管理 面包车的五个维度den Hamer,P .; Lepoeter,K. 诉讼的IEEE 卷84,第1版,1996年1月页数:42 - 56 数字对象标识符10.1109/5.476025