“前向兼容”程序设计

时间:2010-06-17 00:43:25

标签: design-patterns

到目前为止,我在StackOverflow上提出的大部分问题都是如何通过XNA环境实现个人概念和技术来开发基于软件的NES克隆。

我在PC上拼凑的小样本工作相对较好,而且一切都很好。除了我碰到了一堵砖墙。 如何将所有这些样本合并在一起。

概念验证是惊人的,除非你需要它超越这一点。我现在有散布的样本,我正在尝试合并,其中一些不完整。而现在我仍然坚持鸡蛋和鸡蛋的情况,我希望将这些样品合并在一起,以确保它们有效,但我不能没有测试数据。我没有工具来创建测试数据,因为它们需要基于需要组合在一起的各个部分。

在我看来,我正在做噩梦与循环参考。对于我的示例数据,我希望将其保存为XML并编写规范 - 然后手工制作样本数据 - 但我太偏执于手动创建一个充满错误数据的XML文件并将其归咎于我的代码,或者反之亦然。我的工作的最终结果是面向图形的,这使得它可以在屏幕上显示如何在XML节点中显示图形,这无济于事。

我想,我的问题是:编码领域中存在哪些设计模式和规则可以解决这类问题?我一直依赖蛮力编码并重新启动一个带有全新代码库的项目,试图进一步实现我的目标,但我怀疑这是最好的方法。

在我的大学生涯中,我的大部分编程都是处理一本书中出现的简单项目,或者使用给定的正确数据集和可验证的结果。我没有,因为我自己的设计文件可能会非常错误。

3 个答案:

答案 0 :(得分:1)

测试本身可能是错误的,这是正确的,但是当您遇到测试失败时,唯一的选择是确定基本代码或测试代码/文档是否出错。通常情况下,它是测试代码,但在您有一组通过测试之前,您将无法对底层基本代码有信心。一旦达到这一点,您就可以更自信地对基本代码进行更改,因为您知道有一组测试(文档)可用于验证更改。

总而言之,不要让你的测试文档错误的事实阻止你写它们。

答案 1 :(得分:1)

就个人而言,我喜欢通过首先创建骨架GUI组件和测试来处理大型项目,然后逐渐填充后端内核以确保测试通过并且GUI开始按照需要运行。从简单的测试开始;即使他们错了,也比没有测试更好。

为了阅读,我建议如下:

另外,我强烈建议您将所有内容放在源代码管理的存储库中,如果您还没有这样做的话。如果你不介意它是开源的和公开的,谷歌代码是好的; origo.ethz.ch提供免费的免费服务,可以公开或私下。

其次,我强烈建议您随时记录所有内容,并使其与doxygen等工具兼容。大型项目确实受益于增量文档。如果您使用的是Microsoft Visual Studio和C ++或C#,请阅读他们的XML文档格式:

http://msdn.microsoft.com/en-us/library/b2s063f7.aspx

祝你好运!

答案 2 :(得分:0)

看起来你想要立刻咬掉太多东西。如果XML文件太大而无法自信地手动创建,请创建一部分,并对其进行测试。您的第一个模式应该是您尝试创建的一小部分。自己测试片段。如果将问题分解成更小的部分,则更容易确定测试数据或代码是否存在问题。

这同样适用于图形。如果最终产品太复杂而无法测试,请将其分解成碎片。

这不一定与单独测试组件相同(尽管这也是一个好主意)。使用您已有的简化案例,可以更轻松地测试您拥有的内容,而不是一次性生成整个内容。