新项目

时间:2009-03-18 01:18:37

标签: projects

我认为我处于一种独特的情况:我在Linux环境中拥有相当数量的C / C ++编码经验。但是,我并没有“项目经验”。例如,我熟悉版本控制的概念,但我从未使用过任何版本控制。或者,我从未参与过六个以上源文件的项目。

所以,我现在所处的位置是我正在使用已存在的大量代码来处理这个项目。我必须使用Visual Studio 2008在Windows环境中编写我的所有代码(Visual C ++是具体的)所以我有几个问题:

如何将现有代码集成到VC ++中?我正在使用陆龟SVN,我的机器上有所有代码......

对于从小型项目转向大型项目,有没有人有任何一般性建议?

非常感谢任何帮助/建议

6 个答案:

答案 0 :(得分:3)

掌握大型代码库的一些关键因素:

  • 了解源代码管理的细节。现在,首先学习所有SVN命令的工作原理。 SVNBook是一个很好的资源。使用VisualSVN或类似的插件与IDE中的存储库进行交互(当您想要从其他地方进行交互时,Tortoise仍然很有用)。在未来的道路上,您将希望熟悉分支和合并(以及tools以便快速,正确地完成此操作),并且可能学习像Git这样的DVCS(分布式版本控制系统)或Mercurial。这至少可以扩展你的思想,并且可能教你一些即使在你使用更传统(集中)版本控制的项目中也会有用的课程。
  • 了解如何快速查找内容,查找不熟悉的类和变量的声明,以及跟踪较大应用程序的执行情况。有很多方法,你可能会在某个时刻使用它们中的大多数,但其中一些是你的IDE的内置功能(大多数在这方面非常强大,你应该能够右键单击一个类名并轻松找到它的声明,grep之类的(ack是一个非常适合代码搜索的变体),CTAGS如果你摇摆那个(C / C ++)方式。
  • 了解单元测试的基础知识,甚至可以尝试像NUnit这样的框架。就个人而言,我并不擅长单元测试,但我认识到他们的实用性,并且很多人都发誓,所以不要敲它,直到你尝试过,至少。
  • 即使你是一个拥有强大的单元测试电池的完美程序员,大型代码库也需要更高水平的调试技能,因为问题的固有复杂性。是否正在学习如何编写简洁,描述性的调试printf() - 类似的语句,更熟悉您的调试器,甚至学习您的语言的细节(例如类型系统/对象模型的角落案例)有助于解决这些复杂的问题。

不幸的是,我没有使用Visual Studio,但我认为了解IDE的项目导入/迁移流程也具有指导意义。也许其他人会在这方面提出更具体的建议。这个过程可能很繁琐,特别是如果您之前有一个非标准的自定义构建系统,并且您希望一切都可以完成今后的One True Visual Studio方式,但是从代码中自动依赖提取的工具越来越好。

答案 1 :(得分:3)

已经提出的想法非常好。但您也可以阅读Mike Gunderloy的Coder to Developer。根据您对当前体验的描述,我认为您会发现它很有用。另请阅读The Pragmatic Programmer;我把它放在我办公室的办公桌旁,经常发现自己借给了年轻的开发者。

答案 2 :(得分:1)

深入研究。希望到目前为止一直致力于这个项目的人将代码组织成逻辑组(名称空间,类层次结构,文件夹)。

我还将学习如何使用IDE第二个Matt J:我不熟悉Visual Studio,但是当你点击一个类或方法将你带到那里时,应该有上下文菜单项它被宣布,从那里到它所衍生的类。

首先设置版本控制:一旦你学会了如何“恢复”,你会觉得更舒服;)

答案 3 :(得分:0)

我一直在使用VisualSVN一段时间没有问题。它与vs2008完美集成。至于转向大型项目,了解事情如何完成的一个好方法是下载一个体面的现有项目的来源,看看它是如何组合在一起的。在你清楚了解事物的结构之后,你能为自己做的最好的事情就是编写代码。头脑风暴一个项目,然后去做。根据您对完成后的结果的看法,您也可以将其用作投资组合的一部分。

答案 4 :(得分:0)

单元测试。使用它们或者你会后悔。

答案 5 :(得分:0)

熟悉Visual Studio,如果你住在其中,你真的必须了解它 AnkSVN是Visual Studio 2008的免费插件,它运行良好。 此外,Refactor for C++是另一个免费插件,也是在Visual C ++中获得重构支持的唯一方法之一。

此外,您很快就会了解到,在大型项目中,80%的时间都花在了代码维护上,所以请帮自己一个忙,让您的代码成为您想要居住的地方,而不是你畏缩的恐怖。干净的代码,偶尔的评论和单元测试将在很长一段时间内让你想起床并在早上上班,而不是害怕你必须在任何时候碰到它破坏的任何时候都要处理那些怪物。 / p>