今天我出于好奇而结束了一些开源项目。所以过了一段时间我在看OTTD的代码(http://www.openttd.org/),我只是不知道从哪里开始寻找或如何理解该项目。我知道你无法在一两天内熟悉这样的大项目,但你们如何处理这样的事情,你在哪里开始寻找什么等等等等。让自己熟悉项目
让自己熟悉项目
回答
OpenTTD的源文件:http://docs.openttd.org/,他们会有所帮助。
另外,dev wiki:http://wiki.openttd.org/Development。
如何熟悉?
首先,尝试编译。将其编译到您的平台并确保其正确运行。
然后,从待办事项列表中选取一个错误或其他内容并尝试实施它,或者只是玩游戏并考虑添加/更改简单的内容。当然,你可能会失败,并想改变你的任务,但每一次尝试都将成为理解项目结构的一步。
对我来说,编译部分是最讨厌的部分。我认为这是因为我在Windows上:-)我几乎没有设法从头开始编译一些东西,没有思考和发送垃圾邮件等。但是我很快就习惯了许多不需要编译的项目,比如如用PHP或Python或JavaScript编写。
我只是做了一些代码。改变了一些重要的常量:-)编写插件。随你。有一天,我现在明白了,如果我从问题追踪器中选择几乎任何任务,我至少可以找出问题所在的位置。
如果你只是阅读代码,你不会知道它!即使是(好的)小说也只能通过一次又一次地阅读才能充分理解。
很多时候,它有很多时候有很多草稿纸,或某种形式的快速图表工具 - 当你遇到的东西,勾画出他们如何相互关联。随着时间的推移,你会感受到事物的布局以及与什么相互作用的感觉,就像一个专门的类图(但更自由)。
选择一个可以识别的地方:也许这是用户输入处理,也许它是程序的初始化顺序 - 并跟踪从那里执行的流程,以了解事情的发生。
有希望的是,源代码有一些有用的评论 - 甚至在OpenTTD的案例中,doxygen式的评论,所以你可以得到一个不错的set of docs。
下载代码。
将其设置在您最喜爱的IDE中,以便它可以构建和运行。
在)的主初(
花一些时间在调试器:)
给你的东西是如何把一个良好的手感步进通过设置断点,依赖关系在哪里,以及在应用程序中执行操作时会发生什么。
另一个好的策略是从您使用的某个软件开始,即使是您依赖的软件。然后找到最烦人的错误,并修复它。
- 1. 思路玩具项目,这在自己熟悉可可和可可触摸
- 2. 熟悉XAMPP
- 3. 熟悉Visual Studio 2010
- 4. 不熟悉语法
- 5. IllegalThreadStateException?不熟悉线程
- 6. 任何熟悉PHP源代码的人?
- 7. R:算我比较熟悉Python出现
- 8. 面试问题:您是否熟悉linux?
- 9. SQL语句中不熟悉的字符
- 10. 不熟悉C++指针,需要帮助
- 11. 逐渐熟悉新的代码库
- 12. 是否有人熟悉Bamboo Sharepoint产品?
- 13. 是否有人熟悉TEXT.IX文件?
- 14. Ipad新手,熟悉SQL,如何开始
- 15. 有没有人熟悉Plurk API?
- 16. 如何使用gflags让自己的项目获得bash选项卡完成项?
- 17. 任何熟悉整合UPS Worldship的人士?
- 18. 程序员可以熟悉多少代码?
- 19. 任何一个熟悉PAServer - 平台Assistant服务器错误
- 20. 不熟悉的调用方括号内的函数
- 21. 不熟悉的代码段/ \ B [AZ]/g的
- 22. RightNow CRM XML API - 任何熟悉它的人?
- 23. 是否有人熟悉Erica Sadun的APIKit(app private api scanner)?
- 24. PHP文件进行编辑,但不熟悉PHP
- 25. 当你已经很熟悉C#时,值得学习Java吗?
- 26. 不熟悉这种JavaScript语法,我碰到过
- 27. 在x86汇编中的“imul”指令的不熟悉的语法
- 28. 使用现有数据库时熟悉实体框架
- 29. 对建模行为/概念不熟悉的建议
- 30. 任何熟悉press87.php文件的人 - 这是黑客吗?
无论你最终做什么,最好记录你的笔记(建立你运行的命令行,追踪的功能,你有的想法等)。如果你忘记了,它不仅可以帮助你,但你也可以将它们贡献给项目的wiki,或在自己的博客上发布关于您的发现的帖子。 – HostileFork 2010-01-06 20:52:46