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

Python 為 Journyx 時間表提供支援

簡介

Journyx 時間表 (tm) 是一個商業應用程式,提供時間、費用和專案跟蹤。 1996 年,Journyx 執行長兼創始人 Curt Finch 在人力資源行業工作時,看到了使用 Web 準確收集和儲存員工時間表資訊的機會。

Journyx Screen Shot

Journyx 時間錄入螢幕 放大

時間表的第一個版本側重於收集準確的成本資訊,著眼於將這些資料應用於制定新的專案成本預測。此後,時間表已大大擴充套件,不僅便於專案管理,還便於計費和工資核算,可以跟蹤時間、里程和費用。可選模組可用於無紙化費用報告、高階使用者角色管理、自動計費和工資單,並方便斷開連線的旅行使用者訪問系統。

如今,時間表是獨立於平臺的,足夠靈活,可以由客戶重新配置以適應獨特的組織需求,並且可以為大型企業擴充套件到數萬使用者。

從一開始就使用 Python

Journyx 時間表從一開始就一直在使用 Python。 Curt Finch 最初是根據一位朋友 Steve Madere(他創立了 Dejanews.com,現在是 Google 的一部分)的建議選擇了 Python。在描述他選擇的理由時,Curt 說:“我研究了 Java 和 C,得出的結論是,1 行 Python 相當於 10 行 Java 或 100 行 C。開發人員編寫程式碼的速度基本上是恆定的,所以我選擇了 Python,它是(現在仍然是)我見過的最高階語言,而且足夠靈活,可以普遍使用。”

架構

從一開始,時間表就被設計和實現為一個 Web 應用程式。它使用三層 Web 應用程式架構,分別為 Web 表示層、業務邏輯層和資料儲存層。隨著時間的推移,應用程式的功能已經大大提高,Curt 決定使用 Python 作為實現語言的決定已被證明是一個不錯的選擇。

Python 目前用於時間表應用程式中的所有應用程式邏輯。這包括從最初的 Apache 排程(使用 mod_python 來加快直譯器例項化)到應用程式邏輯,再到資料庫傳輸層的呼叫的所有程式碼。

時間表不僅使用 Python 標準庫,還使用幾個獨立開發的開源 Python 子系統,例如 PyXML 和 ActZero 的 SOAP 支援。 PyXML 用於實現某些業務規則並開發 jxAPI,這是一個基於 SOAP 的應用程式邏輯 API。正在進行的工作是擴充套件此 API,為 jxAPI 函式定義 Web 服務描述語言模板。該應用程式目前使用 Python 2.1.1 構建和交付。

時間表還包含一些非 Python 技術。 Unix 和 Linux 發行版與 Apache HTTP 伺服器和 PostgreSQL 資料庫一起打包。 Windows 的時間表發行版附帶可選的 Microsoft Desktop Engine (MSDE) 資料庫,並與 Microsoft IIS 整合。時間表可以配置為使用各種第三方資料庫。

結果

時間表專案取得了驚人的成功,創造了數百萬美元的收入,並使 Journyx 即使在當前的經濟條件下也能逐年增長。

Journyx 與我們的許多客戶一樣,在內部將時間表用作公司基礎設施的關鍵組成部分。它廣泛用於專案跟蹤、計費和工資核算。

到目前為止,大約有 11 人年的時間投入到 Journyx 時間表產品中,產生了超過 15 萬行的 Python 程式碼。

在開發 Journyx 時,Python 的兩個最大好處是編寫和部署功能的速度,以及它真正的“一次編寫,隨處執行”的跨平臺功能。

Journyx 開發人員發現,Python 的簡潔性和清晰性與其面向物件的特性相結合,使其成為一種非常強大且高效的語言。 Python 豐富的標準庫,其中包括用於字串操作和 HTML 生成等內容的模組,進一步支援程式設計師滿足積極的開發計劃。

由於該語言的這些特性,Python 使 Journyx 能夠比競爭對手更快地新增功能。我們已經能夠實現 SOAP/XML 和 WSDL 支援,並在競爭產品之前擴充套件了應用程式功能的其他方面。維護和改進效率的關鍵推動因素之一是 Python 語言固有的清晰度和可讀性。其他重要因素是充滿活力和響應迅速的 Python 開發社群,以及隨著語言設計隨時間的推移而看到的很高程度的向後相容性和穩定性。

Python 的跨平臺標準庫和獨立於平臺的位元組碼檔案格式允許將 Python 模組部署到任何平臺,而不管該模組是在哪個平臺上準備的。這不僅有助於避免每個平臺的開發開銷,還有助於為時間表軟體產品提供客戶支援。例如,在 Redhat 6.2 系統上構建的補丁模組可以傳送給客戶,以便在 Windows XP 或任何其他作業系統上安裝,而無需任何型別的交叉編譯或翻譯。

結論

Python 使 Journyx 能夠比使用另一種語言在更短的時間內為多個平臺生成靈活、功能豐富的產品。 Python 一直是我們的重要競爭優勢,即使我們的 Python 程式碼庫在複雜性和成熟度方面不斷增長,Python 的自然優勢也使我們能夠以具有競爭力的低成本提供高質量的關鍵任務應用程式。

關於作者

Curt Finch 是 Journyx 的創始人兼執行長,他在諮詢行業成功地參與並管理了與諸如 Tivoli、IBM 和 Prudential Securities 等財富 100 強公司的合作後,於 1996 年創立了該公司。

John Maddalozzo 是 Journyx 工程副總裁,在 IBM AIX 工程組從事 Unix 核心開發 12 年後,於 1999 年加入 Journyx。