我正在考虑将BDD用于我的一个个人项目。但是,它是一款视频游戏(这是一款模拟生物的游戏,用XNA用C#编写),我不确定BDD强制执行的模块性在运行时是否会有好处。
基本上,用户需要能够尽可能快地加快模拟速度,以便更快地遍历时间;越快越好。因此,处理速度至关重要,我讨论使用BDD,因为模块化意味着更多的函数调用(我知道,我们谈论的是低级)。然而,我想同时实现一个进化和AI机制,而且……有了这么多相互连接的引擎,一套测试可以很容易地节省我大量的调试工作。
关于BDD在这种情况下有多合适,有人能给我一个明智的意见吗?有没有推荐的替代方案(除了找到更合理的事情来打发我的时间)?
谢谢
发布于 2011-02-10 21:27:20
BDD (几乎)与应用程序效率无关。您真正要问的是,模块化设计是否能够满足您的需求。现在这是一个非常需要回答的问题,但我认为是的,因为你的设计的基本轮廓(模块化方法,可测试的组件,独立的AI,等等)与我所知道的大多数游戏引擎的轮廓没有太大的不同。
.NET抖动将帮助您更有效地运行游戏,比如内联小方法,这样您就不必担心调用开销。(只要你的目标是PC,WP7/Xbox360上的.NET抖动就不会这样做)
在编程和分析时,你很可能会发现你的游戏有一些关键路径限制了你的性能,一旦在编程的一个非常遥远的阶段,试着评估性能是否足够好,然后使用好的分析工具(如蚂蚁)来优化这个关键路径(只有关键路径)。
发布于 2011-02-10 23:15:15
BDD不是特别适合性能测试。对于BDD工具,您可以使用它来探索和捕获功能,而不管性能如何,然后使用Roy上面提到的更传统的性能测试工具来提高性能。
BDD实际上不是关于测试的。这些场景有助于支持对话,帮助您发现开发团队成员和各种利益相关者之间的误解。然后,您可以捕获您讨论过的场景。
在你的情况下,看起来你真的是在测试,而不是探索你需要做什么。为此,请参考传统的测试工具,而不是BDD工具。
https://stackoverflow.com/questions/4954314
复制相似问题