C++开发者的开源项目?

19

我是一名vc++开发人员(但喜欢Qt),有兴趣通过贡献和阅读代码来学习开源项目。我主要使用Windows作为开发平台。哪个项目适合我开始学习呢?

chromium 是一个好的选择吗?


11
你应该问自己的问题是:“我目前使用了哪些自由开源软件工具?它们存在什么问题?我该如何改善它们?” - anon
1
如果你想从源代码中学习,那么你很可能无法对项目做出有用的贡献 - 反之亦然,如果你能够为项目做出贡献,那么通过阅读代码你可能不会学到太多新知识。你想要哪一个?是为了贡献还是为了学习? - jalf
8
@jalf: 我不确定我同意。大多数开发者会查看源代码,对代码正在执行的操作进行许多假设(通常是错误的)。这通常导致说:“我可以做得更好。” 源代码通常隐藏了很多细节问题,而我认为通过阅读和修改才能真正理解它。 - Richard Corden
14个回答

40

Chromium是一个好选择吗?

我认为是的!

在我看来,它的源代码编写得非常好,这是一个非常活跃的项目,有很多工作需要完成,并且在许多不同方面都很有趣。显然,浏览器本身只是一组特定库的组合,因此Chromium可以为您提供学习更多关于它们并有望做出显着贡献的良好入口。但最重要的是,它拥有庞大的社区,由大型公司赞助,并拥有许多才华横溢的软件工程师在其核心团队中。

有很多事情可以做,因此您甚至可以在学习不知道的东西的同时贡献自己所知道的东西。


我想补充的是;选择加入开源项目应该基于:

  1. 您的专业水平
    • 您想学什么
    • 代码质量
    • 项目成熟度
    • 代码复杂度(不要与可读性混淆)

这里只代表我自己的看法,尽管我喜欢从过于复杂的项目中学习更多知识(例如文件系统、关系型数据库等),但是由于其深奥复杂,我发现这些项目所带来的收获相对较少。建议大家不要试图一次性学习所有内容,要采取小步骤逐步完成当前任务,而不是试图迈出更大的步伐并最终放弃。

个人意见,请自行斟酌 - 你的情况可能有所不同。


如果您想尝试Chromium,请参考以下设计文档链接:

  • 获取源码 详细说明了项目树结构的构建方式。
  • 工程设计文档 解释了架构、大部分底层信息以及未来工作的计划。
  • 用户体验设计文档 提供了关于一切涉及用户的信息,如行为和界面等。
  • 技术讲座视频 对于理解某些关键工程问题和决策非常有帮助,即使您不打算加入Chromium项目也是如此。

以上链接均来自Chromium开发者文档,其中可以找到更多详细内容。

无论如何,祝您好运,找到符合您需求的项目!


17

你能和我们谈谈Qt Creator吗?为什么它是一个很好的入门选择? - David Nehme
3
Qt Creator 是一个非常不错的集成开发环境,但如果有更多的贡献者,它将变得更加出色。它只是 v1.x 版本,因此有很大的空间可以添加新功能,原帖中提到了 Qt。 - Rob

11

KDE有大量使用C++/Qt编写的代码,是开源社区的一个巨大示例......他们的SVN仓库很快就会拥有7位数的提交次数(http://websvn.kde.org/)。


KDE很棒,但他确实说他主要使用Windows。(是的,我知道它可以在Windows上运行,但很少有人这样做。) - Zifre

6

4
我认为有许多有趣的开源项目使用c++。 Boost是第一个可以考虑的项目。它是一个库,但非常精细,可以学到很多东西。如果你想尝试更有趣的东西,可以尝试像Ogre3D这样的游戏引擎。如果你想参与一个与Qt绑定相关的项目,我建议选择与KDE相关的项目,因为他们主要使用Qt,据我所知。

Boost

Ogre3D


3

关于Web浏览器引擎开源项目,webkit怎么样呢?希望这能有所帮助。


2

Launchy

来自项目页面介绍

Launchy是一个免费的Windows和Linux实用程序,旨在帮助您忘记开始菜单、桌面上的图标甚至文件管理器。

Launchy索引您的开始菜单中的程序,并可以通过几个按键启动您的文档、项目文件、文件夹和书签!

他们还有一个插件接口,因此您可以从编写插件开始,然后再进入实际代码工作。


2

参加Qt竞赛,例如:Pimp My WidgetsQtCentre编程竞赛


1

我喜欢在Code::Blocks上工作。这不是一个简单的项目,但你仍然应该能够理解并做出贡献。 :)

最重要的是,要去做自己想做的事情。


1

wxWidgets 更适合具有 MFC 和 Windows 知识的 C++ 开发人员。 Qt 使用 MOC 编译器生成 C++ 代码。在 wxWidgets 中,您可以完全掌控自己的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接