第 1 部分: 簡介和概述

文檔選項
將打印機的版面設置成橫向打印模式
將此頁作爲電子郵件發送

級別: 中級
Alister Lewis-Bowen, 高級軟件工程師, IBM 
Stephen Evanchik, 軟件工程師, IBM 
Louis Weitzman, 高級軟件工程師, IBM 
2007 年 3 月 15 日
在這個 系列 中,在 IBM Internet Technology Group 團隊的帶領下使用一套可免費獲得的軟件來設計、開發和部署一個完整的社區 Web 站點。開放源碼社區提供了各種工具,結合使用這些工具可以爲複雜的 Web 應用程序創建一個有用的開發和生產環境。以這些工具作爲基礎,我們提供了一種方法和一些改進,能幫助簡化開發過程。儘管定製仍然是有必要的,但是這個系列講解了如何使用開放源碼工具快速建立和運行相當複雜的 Web 站點,這些工具包括 Drupal、MySQL、PHP、Apache 和 Eclipse 技術。第一篇文章將我們的方法與其他可用軟件工具進行比較,並討論我們所做的改進。
現在,Web 站點已經成了業務的重要部分,而用來創建和部署 Web 站點的工具也變得更靈活和容易使用。但是,複雜 Web 應用程序的開發並不輕鬆,它們需要的不只是標準的交互方法(比如 blog)。組織中的每個應用程序常常需要進行定製。
在這個系列中,我們通過一個虛構的組織,International Business Council(IBC),來展示如何更有效地儘可能擴展 Web 站點的功能。IBC 讓它的職員在一個協作型社區中與外部業務夥伴進行交流;但是,目前的 Web 站點無法滿足當前的業務需要,這個站點必須進行重新設計。這個新的定製 Web 站點必須有文檔存儲、討論組、專門的工作組、研討會日程安排、日程議題描述、會話過期和其他任務。
用戶的角色是通過改進戰略和戰術決策來改進公司提供的產品。用戶社區是按照工作組的核心問題進行組織的。社區每年舉辦數次研討會,以當面會晤。在研討會上提出問題,然後在會晤的間隔解決這些問題。Web 站點用來提供關於社區活動(比如研討會)的信息,並跟蹤會晤中所提出問題的解決進度。
現有的 Web 站點基於一個文檔存儲庫,這個庫用來交換文檔、更新關於即將舉辦的活動的信息。但是,這個 Web 站點不足以促進社區的交互,尤其是缺乏 Web 2.0 站點的那些新功能,比如 Weblog、討論組、RSS 提要等等。團隊的目標是鼓勵社區的交互,並提供一個發佈框架來支持社區活動。
因爲這應該是個安全的 Web 站點,我們需要進行會話管理來支持過期,以及在授予訪問權之前對條款和條件文檔進行確認。還需要支持一種直接的操作方法來進行內容編輯 —— 如果要對內容進行操作,我們希望交互控件放在它所影響的內容旁邊。
現有 Web 站點的其他問題涉及不一致的可視語言、導航和信息體系結構。內容常常隱藏在文檔中,而文檔放在存儲庫中;直到下載並查看文檔之前,沒有任何線索能夠表明文檔中有什麼內容。根據我們的分析,團隊認爲文檔存儲庫採用了錯誤的模型。我們需要一個能夠完成更多任務的內容管理系統。
我們的設計過程是迭代式的,首先進行分析,然後是原型設計,然後是評估。我們利用調查表、備選設計和不同精度的原型讓最終用戶儘早參與進來。我們希望將決策集中於業務目標和最終用戶的需要。我們發現,在着手處理一組功能需求或開發之前,用戶參與得越早,我們就越能瞭解什麼特性是有用的以及怎樣的決策是正確的。我們沒費多大的力氣就收集了一些非常有價值的反饋,同時使用戶感覺他們是設計過程的一部分。我們還獲得了用戶社區的高度信任。
理解設計還需要理解信息體系結構。例如,根據用戶調查的發現,最重要的需求之一是對三種主要信息的訪問能力:
  • 關於工作組的信息
  • 關於以前的和即將召開的研討會的信息
  • 關於所有成員的信息
