2009-02-02 151 views
7

我目前正在开发一个项目,我需要编写一些概念验证应用程序。我写的PoC应用之前,但他们只得到真正的小,还没有真正有许多层,其中作为现在我正在写的应用程序有:编写概念验证(PoC)应用程序的最佳方法是什么?

  • Form图层 - 会谈到数据层。
  • 数据层 - 与Database和Interop层进行通信。
  • 互操作层 - 与COM对象对话。
  • COM对象

什么是写一个程序,以证明我可以从A到B,同时还需要在过程中获得,而无需投入大量的时间在写作的最好方式的PoC。

我的头脑中已经有了这样的想法,应该如何一起走到一起,但我遇到了一些麻烦,表明我的团队队友们的意思。

任何人都可以推荐任何提示/技巧编码的PoCs?或者是否有更好的方式来解释我的意思,而不必写代码。

+0

随着键盘 – Pyrolistical 2009-08-10 22:31:13

回答

8

我同意其他有关获取原型的回复。确保原型保持原样的一种方法是使用绝对不会用于最终产品的语言或工具链,从而迫使它被重写为生产质量。有些想法我用:

  • 写使用shell脚本(netcat和很多bash)预脚本网络客户端
  • 写Python和Ruby的服务器,或者你熟悉的另一种语言的RAD与
  • 使用比您的生产技术更简单的技术(通过静态文件而不是TCP进行通信,或使用非常简单的RPC机制而不是使用中间件产品)
  • 使用具有不兼容许可的软件,因此产品不能发布(GPL对此非常有用,对于实际分发的任何内容)。
  • 编写一个Web窗体作为一个静态的HTML页面(无定型或任何东西,其丑无比)
  • 如果有可能替换本地对象交互的任何远程交互(数据库,网络),与handwaving说“真的在这两个步骤会分开发生“
3

根据我的经验,最好的方法是尽快在一个(或尽可能少的)图层中尽可能快地编写代码,真正讨厌和令人心碎。然后,一旦你的代码栏工作,从你的列表中的一个图层开始并分开。重复,直到你有你想要的图层。

这也有一个额外的好处,能够拉起一个特定的位,并要求你的同事假装分离出来。如果他们能做到这一点,你就不必花时间去做。

+0

“真正讨厌和令人心碎”+1我喜欢它。 – 2009-02-02 05:51:02

+0

尽管我同意你的观点,但你更快地到达UI并且真正使用它,更快的错误将会被消除。然而......你向经理介绍PoC ......经理sais ..这很棒......第二天......经理告诉你,“我与客户A交谈过,他买了它,你有1周的时间安装” – Newtopian 2009-02-02 08:13:18

+0

现在被淘汰PoC成为了真正的产品,你只需知道你将花费未来的10年沐浴在自己的Barf – Newtopian 2009-02-02 08:15:04

2

作为一个概念证明 - 我会单独采取每一点,并为其余的人编写假包装。制造原型和概念验证的危险之一是,如果它们足够接近功能性,它们往往最终成为最终产品。

1

开始时可能需要一些时间才能完成设置,但如果您可以立即使用依赖注入/ IoC框架,则可以轻松更换各种实现。 Spring/Spring.NET对我非常有帮助。

1

我发现图画和图表总能帮助我明白我的观点。当我遇到问题时,它也帮助我为自己思考问题。

只需向他们展示一些您想要的图画,就可以让您的队友更好地理解您正在谈论的内容。

2

对于概念验证应用程序的原型验证,使用非常适合快速应用程序开发的编程语言有时会很有用。

Python是一个很好的例子。您有一个巨大的框架来利用和创建您在帖子中提到的各种抽象层,同时仍然保持概念验证应用程序代码大小为最小。

工作应用程序胜于雄辩,所以如果你能为你的团队打造一个快速的原型来观看和玩耍,这有助于让酒杯适合他们。

2

尽可能在单位测试框架中使用Python等高效率语言编写。

Python单元测试使用反射来推断事物是测试并捕获正常的观测。总而言之,它需要很少的努力才能开始 - 我已经以这种方式使用Python来制定网络协议以及使用Saxon jar包装命令行XSLT转换。

通过以测试驱动的方式播放片段,您将保持您的PoC应用程序不会过度纠缠,您将为将来的实现设置测试基础。

即使您致力于主应用程序的特定语言,也要考虑对于任何帮助程序(例如测试网络协议的简单服务器)更轻量级的内容。

1

我曾经使用Delphi 7和MIDAS做过类似的项目。实现Interop层(在我的情况下是进程中的AppServer)作为允许项目访问各种数据源(例如SQL,Access,Excel和COM对象等)的dll文件。

相关问题