注意: 虽然 JavaScript 对于本网站不是必需的,但您与内容的互动将受到限制。请开启 JavaScript 以获得完整的体验。

WordStream 选择 Python 作为其平台

引言

WordStream 是一家关键词管理解决方案提供商,致力于持续优化和扩展涉及大量关键词的 PPC 和 SEO 工作。WordStream 提供了一个可扩展的、私有的、在线关键词工作台,用于进行关键词发现、关键词建议、关键词研究、关键词分组、关键词组织、搜索营销工作流程,并将研究转化为行动。

WordStream 自 2007 年开始开发,由一个八人的工程团队进行开发和支持。服务器系统大约有 25,000 行 Python 代码。该软件部署到我们的服务器上,支持全球数千名用户。

架构

从软件角度来看,WordStream 是一个高可用、大规模可扩展、分布式、多层客户端/服务器数据库应用程序。该产品由三个独立的模块组成:

  • 服务器后端是用 Python 编写的,提供数据存储和处理功能。
  • 图形用户界面前端是用 Adobe Flex 编写的,为服务器公开的功能提供帮助。它需要与服务器建立实时连接才能运行。
  • 一个 JavaScript“跟踪代码”安装在客户端网页上,为服务器提供活跃的网页分析。

目前我们用于 WordStream 的其他技术包括 Adobe Flex、Linux、Apache 和 C/C++。至于开发流程工具,我们正在使用 PyDev Extensions、Trac、Buildbot、Review Board 和 Git。

决定使用 Python

这个项目从一开始就使用 Python。招聘有 Python 经验的新开发人员有点困难,但到目前为止,我们的经验是 Python 是一种非常容易上手的语言。一旦你学会了 Python,就很难再使用 C/C++ 等其他语言了。

我们决定将 Python 作为 WordStream 的首选平台有几个原因。

首先,Python 代码具有极高的通用可读性。任何语言背景的开发人员都可以在不依赖大量文档的情况下阅读和理解代码。

其次,Python 是一个非常成熟的平台,拥有丰富的第三方库和工具。Python 的调试工具套件易于查找且运行良好。

第三,Python 跨平台无缝工作,这让我们的开发人员可以自由地使用任何平台进行日常开发。它在生产环境中部署也非常容易,并得到所有主要 Linux 发行版的广泛支持。

此外,Python 适用于快速原型设计和开发,因为它具有动态类型系统、对常见数据结构(例如哈希映射、集合和列表)的本地支持、“batteries-included”标准库以及合理的错误处理。

我们选择 Python 的另一个原因是,它是一种出色的语言,易于解析和操作集合(迭代、连接、交叉等)。

最后但同样重要的是,如果性能成为问题,使用 Python/C API 编写扩展很容易。

请理解我们确实评估了其他解决方案,包括 Ruby 和 Java。但我们对 Ruby 的印象是当时它还不够成熟,而 Java 常常令人不愉快。

项目成果

我们必须为客户提供 24/7/365 的可用性,因为 WordStream 是一个由世界各地的人们使用的在线软件即服务解决方案。鉴于这个先决条件,Python 表现出色。

事实证明,Python 是一种非常强大且灵活的语言,无论是在解析还是数据操作方面。网上有很多好评和赞誉,称赞 Python,产品也确实名副其实。

作为一个处于早期阶段的初创公司,说服有才华的工程师离开现有职位并加入我们的开发团队始终是一个挑战。我们最富有成效的工程招聘之一具有 C/C++ 编程背景,但之前没有 Python 经验,但他能够快速学习并高效地使用该语言。事实上,他将 Python 语言的生产力作为加入我们的原因之一!

Python 在原始处理性能及其在多线程环境中的操作方面确实存在一些小的缺点。然而,这些问题可以通过使用 C 扩展或基于多进程执行模型来轻松解决。

结论

总而言之,我们相信选择将我们的产品技术基于 Python 为 WordStream 带来了相对于竞争对手的战略技术优势,因为它提高了生产力、可靠性和可扩展性。

关于作者

Gerard Escalante 是 WordStream 的工程副总裁。他拥有加拿大滑铁卢大学计算机工程应用科学学士学位。

Philip Stefou 是 WordStream 的高级软件工程师。