用戶反饋還清晰地表明,需要一種清潔、整齊且簡單的體系結構。
我們的分析表明,訪問這個站點的有三類用戶:顧客工作組負責人管理員。這些人影響了我們的設計和決策過程。通過了解哪些信息是重要的以及這些信息與主要用戶羣的關係,我們能夠確定一個內容體系結構、它的層次結構、呈現方式以及各類用戶與此種信息的交互方式。例如,研討會信息可能包括議程(即會議議題)、這些議題的日程安排、跨多次研討會的主題以及在研討會之間已經解決的議題。
本系列中的 下一篇文章 將更詳細地討論我們的設計過程。
隨着分析的深入,需要增加的特性也逐漸明朗化。例如,爲了支持一個活躍的社區,我們希望支持對內容進行討論和評論的功能,並支持與上下文相關的反饋和在線協作。另一個重要的客戶需求是使用惟一的中立的品牌(即可視化標識)。因爲這個 Web 站點是一箇中立的場所,具有不同背景的用戶在這裏進行協作,與任何一家公司或任何一種背景有關的強烈視覺關聯都會造成不必要的障礙。




回頁首


爲了簡化開發過程,我們希望使用一個現有的內容管理系統來幫助生成一個及時的解決方案。大多數內容管理系統都支持我們需要的基本功能,但是都需要進行詳細的定製。開箱即用的實現不足以滿足需要。我們希望以開放源碼社區中已經取得的成果爲基礎進行開發。我們最終使用的工具就是按照這一原則選擇的。
我們對開發環境有幾項要求,比如能夠在不依靠網絡的情況下編寫和測試代碼的修改。在對修改進行充分測試之後,我們希望與開發團隊共享代碼。這個迭代式的開發循環導致我們選用一種遠程版本系統 CVS,從而可以與團隊成員保持同步並維護一個所有人共享的代碼基。
我們選用 Eclipse 來支持這個項目,並在一個集成開發環境(IDE)中使用所有技術。Eclipse 提供了許多擴展並可以非常輕鬆地與 Concurrent Versions System(CVS)進行集成。Eclipse 透視圖提供了幾個支持當前活動的視圖和編輯器。在我們的情況中,活動就是編輯 PHP 模塊和 HTML 片段。Eclipse 還跟蹤對代碼的修改。所以,即使沒有將文件簽入 CVS,仍然可以從本地機器恢復文件的先前版本。Eclipse 的這個特性有助於確保不會丟失代碼。我們創建了一個集中的開發和測試環境,這樣就可以順暢地處理代碼並與團隊的其他成員進行協作 —— 您的時間應該花費在編寫和測試代碼上,而不是管理文件和系統上的其他資源。
對內容管理系統的選擇影響到需要使用的其他工具。對於 Drupal,這意味着用 PHP、HTML 和層疊樣式表(CSS)來開發頁面,用 MySQL 進行後端存儲。




回頁首


我們建立了一套需求,這將指導我們選擇內容管理系統。如果某些特性不存在,我們希望系統能夠輕鬆地擴展以包含這些特性。這些需求包括:
  • 內容與表示的分離
  • 對內容進行就地(in-place) 評論
  • 對內容進行就地 編輯
  • 按線索組織的討論組(Threaded discussion group)
  • 控制訪問特權
  • 搜索內容
  • 在查看任何內容之前進行身份驗證
  • 會話控制,包括過期以及合法條款和條件的簽名
  • 支持通過討論進行社區交互
  • 內容管理系統要便於學習
  • 提供給客戶的內容管理系統的管理界面要簡單
圖 1 顯示了來自這個 Web 站點的最終設計的一個典型頁面。在我們討論設計和實現的不同方面時,將會詳細描述這個頁面。

