5

今天我只是出于好奇检查了一些开源项目。所以过了一会儿,我查看了 OTTD 的代码(http://www.openttd.org/),我只是不知道从哪里开始寻找或如何理解该项目。我知道你不可能在一两天内熟悉这么大的项目,但是你们如何处理这些事情你从哪里开始你在寻找什么等等等等..

4

4 回答 4

1

OpenTTD 的源文档:http: //docs.openttd.org/,它们会很有帮助。

此外,开发 wiki:http ://wiki.openttd.org/Development 。

如何熟悉?

首先,尝试编译。将其编译到您的平台并确保其正常运行。

然后,从待办事项列表中挑选一个错误或其他东西并尝试实施它,或者只是玩游戏并考虑添加/更改一些简单的东西。当然,您可能会失败并想改变您的任务,但每次尝试都是了解项目结构的一步。


对我来说,编译部分是最烦人的部分。我认为这是因为我在 Windows 上 :-) 如果没有几天的思考和向人们发送垃圾邮件等,我几乎无法从头开始编译一些东西。但我很快就习惯了许多不需要编译的项目,比如用 PHP 或 Python 或 JavaScript 编写。

我只是对代码做了一些事情。更改了一些重要的常量 :-) 编写插件。任何。有一天我明白了,如果我从问题跟踪器中选择几乎任何任务,我至少能够找出问题所在。

如果你只是阅读代码,你不会很了解它!即使是(好)小说也不能通过一遍又一遍地阅读来完全理解。

于 2010-01-06T20:40:25.600 回答
1
  1. 下载代码。

  2. 在您最喜欢的 IDE 中设置它,以便它构建和运行。

  3. 在 main() 开头设置断点

  4. 花一些高质量的时间在调试器中单步执行:)

让您很好地了解事物的组合方式、依赖关系的位置以及在应用程序中执行操作时会发生什么。

于 2010-01-06T20:41:40.893 回答
1

另一个好的策略是从你使用的一些软件开始,甚至是你依赖的软件。然后找到最烦人的错误,并修复它。

于 2010-01-06T20:44:46.457 回答
0

很多时候,拥有大量草稿纸或某种形式的快速图表工具会有所帮助——当你遇到事物时,勾勒出它们之间的关系。随着时间的推移,您将了解事物是如何布局的以及什么与什么交互,有点像临时类图(但形式更自由)。

选择一个您可以识别的起点:也许这是用户输入处理,也许是程序的初始化序列 - 并从那里跟踪执行流程以了解事情是如何发生的。

希望源代码有有用的注释——在 OpenTTD 的案例中,甚至可能是 doxygen 风格的注释,所以你可以获得一组很好的文档

于 2010-01-06T20:41:19.683 回答