六月 10, 2016 | 後端和Drupal

Drupal工程師的痛,你中了幾項呢?

Drupal是非常強大的網頁開發工具,也是所有CMS裡面,最強大的一套,不僅延展性好,更有無數的彈性超大模組提供給工程師,做各式各樣的變化與開發。但是,Drupal除了學習曲線高之外,還有很多只隱藏在Drupal工程師心底的痛,其中,你(妳)中了幾項呢?

前言

Drupal是非常強大的網頁開發工具,也是所有CMS裡面,最強大的一套,不僅延展性好,更有無數的彈性超大模組提供給工程師,做各式各樣的變化與開發。但是,Drupal除了學習曲線高之外,還有很多只隱藏在Drupal工程師心底的痛,其中,你(妳)中了幾項呢?

1. 單打獨鬥真的開心嗎?

我要打十個」只會出現在葉問IP MAN裡面,但是在Drupal開發過程當中,真的是好事嗎? 雖然,一個Drupal工程師,就可以做出很了不起的網站。但是,真的需要分擔Drupal開發工作時,卻困難重重。
主要原因有兩個:

  1. Drupal的開發與設定,都在資料庫內。
  2. 前端後端工程師一起開發?別傻了,其實同時只能夠一個人開發

由於Drupal的設定都在資料庫內,因此跟傳統的用“一堆php檔案”來撰寫程式不一樣,無法直接對php檔案進行Git的多人協作與版本開發。因此,每當兩個以上的工程師想要一起開發的時候,只能夠同時設定一台Drupal網站,若真的出事了,每次的Restore網站,都會造成部份工程師的設定Lost或做白工。

2. Live Testing & Live Setting

「因為Drupal很厲害,所以到線上設定一下就好了」,你(妳)的網站是這樣嗎?沒錯,Drupal是個很強大工具,所有的開發幾乎八成都是用設定的,但是網站上線以後,絕對是另外一個世界。
在開發階段,工程師都會做無數次的備份,避免不小心,造成程式或設定消失的悲劇發生。但是都僅止於「開發階段」。網站真的上線之後,該如何?真的可以到線上設定嗎?若設定錯了,難道也要還原?那在這段期間內的所有Data的寫入,該怎麼辦呢?

您也許是這樣做的

謎之聲:Local做一遍,Live做一遍

如何確保測試環境與正式環境是一樣的呢?

即使Local做了一遍,Live要重新操作,有人的設定,就會有機會出錯,再來正式環境同時都會有無數的人來造訪網頁,測試環境則不會。因此,伺服器流量效能不同的狀況下,很難不確保這次的設定,不會造成整個網站當機。
以下是我們實際發生的例子:測試環境簡單設定Views檢測沒有任何問題,我們進行Views Export,於線上端進行Import,由於流量太大,造成整個網站大當機。Live Setting與Testing真的是個好的作法嗎?

3. 如何驗證程式的正確性?

凡事親力親為是你(妳)的寫照嗎?因為Drupal網站都需要設定。因此,設定可以交給「新手」嗎?即使不是「新手」,其他的Developer工程師的設定,真的能夠讓你(妳)安心嗎? 後來的選擇是,只要做好備份還有「相信」,就可以了嗎?但是有些問題,都是事後才發生,往往都沒有辦法再回去了。所以後來,似乎又會回到了原點。

心聲:要開發與設定,自己來好了。

4. 程式如何同步與更新?

網站上線後,一切才是開始。
所有工程師都知道,要把網站環境分成Dev、Stage、Production三種不同的環境來進行後續的所有維護作業,在Drupal上要做到談何容易。當然,就算有$$,你有三種環境,難道所有的程式更新都是「Setting」->「Export」->「Import」,然後連續三種環境做三次?身為工程師,雖然說Drupal很厲害,但是看到這裡,相信大家都是心有戚戚焉的感覺。謎之聲:Drupal如果夠強,這些都要有好的解決方法阿。

5. 時間才是最大的問題

網站開發若只是自己的興趣,自己玩玩Drupal,通常不會有這些狀況。但是,如果你(妳)開發的系統,有著很大的商業邏輯與流量,甚至後面有個大客戶需要不定期的快速更新或開發,都會發現「時間永遠都不夠用」

老闆:「人不夠就請人阿! 一個人做不完,就同時多一點人一起開發阿。」
工程師:「.........」

如果上述的對話,你也一樣是無言以對的,代表前面四項問題,應該也是你的痛,因為凡事需要親力親為,要能夠短時間趕功是沒有辦法的。所以跟老闆的解釋方式變成是「Drupal的特性就是無法...」還是「工程師太少,找不到?」還是什麼呢?

結論:

上面幾點,是我們團隊在開發過程當中,遇到而且麻煩解決的問題,以小編自己來說,在以前就是充當著「一個人打十個」的角色,但是隨著案子愈來愈大也越來越多的狀況下,已經不勝負荷。再加上工程師越來越多,要如何兼顧案子的品質,又要把任務分配下去,已經變成必須而且勢在必行的方向了。但是開心的是,我們已經完全克服了上述這些問題了。若是您也是要找尋這樣答案的團隊,那麼先容許小編在這裡賣個關子,留到下一篇文章,我們再來詳述我們的解決方法。若是您有遇到其他困難且難以解決的問題,也歡迎在我們網站下面留言。