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

Python编程-用Python开发企业级软件的规则/建议?

  •  7
  • HipsterZipster  · 技术社区  · 16 年前

    我是一个有点高级的C++/Java开发人员,最近对Python产生了兴趣,我非常喜欢它的动态类型和高效的编码风格。我目前在解决编程谜题和脚本编写等小型编程需求时使用它,但我很好奇是否有人在企业级项目中成功地使用了Python?(最好使用现代编程概念,如OOP和某种类型的设计模式)

    如果是,请你解释一下好吗 你选择了Python (特别是) 你从这个项目中学到了什么?(请随意比较项目中Python与Java等的使用情况)

    2 回复  |  直到 16 年前
        1
  •  17
  •   S.Lott    16 年前

    我正在使用Python开发一个复杂的保险承保应用程序。

    我们的应用软件本质上是将我们的精算模型重新打包成公司可以订阅的形式。这项业务是基于我们的精算师和他们的深入思考。我们没有打包一个相对固定的聪明算法。我们通过网络服务将精算师的大脑租给客户。

      • 静态语言(java,C++,c*)导致数据模型的早期锁定。

    1. 我们的软件是一种服务(不是一个包),因此我们有一个无休止的集成问题。

      • 静态语言需要复杂的映射组件。通常是某种可配置的、XML驱动的从客户消息到不断变化的内部结构的映射。

      • Python允许我们将映射作为一个简单的Python类定义,我们只需调整、测试并将其投入生产。这个模块没有任何限制——它是一流的Python代码。

    2. 我们必须进行广泛、长期的概念验证。这些涉及到许多具有不同数据源和定制功能的“假设”场景。

      • Python需要的规划要少得多。Duck打字(和Django)让我们轻松完成一个演示。数据映射是简单的python类定义;我们的精算模型处于相当恒定的变化状态。

    3. 我们的商业模式需要经过一定程度的谈判。我们与信息提供商签订了相当复杂的合同;这些变化不像精算模型那样频繁,但这里的变化需要定制。

      • 在Python中,我们使用了一个广泛的测试套件,并且随着各种合同条款和条件的逐渐深入,我们进行了大量的重构。

      每周我们都会收到一个问题,比如“我们能处理像X这样的条款吗?”我们的标准答案是“绝对”,然后是一个小时的重构,以确保我们 能够 如果交易是以这种形式达成的,就处理它。

    4. 我们主要是一个RESTful web服务。Django做了很多开箱即用的事情。我们必须编写一些扩展,因为我们的安全模型比Django提供的安全模型要严格一些。

      • 静态语言不必提供源代码。不喜欢安全模型吗?向供应商支付$$。

      • 动态语言必须作为源代码提供。在我们的例子中,我们花时间仔细阅读Django的源代码,以确保我们的安全模型与Django的其余部分完全匹配。我们没有 需要 HIPAA合规性,但我们正在构建它。

      • 使用静态语言,您可以编写、运行API,并希望它能够工作。开发周期是编辑、编译、构建、运行、崩溃、查看日志;这只是为了增加接口,确保我们有正确的协议、凭证和配置。

      • 我们在交互式Python中使用该接口。因为我们以交互方式执行它,所以我们可以立即检查响应。开发周期缩短为运行、编辑。我们可以在一个下午完成一个web服务API。

        2
  •  3
  •   Svante    16 年前

    我一直在世界上最大的银行之一使用Python作为分布式计算框架。 之所以选择它,是因为:

    • 开发和部署新功能的速度必须非常快;
    • 代码的某些部分将由专门从事数学建模而非软件开发的人员编写。