注意: 雖然 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 的高階軟體工程師。