圖 1. 來自 IBC Web 站點的典型頁面
典型頁面




回頁首


管理 Web 站點內容有許多方法,從簡單的 Web log(blog)引擎系統(只支持有限的內容發佈功能)到完整的內容管理系統框架,再到應用程序框架(可以在其上構建自己的定製內容管理系統)。由於在開放源碼領域中存在衆多的選擇,所以很難選擇適合自己需要的解決方案。
最終,我們選擇了 Drupal。但是,描述一下我們進行決策的基本原則是有好處的。下一節描述一些候選系統,包括 Drupal、Mambo、Typo3、Ruby on Rails、Movable Type、WordPress 和 TextPattern。
“Drupal 軟件允許個人或用戶社區輕鬆地發佈、管理和組織 Web 站點上的各種內容。數以萬計的個人和組織已經使用 Drupal 建立了不同類型的 Web 站點,包括
  • 社區 Web 門戶和討論站點
  • 公司 Web 站點/內部網門戶
  • 個人 Web 站點
  • 愛好者站點
  • 電子商務應用程序
  • 資源目錄
Drupal 支持內容管理系統、blog、協作型編寫環境、論壇、時事通信、圖片庫、文件上載和下載等等。Drupal 是採用 GPL 許可協議的開放源碼軟件,由一個包括數千用戶和開發人員的社區來維護和開發。Drupal 可以免費下載和使用。”(來源:CMS Matrix
與其他內容管理系統(CMS)相比,Drupal 還相當 “年輕”。但是,我們感到這個框架編寫得非常好,既健壯又非常靈活,而且有一個興旺的開發社區,這意味着會有大量用戶採用和支持它。
與其他 CMS 一樣,這個框架有很強的可擴展性。我們需要的許多特性已經以模塊的形式提供了,可以輕鬆地將這些模塊與 Web 站點的核心功能集成起來。
這個框架和模板(主題化)系統完全是用 PHP 編寫的;我們不需要學習另一種標記語言。如果需要擺脫這個框架,可以非常容易地做到。(當然,不建議這麼做,但是這提供了最大的靈活性。)
會話管理內置在覈心功能中,這是其他 CMS 沒有提供的。這免去了後面的許多麻煩。
Drupal 以其可伸縮性而聞名,也就是可以支持 Web 站點從少量用戶發展到企業級。這個框架還能夠對站點的某些區域進行 “節流”,可以避免這些區域在高流量期間造成潛在的問題。
學會用 “Drupal 方式” 創建站點仍然需要一個學習過程,但是其難度與其他 CMS 相比低多了。爲了在業務邏輯層和表示層之間自由地移動(使用 PHP 模板引擎),還需要掌握 PHP。
有人認爲 Drupal 的訪問控制粒度應該更細,但是我們認爲可以利用靈活的可擴展性應對這方面的問題。Drupal 4.7 剛剛發佈,它對 4.6 版本做了許多改進。
“Mambo Open Source 是當今最出色的開放源碼內容管理系統之一。Mambo 的默認安裝很容易設置和維護。設置實用程序使用一個分 4 步的嚮導,允許用戶安裝整個系統而不需要掌握高級技術知識。安裝之後,系統包含許多可供選擇的模板和大量現成的功能。用戶不必掌握 HTML、XML 或 DHTML,也能夠添加、編輯和操作內容 —— 只需使用一個友好的編輯器輸入內容並點擊 Publish。更高水平的用戶可以以適合自己技能的層次控制這個系統。核心文件是用 PHP 編寫的 [Mambo 基於 Linux™、Apache、MySQL 和 PHP、Perl 或 Python(LAMP)],而且很容易修改。這個系統既健壯又可靠,而且由一個包括用戶和專業開發人員的大社區提供支持。(到 2006 年初,Mambo 已經有 5 年曆史了!)”(來源:CMS Matrix
目前,Mambo 很流行,它提供了非常容易的安裝和吸引人的容易使用的管理界面。常常被忽視的一點是,如果客戶需要在您交付系統後管理 Web 站點,而您希望它能很好地工作,那麼 CMS 系統的後端就會變得非常重要。
輕鬆的安裝似乎意味着我們需要的幾乎所有功能都已經就位了,可以開始主題化了。但是,與許多 CMS 一樣,模板受到一個標記系統的限制,這使您無法控制標記的質量。如果標記是有效的,其結構符合語義,而且充分地設置了 CSS ID 和 class 屬性以支持樣式化,那麼很不錯。但是,如果不是這樣,您就必須探索應用程序的核心,瞭解如何糾正生成的輸出。
Mambo 只提供了有限的會話管理功能,但是仍然比其他 CMS 提供的功能多。
Mambo 的開發路徑似乎有點兒混亂,而且對於這個解決方案的未來我們也沒有把握。Mambo 的開發劃分成幾個解決方案。Miro 是一個商業產品,而 Joomla 似乎是從 Mambo 衍生出來的一種新的 CMS。Mambo 仍然存在,它的當前開發路徑似乎比較穩定了。
“TYPO3 是一種在 GPL 之下發布的企業級開放源碼內容管理系統。它運行在全世界超過 122,000 臺服務器上。這個應用程序已經轉換爲 43 種語言,正在包括 60 個國家中的超過 27,000 位用戶的社區中進行積極的開發。它的用戶包括 BASF、DaimlerChrysler、EDS、Konika-Minolta、Volkswagen、UNESCO 以及許多大學、政府機構和非盈利組織。”(來源:CMS Matrix
Typo3 很大。大應用程序。大社區。有大量用戶採用它。它的擴展特性和代碼貢獻清單很大。但是,學習它的過程也很漫長。毫無疑問,Typo3 可以完成我們需要的所有任務,但是除了複雜性之外,似乎還有其他問題。
大量核心模塊和貢獻的模塊所生成的標記使用了 90 年代中晚期遺留下來的結構,包括大量的表格佈局,沒有很有效地設置 CSS ID 和 class 屬性,而且有時候會有無效的結構。我們希望使用當前的最佳實踐來保持設計迭代的靈活性,所以 Typo3 不適合及時開發。這個模板系統與其他解決方案相比似乎太複雜了。花費在瞭解如何對 Web 內容進行主題化方面的時間太多了,這個模板系統提供的好處不足以抵消這一花費。
管理界面看起來也很笨拙和陳舊,尤其是與 Mambo 相比。這是一個重要的考慮因素,因爲我們最終需要將站點的管理任務交給別人。
如果我們有更多的時間,Typo3 可能是一個選項。但是,看起來它需要進行重寫才能跟上潮流,才能與新興的其他 CMS 進行競爭。在 Typo3 的新版本中,似乎將解決使用基於 xHTML 和 CSS 的標準的問題。
“Ruby 是一種純粹的面向對象編程語言,它具有非常簡潔的語法,使編程更加優雅和有趣。Ruby 成功地結合了 Smalltalk 在概念上的優雅、Python 的易用性和 Perl 的實用性。Ruby 在上世紀 90 年代早期誕生於日本,在其後的幾年中,隨着更多的英文圖書和文檔的出現,Ruby 開始在全世界範圍流行起來。Rails 是一種開放源碼的 Ruby 框架,它用來開發以數據庫作爲後端的 Web 應用程序。Rail 的主導方針是:更小的軟件和約定優於配置(convention over configuration)。更小的軟件意味着實現應用程序所需編寫的代碼行更少。使代碼更小就意味着更快速的開發和更少的 bug,這使代碼更容易理解、維護和改進。稍後您會看到 Rails 如何減輕代碼負擔。
約定優於配置意味着不再需要冗長的 XML 配置文件 —— Rails 中沒有任何配置文件!Rails 應用程序並不使用配置文件,而是使用幾條簡單的編程約定,從而允許通過反射和發現來查明所有配置。您的應用程序代碼和運行的數據庫已經包含了 Rails 需要知道的所有東西!”(來源:Rolling with Ruby on Rails
典型的內容管理系統允許經過身份驗證的用戶創建內容,內容形成的頁面會成爲 Web 站點的一部分。但是,Ruby On Rails(ROR)並沒有直接提供這個特性。它提供了一個 Web 應用程序框架。可以使用 ROR 從頭構建一個定製的 CMS。
在我們的項目開始時,圍繞着 ROR 掀起了一股熱潮,這主要是由 37Signals 推動的,它的在線 ROR 應用程序(比如 Base Camp)給人們留下了深刻的印象。
我們喜歡這種通過框架綁定到數據庫的方式。這有助於加快與數據庫表列相關聯的開發的重複性部分。
在我們進行研究時,這個框架還是以 blog 爲中心的。其穩定性還成問題,但是我們認識到它可能可以用在未來的項目中。
創建定製的 CMS 是有意義的。例如,可以利用定製的解決方案創建一個可主題化的管理界面。但是,由於時間限制,我們需要在一個 CMS 的基礎上進行構建。
我們考慮使用一個現有的發佈系統,它主要支持創建 blog。我們以前使用過這種系統,通過重新定義使用類別和數據的方式來支持非 blog Web 站點的內容。這些類型的解決方案無法與 Drupal、Mambo 和 Typo3 這樣的系統進行競爭。例如,通常不支持 Drupal 和 Typo3 提供的那種會話管理。但是,它們提供了一種創建簡單 CMS 的非常簡單且快速的方式。
這些解決方案是以 blog 爲中心的,下面是一些可供選擇的方案:
“Movable Type 是一種強大的可定製的平臺,它允許用戶在個人發佈系統中創建有吸引力和表現力的 Weblog,這個系統可以無限地定製,可以說是萬能的。Movable Type 作爲基於服務器的軟件運行。由於提供了豐富的特性、開放的體系結構和健壯的第三方插件庫(用來擴展系統的功能),Movable Type 已經被個人和公司廣泛採用。全世界的開發人員創建了數以百計的插件,以此爲基礎,可以在熟悉的經過測試的 Movable Type 系統上構建出全新類型的應用程序。”(來源:CMS Matrix
作爲當前比較流行的 blog 發佈系統之一,這個 Perl 實現擁有很大的貢獻者社區和良好的支持結構。主要的障礙是其創建者 Six Apart 創建了一個收費結構來支持它的產品開發。因爲我們希望創建一個開放源碼的解決方案,所以很早就打消了使用 Movable Type 的念頭。
“WordPress 是一種很有新意的語義性個人發佈平臺,它主要關注美觀、Web 標準和易用性。WordPress 既是免費的,又是無價的。簡單地說,在您考慮 blog 軟件時,WordPress 就是您需要的東西。通過簡單易用的插件體系結構,很容易改進 WordPress 的默認功能以及添加新的功能。”(來源:CMS Matrix
在我們的項目開始時,WordPress 正在逐漸走向成熟。與 Drupal 相似,支持這個解決方案的 wiki 風格的文檔系統很有用。核心代碼很乾淨而且容易擴展,用戶界面也非常容易使用。
模板系統是一個典型的基於選項卡的系統,它完全可以與其他 blog 發佈平臺相匹敵。從這個系統生成的輸出支持當前的最佳實踐,而且內容佈局和可訪問性的開發也很容易。
WordPress 的不足之處是它缺乏緩存功能,我們認爲這可能會限制可伸縮性。
“這是一種免費的、優雅的、容易使用的內容管理系統,適用於所有類型的 Web 站點,甚至是 Weblog。涉及到在互聯網上發佈時,新手和專家同樣會遇到了一個令人煩惱的悖論:字處理程序和圖形應用程序使任何人都可以很好地管理個人計算機上的文本和圖形,但是要使這些文本和圖形在全球性的 Web 上可用,情況一下子就複雜化了。這個文檔和目標環境表面上與本地系統相似,但實際上差別很大。在其中使用文本和圖形要求開發人員具備多語言編程技能,精通基於計算機的圖形設計,而且具有聖人般的耐心。原本自信滿滿的開發人員在 Web 固有的編寫語言的不靈活性面前大受挫折,即便處理最簡單的文本也會遇到困難,使用 WYSIWYG Web 編輯器卻產生出乎意料的結果,這一切都會讓他們心灰意冷。設計 TextPattern 這個 Web 應用程序的目的正是爲了克服在線發佈的這些障礙,並簡化結構良好、符合標準的 Web 頁面的開發過程。”(來源:CMS Matrix
與 WordPress 相似,TextPattern 看起來是另一個精美的 blog 發佈系統。它具有乾淨的管理界面,似乎很容易使用。但是,它缺乏我們需要的許多特性,包括會話控制和緩存。
圖 2 顯示了上面討論的產品的一些軟件需求。

圖 2. 一些內容管理框架的軟件需求
CMS




回頁首


因爲我們需要讓這個 Web 站點的設計對於我們自己和接受這個解決方案的任何人都很容易,所以安裝框架的簡便性和掌握其使用方法所需的時間就成了關鍵因素。儘管 Ruby on Rails(ROR)很吸引人,但是我們認爲從頭編寫 CMS 需要花費的時間太多了,所以從考慮的範圍中去掉了 ROR。
如果我們能夠有效地控制對每個人的信息的訪問,那麼具有健壯且靈活的會話管理和用戶管理會使實現更容易。當然,如果具有健壯的可插入基礎結構,還有活躍的社區爲現有框架提供高質量的擴展,那麼實現的速度也會提高。
另一個關鍵因素是,隨着併發用戶數量的增加,可能需要很高的可伸縮性。
能夠輕鬆地調整內容的顯示方式,這一點也很重要;我們需要在開發的迭代過程和未來的任何調整期間保持靈活性。對於語義 xHTML、CSS 和可訪問的設計,使用 Web 設計當前的最佳實踐還需要所謂的 “可主題化”。
圖 3 顯示了候選解決方案在哪些方面滿足我們的需求。顯然,我們需要的一些東西是 blog 引擎無法提供的。

圖 3. 候選解決方案與需求的匹配程度
候選
Mambo 在安裝的簡便性和 UI 方面很突出,但是開發跟蹤很不夠,而且在支持方面也讓人不放心。
Typo3 看起來有一個龐大的社區,而且其成熟度也是我們所需要的。但是,與 Drupal 相比,學習使用 Typo3 要困難得多。
我們只需花少量時間來學習 Drupal 方式,而且這個框架看起來很有意義。我們還覺得 Drupal 提供了框架和靈活性的恰當組合,在需要擺脫框架時也可以做到。考慮了所有方面之後,我們決定使用 Drupal。開放源碼 CMS 領域的形勢還在不斷地變化,在未來我們會重新研究這些系統和任何新系統。
Drupal 包含許多內置的特性,並可以在活躍的社區支持下輕鬆地擴展,能夠添加額外的特性組合。基本特性包括:
  • 使用 Apache 的 mod_rewrite 功能提供友好的 URL
  • 使用 Drupal 的模塊框架輕鬆地進行擴展(社區開發了許多有用的模塊,它們提供了分類顯示、jabber 身份驗證、私有消息、書籤等功能)
  • 個性化的環境,可以根據用戶的首選項對內容和表示方式進行管理
  • 基於角色的權限系統,可以控制對內容的查看和編輯權限
  • 內容完全編入索引以支持搜索
  • Drupal 是在數據庫抽象層上編寫的,所以框架可以輕鬆地擴展到其他數據庫後端
  • 支持其他內容形式,比如投票、按線索組織的評論以及討論和內容聯合
  • 在一個使用 HTML、CSS 和 PHP 的模板系統中分離內容和樣式
  • 對日誌、分析和基於 Web 的管理的支持
  • 在線幫助
我們使用 Drupal 的模塊框架來添加支持 Web 站點所需的擴展特性。擴展特性包括:
  • 創建一個外部網環境 —— 一個完整的站點,它要求先進行身份驗證,然後才能看到信息
  • 基於用戶與 Web 站點的交互的會話過期機制
  • 條款和條件策略實現
  • 對現有的內容編輯界面進行擴展,提供 “就地” 編輯(例如,向經過授權的用戶顯示在 Web 頁面中他們可以編輯哪些內容,允許他們選擇這些內容並在原地進行編輯)
  • 管理公告,發佈所有成員都應該看到的信息
  • 管理工作組任務、當前狀態、議題等等
  • 使用 Ajax 管理研討會和議題的創建,幫助完善管理界面
  • 爲成員信息及其搜索提供擴展的視圖和管理界面
  • 以邊欄形式顯示額外的信息塊,從而根據成員的角色和他們擁有或創建的數據顯示上下文數據
  • 用電子郵件向對特定內容領域感興趣的成員發送每週信息摘要
本系列中的後續文章會討論其中的許多擴展。
我們在 Drupal 4.6 中開發了這個 Web 站點,但是 Drupal 4.7 現已發佈。本系列文章將基於 4.7 實現進行討論。




回頁首


有許多內容管理框架。您應該根據自己的需求對它們進行評估。在本文中,您已經瞭解了以下系統的優點和缺點:




回頁首


IBM Internet Technology Group 的這個文章系列將介紹如何使用開放源碼軟件設計、開發和部署一個協作型的 Web 站點。本文概述了這個項目和我們的需求,並對比了我們分析過的幾個內容管理系統。還解釋了選用 Drupal 的原因,以及如何對 Drupal 進行擴展來滿足需求。
下一篇文章將描述一種靈活的設計方法,以此解決應用程序的設計過程中的問題。這個過程可以用來爲 Web 站點或應用程序設計用戶體驗。然後介紹開發過程的技術方面,分步指導您安裝開發工具和所有支持技術。然後討論定製開發環境的其他方面。這些主題包括:
  • Drupal 入門
  • Drupal 與其他軟件工具的交互,比如 MySQL、PHP、CSS 和 Ajax
  • 構建定製的 Drupal 模塊
  • 對安裝進行部署和調優
我們希望幫助您儘可能快速地安裝和運行一套健壯的內容管理工具,使您能夠高效地對 Web 應用程序進行定製。


學習

獲得產品和技術


Alister
Alister Lewis-Bowen 是 IBM 的 Internet Technology Group 的高級軟件工程師。他從 1993 年開始作爲 IBM 英國職員從事互聯網和 Web 技術方面的工作。Alister 後來到美國爲 IBM 贊助的體育活動的 Web 站點工作,之後成爲 ibm.com 的高級網管。他當前正在幫助創建語義 Web 原型。可以通過 [email protected] 聯繫 Alister。

Stephen
Stephen Evanchik 是 IBM 的 Internet Technology Group 的軟件工程師。他是許多開放源碼軟件項目的代碼貢獻者,其中最著名的是 Linux 內核中的 IBM TrackPoint 驅動程序。Stephen 當前從事語義 Web 技術。可以通過 [email protected] 聯繫 Stephen。

Louie
Louis Weitzman 是 IBM 的 Internet Technology Group 的高級軟件工程師。他從事設計和計算已經有 30 年了。他曾經幫助開發 ibm.com 使用的基於 XML 片段的內容管理系統,當前正在從事將設計過程融入新項目的工作。可以通過 [email protected] 聯繫 Louis。

0

收藏

oceanson

41篇文章,2W+人氣,0粉絲

Ctrl+Enter 發佈

發佈

取消

0

分享
oceanson
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章