注意:雖然 JavaScript 對於本網站並非必不可少,但您與內容的互動將受到限制。請啟用 JavaScript 以獲得完整體驗。

WordStream 選擇 Python 作為其平臺

簡介

WordStream 是一家為持續最佳化和擴充套件 PPC 和 SEO 工作提供關鍵詞管理解決方案的供應商,涉及到大量的關鍵詞。 WordStream 提供可擴充套件的、私有的線上關鍵詞工作臺,用於進行關鍵詞發現、關鍵詞建議、關鍵詞研究、關鍵詞分組、關鍵片語織、搜尋營銷工作流程,以及將研究轉化為行動。

WordStream 自 2007 年開始開發,由一個八人工程團隊開發和支援。伺服器系統大約有 25,000 行 Python 程式碼。該軟體部署在我們的伺服器上,並支援全球數千名使用者。

架構

從軟體角度來看,WordStream 是一個高可用、大規模可擴充套件、分散式、多層客戶端/伺服器資料庫應用程式。該產品由三個獨立的模組組成

  • 伺服器後端是用 Python 編寫的,提供資料儲存和處理功能。
  • 圖形使用者介面前端是用 Adobe Flex 編寫的,為伺服器暴露的功能提供輔助。它需要與伺服器的即時連線才能工作。
  • JavaScript “跟蹤程式碼” 安裝在客戶端網頁上,併為伺服器提供主動的 Web 分析。

目前我們在 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 適合快速原型設計和開發。

我們選擇 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 的高階軟體工程師。