【问题标题】:Best way to write a Proof of Concept (PoC) app? [closed]编写概念证明 (PoC) 应用程序的最佳方式是什么? [关闭]
【发布时间】:2010-10-04 20:56:00
【问题描述】:

我目前正在开发一个项目,我需要编写一些概念验证应用程序。我之前写过 PoC 应用程序,但它们只是非常小,并且没有真正有很多层,而我现在正在编写的应用程序有:

  • 表单层 - 与数据层对话。
  • 数据层 - 与数据库和互操作层对话。
  • 互操作层 - 与 COM 对象对话。
  • COM 对象

编写程序以显示我可以从 A 到 B 以及所需过程的最佳方式是什么,而不需要花费大量时间来编写 PoC。

我的脑海中已经有了如何将这一切结合在一起的想法,但我在向我的队友展示我的意思时遇到了一些麻烦。

在编写 PoC 时,谁能推荐任何提示/技巧?或者有没有更好的方法来解释我的意思,而不是编写代码。

【问题讨论】:

    标签: architecture modeling


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      工作应用胜于雄辩,因此如果您可以快速制作一个原型供您的团队查看和使用,这将有助于让他们的玻璃杯就位。

      【讨论】:

        【解决方案3】:

        在单元测试框架中尽可能多地使用 Python 等高生产力语言编写代码。

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

        通过以测试驱动的方式使用片段,您将避免 PoC 应用变得过于纠结,并为未来实施中的测试奠定基础。

        即使您致力于为主应用使用特定语言,也请考虑为任何帮助程序提供更轻量级的东西,例如测试网络协议的简单服务器。

        【讨论】:

          【解决方案4】:

          我同意其他关于制作原型的回答。确保原型保持原样的一种方法是使用绝对不会在最终产品中使用的语言或工具链,从而强制将其重写为生产质量。我使用的一些想法:

          • 使用 shell 脚本(netcat 和很多 bash)编写一个预先编写好的网络客户端
          • 用 Python、Ruby 或您熟悉的其他 RAD 语言编写服务器
          • 使用比生产技术更简单的技术(通过静态文件而不是 TCP 进行通信,或者使用非常简单的 RPC 机制而不是中间件产品)
          • 使用许可不兼容的软件,因此无法发布产品(GPL 对此很有用,适用于实际分发的任何内容)。
          • 将 Web 表单编写为静态 HTML 页面(没有样式或任何东西,丑陋至极)
          • 如果可能的话,将任何远程交互(数据库、网络)替换为本地对象交互,并挥手说“这两个步骤真的会分开发生”

          【讨论】:

          • +1 用于:使用绝对不会在最终产品中使用的语言或工具链
          【解决方案5】:

          我发现画图和图表总能帮助我理解我的观点。当我遇到问题时,它还可以帮助我自己思考问题。

          你可以让你的队友更好地理解你在说什么,只需向他们展示一些你的想法。

          【讨论】:

            【解决方案6】:

            最初设置可能需要更长的时间,但如果您可以立即使用依赖注入/IoC 框架,则可以更轻松地更换各种实现。 Spring/Spring.NET 对我的帮助很大。

            【讨论】:

              【解决方案7】:

              作为概念证明 - 我会单独处理每一位,然后为其余部分编写假包装器。制作原型和概念验证的危险之一是,如果它们足够接近功能性,它们往往最终会成为最终产品。

              【讨论】:

              • +1 同意你的看法,Josh,PoC 通常倾向于过桥并接近最终产品。
              【解决方案8】:

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

              这还有一个额外的好处,那就是能够提取一个特定的位并让你的同事假装它是分开的。如果他们能做到这一点,您就不必花时间实际去做。

              【讨论】:

              • “真正令人讨厌和令人心碎”+1 我喜欢它。
              • 虽然我同意你的观点,但你越快进入 UI 并实际使用它,就会越快消除错误。但是……您现在向经理说 PoC……经理说……这很棒……第二天……经理告诉你,“我和客户 A 谈过,他买了它,你有 1 周的时间来安装”
              • 现在被吐出的 PoC 变成了实际的产品,而您只知道接下来的 10 年您将在自己的 Barf 中沐浴
              • @newtopian 如果你必须避免最佳的开发方式来弥补糟糕的管理,那么开发方式就不是需要解决的问题了。
              猜你喜欢
              • 1970-01-01
              • 2010-09-23
              • 2010-09-30
              • 2011-06-13
              • 1970-01-01
              • 2010-09-09
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多