以下對 Drupal 的一些缺陷和不足進行羅列和說明,並且也提供一些彌補、改善或者避開的方法,這樣以後在遇到這些問題的時候能夠更從容一些。
易學性與易用性
Drupal 在方便使用的層面上存在兩大“不足”,分別是易學性和易用性。
Drupal 易學性上的不足是先Apsara Infrastructure Management Framework因決定,它是面向“開發人員”的工具,而非面向普通使用者的產品。要基於 Drupal 搭建一個網站或者是系統,普通使用者入手之初最多隻能安裝和配置一些簡單的模組,要想做到像熟手們說的那樣“找到模組安裝一下就好了”,那是不可能的。
如果想要對系統進行修改或者說是擴充,前期沒有投入一定的時間去學習和瞭解 Drupal 的基本知識,除了面對一大片後台管理連結無所適從之外,新手們還能幹什麼呢?
Drupal 非常不容易學習,因為擴充的靈活性使其擁有了相對其它系統更為複雜的結構,添加新頁面應該使用菜單系統、訪問資料庫應該使用資料庫抽象層、添加修改模版要先學習模版機制,原本在其它系統下的經驗到 Drupal 上來統統都不能用了 —— 使用 Drupal 的人少,與它的學習曲線、學習周期嚴重相關。這是 Drupal 的一個先天不足,但這些“化簡為繁”的機制和抽象層最終給 Drupal 提供了無比強大、無可比擬的擴充性和靈活性 —— 所以對於慕名而來的 Drupal 的仰慕者們,Drupal 很強大,但必須要在熟練的人的手上,可以花重金請專業的團隊打造世界一流的網站和系統,但切不可抓幾個 PHPer 就妄想短時間內駕馭這匹野馬。
PS: Drupal 功能性和擴充性的強大,以及學習曲線和周期決定了其自身的價值,一分努力一分收穫,請走在 Drupal 之路上的各位謹記!!!
與易學性相同,Drupal 的易用性也是先天不足,一方面是因為它不是面向普通使用者“開箱即用”的產品,另一方面是因為在使用者體驗“能用、易用、好用”的三級標準上,Drupal 的功能在很大一部分程度上都只是“能用”的層級。只實現基本的體驗和互動,優點在於能夠方便地在其之上添加需要的行為,缺點在於沒有一個預設易用的行為,每個網站都需要付出一定的工作量。
易用性是 Drupal 的一項不足,但並非硬傷,相對其它一些不易擴充的CMS或者架構,Drupal 至少能夠讓我們更快的優先獲得功能,至於使用者體驗和互動,對於熟手來講也是手到擒來的事。
因為今天時間有限,後面的一些缺陷與不足先簡單介紹一下,後續有需要瞭解的地方大夥再給我發郵件或者是留言諮詢吧,先謝過。
相容性
Drupal 大版本之間不提供向後相容,即 D7 不向後相容 D6,D8 不向後相容 D7。根據 Dries 若干年前的部落格(大概是2005年,記不太清楚了),說明了 Drupal 的新版本會選擇同時期最新的技術,以保證 Drupal 走在技術的前沿,同時因為不提供向後的相容,能夠更好的保持核心的精簡。
對於需要做大版本升級的個人或公司,在此的第一個建議是不要做大版本升級,因為確實必要性不大,但工作量可能驚人的可怕。如果實在要升級,同樣從工作量出發,可以先行評估,然後從升級和重建中做出合適的選擇。
效能
Drupal 在擴充性和靈活性之間需要做出平衡,模組化的架構和 hook回調系統則是站在擴充性這一邊。強大的擴充性會帶來效能上的損耗,但 Drupal 通過內建的緩衝系統以及整合各種外部緩衝、代理、加速來大幅提升效能。
有關擴充與效能的話題,我們在之前的視頻裡面有提到過,可以找找看。
模版抽象層
Drupal 的頁面配置更多是通過地區分配的方式來執行,內容與內容架構(確定內容組織方式的HTML代碼結構)混合存在一起,傳統前端產生 HTML的方式在 Drupal 中難以得以應用。而內容與內容架構混合的形式也使得 Drupal 主題很難像 WordPress 那樣做到主題的複用。
團隊協作
Drupal 的團隊協作應該算是 Drupal 各種抽象層的副作用,因為整個項目流程與傳統網站項目不同,所以協作上也會出現一些痛點。不過通過對 Drupal 流程有清晰的瞭解之後,能夠找出不同職能的分界線,通過 Drupal 的方式來進行團隊協作,問題就能夠得以解決了。