我最近开始研究一些与我的兴趣相关的开源项目。
在这个启动期间,我遇到了一些我不熟悉的术语/内容,比如配置,工具链,binutils等,我同意这取决于你正在进行的项目类型。
现在我的问题是,在开始处理项目之前,开发人员应该知道一些明确的要求吗?
非常感谢任何帮助/参考。
修改
我在大多数项目中看到了GNU配置和构建系统。 如果有人对此感到困扰,“The GNU configure and build system”是一个很好的起点。
答案 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)。