代码之家  ›  专栏  ›  技术社区  ›  Eloff

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

c++
  •  3
  • Eloff  · 技术社区  · 14 年前

    我有一个大的和挑战性的C++项目,我计划进行,一个可能需要6到18个月才能进入第一个版本。如果我把这么多的时间投入到这件事上是有道理的,我首先要详细计划。

    但我也在研究它,所以通常瀑布设计工具的缺陷比节省时间更可能浪费时间。在一个像我这样的个人项目中工作,哪种软件,如果比纸和铅笔更先进,对我最有帮助?

    我知道这个问题有点主观,但我指望的是社会机制,所以把最好的答案带到顶端,得到一种民主的答案,一个没有具体答案的问题,每个人都会同意。

    4 回复  |  直到 14 年前
        1
  •  6
  •   Anders Abel    14 年前

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

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

    1. 是否使用源代码管理?
    2. 你能一步完成一个构建吗?
    3. 你有错误数据库吗?
    4. 在编写新代码之前,您是否修复了错误?

    然后我想添加一些我自己的:

    1. 使用自动化测试和尽可能多的测试驱动开发。
    2. 需要时重构,保持结构清洁。
    3. 编写文档时,读取一个描述要比浏览代码快得多,可能需要遵循几个级别的函数代码。我经常用强力霉素。

    即使只有你一个人,你肯定想要源代码管理。在一些错误修复中,能够跟踪事情的变化和变化的方式是非常宝贵的。在构建环境中投入时间通常是值得的。你要做很多。我无法跟踪我头脑中的错误,Excel表格就可以了。

    如果没有这个基本结构,就不能在需要时进行重构。不管您如何处理设计,重构那些第一次没有变得好的部分是维持一个好设计的关键。如果你已经习惯了重构,那么你就不必考虑太多的步骤了,相反,你可以做一些现在可以工作的事情,然后在需要添加更多功能时重构它。

        2
  •  1
  •   Nelson    14 年前

    对于一个单独的项目,最好的方法通常是测试驱动的开发,在需求确定的地方,这样回归测试是自动化的/无痛的,并且很好地利用断言来形式化编码时所做的假设。

    如果在启动过程中将测试作为一个自测来执行,那么它将快速有效地突出问题。我在为各种编程语言编写解释程序时成功地使用了这种方法。您的里程可能因应用程序而异。

    单独项目的测试驱动开发使得源代码管理几乎过时。如果您的测试足够好,那么它们足够好地建模需求。在添加新功能之前修复错误/测试,您的项目将满足其需求,并且几乎没有未解决的问题。

        3
  •  0
  •   doron    14 年前

    想一想你将如何把软件带出门。因此,考虑一下您将如何处理架构设计,以及您将如何在架构中钻取功能。一旦你理解了这些东西,你需要使用的软件工具应该是显而易见的。

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

        4
  •  0
  •   xscott    14 年前

    工作的大项目总是从工作的小项目开始。从Hello World开始,不断删除错误并添加功能。当某件事情开始变得糟糕时,您将对它有足够的了解,可以在那时重构它。