在设计/规划大型新个人项目时,哪些软件有用?

时间:2010-11-26 22:44:42

标签: c++

我计划进行一个庞大而具有挑战性的C ++项目,可能需要6-18个月才能完成第一个版本。如果我将大部分时间都花在这上面,我会先详细计划,这是有道理的。

但它也只是我的工作,所以通常的瀑布设计工具的泥潭更可能是节省时间而不是节省时间。在像我这样的独立项目中工作,哪种软件,如果比纸和笔更先进,对我最有帮助?

我知道这个问题有些主观,但我依靠SO的社区机制来为最高层提供最好的答案,以便对一个没有具体答案的问题得到一种民主的答案,每个人都会同意上。

4 个答案:

答案 0 :(得分:6)

当我自己进行开发时,我尽量保持它的简单,同时仍然有一些结构。

我认为Joel测试的工具部分抓住了最重要的东西:

  1. 您使用源代码管理吗?
  2. 你能一步完成构建吗?
  3. 您有错误数据库吗?
  4. 你在编写新代码之前修复了错误吗?
  5. 然后我想添加一些我自己的:

    1. 使用自动化测试并尽可能地进行测试驱动开发。
    2. 需要时重构,保持结构清洁。
    3. 编写文档,读取描述比读取代码要快得多,可能遵循几个级别的功能代码。我经常使用doxygen。
    4. 即使只是你,你肯定想要源代码控制。在一些错误修复中,能够追踪事情发生变化以及它们如何变化是非常宝贵的。在构建环境中投入时间通常是值得的。你将构建这么多。我无法跟踪我头脑中的错误,excel表会做。

      如果没有这种基本结构,您无法在需要时进行重构。无论您如何使用设计,重构那些第一次没有变好的部件是维持良好设计的关键。如果你习惯了重构,那么你就不必考虑太多的步骤,而是你可以做一些现在可行的事情,然后在你需要添加更多功能时重构它。

答案 1 :(得分:1)

对于个人项目,最好的方法通常是在需求坚定的地方进行测试驱动开发,以便回归测试自动化/无痛,并充分利用断言来形式化编码时所做的假设。

如果测试在启动期间作为自检执行,它将非常快速有效地突出显示问题。在为各种编程语言编写解释器时,我成功地使用了这种方法。您的里程可能因申请而异。

独奏项目的测试驱动开发使得源代码控制几乎已经过时。如果您的测试足够好,那么他们就可以很好地模拟需求。在添加新功能之前修复错误/测试,您的项目将满足其要求,几乎没有突出问题。

答案 2 :(得分:0)

考虑一下如何将软件推出门外。那么请考虑一下您将如何处理建筑设计以及如何深入了解具有功能的架构。一旦理解了这些内容,您需要使用的软件工具就应该是明显的。

不要让软件驱动这个过程;该过程应该驱动软件。

答案 3 :(得分:0)

有效的大项目始终是有效的小项目。从Hello World开始,不断删除错误并添加功能。当某些事情开始变得糟透了,你就会对它进行足够的了解,以便在那时进行重构。