至少你需要为开源项目工作

时间:2009-09-18 14:27:56

标签: language-agnostic open-source

我最近开始研究一些与我的兴趣相关的开源项目。

在这个启动期间,我遇到了一些我不熟悉的术语/内容,比如配置,工具链,binutils等,我同意这取决于你正在进行的项目类型。

现在我的问题是,在开始处理项目之前,开发人员应该知道一些明确的要求吗?

非常感谢任何帮助/参考。

修改

我在大多数项目中看到了GNU配置和构建系统。 如果有人对此感到困扰,“The GNU configure and build system”是一个很好的起点。

8 个答案:

答案 0 :(得分:12)

如果它是预先存在的,你需要阅读他们的开发文档(如果有的话),学习如何使用他们的版本控制系统,并拥有构建代码并运行它的必要工具。

如果你拥有所有这些,以及代码/语言的知识,那么你只需要热情和一些业余时间:)

答案 1 :(得分:4)

我不会将它们定义为您正在寻找的意义上的明确要求。如果你是一名程序员,你已经(希望!)自学和解决问题的特性可能会让你最初成为一名程序员。

你永远不会真正了解'一切',并且可能会随处可见新的东西。哎呀,我现在的工作从来没有听过“模型 - 视图 - 控制器”这个词,但是很快就接受了这个概念。

您的示例,工具链和binutils不是复杂的概念,简单的wiki文章就足够了。

答案 2 :(得分:2)

我建议下载所有源代码,并确保您可以自己构建它作为第一步。

在尝试进行任何更改之前,请确保您熟悉整体设计和文档,以确保您在第一次更改时不会无意中破坏任何内容!

使用的术语可能取决于所使用的技术,例如用C ++编写并在Linux上运行的开源项目,可能与在Windows上运行的C#/ .NET应用程序构建非常不同。

答案 3 :(得分:2)

这取决于您将参与多少参与。如果您只想贡献一个功能,只需获取构建项目的工具,更改文件的编辑器和足够的文档读取以查找功能的注入点。如果你能找到帮助你入门的人,那将非常容易。

如果您致力于该项目,我建议您学习构建工具,项目历史和目标。此外,当前作者如何尝试解决问题,他们对项目的看法也会有所帮助。

答案 4 :(得分:1)

我认为这完全取决于项目。最好的软件项目将指定:

  • 写的是哪种语言
  • 设置了哪些开发人员环境(如果有)
  • 构建/编译/运行项目需要哪些工具
  • 用于测试软件的测试数据

你在做什么?您确定他们没有提供任何此类信息吗?

答案 5 :(得分:1)

我想说能够理解您正在进行的任何项目的所有架构,工具和技术是必须的。

但是,您尝试将此设置为适用于任何开源项目的通用问题。你有点回答,对你自己不是吗?

  

我同意取决于的类型   你正在研究的项目

答案 6 :(得分:1)

这取决于您在项目中符合“工作”的条件。

这里的大多数答案都表明你正在编码(并且你的问题暗示了这个方向),但有些事情可以帮助项目 - 比如测试和文档 - 可以在没有知识的情况下完成程序的编写方式。

现在,对于它的编码方面 - 如果它是一个较小的项目,我会试着弄清楚其他贡献者的动机和项目的宏伟计划/目标是什么。和任何一个团队一样,进入并试图将事物处理的方向完全不同于其他人正在计划的事情,即使你有良好的意图,也会引发各种各样的问题。

(然后是其他人说的技术建议......源代码控制,构建系统,项目架构,使用的工具包等)。

答案 7 :(得分:0)

正如你所说,这取决于项目。

您必须知道如何使用该语言,您必须熟悉他们使用的源代码控制系统(通常是颠覆)。你必须能够构建(通常是Ant,通常是Maven)。