為什麼你不喜歡Rules模組 (還有為什麼我錯了!)

Johan Falk討論Rules模組的文章,Why you don't like Rules (and why you're wrong),隔沒兩天就發現他寫了一篇「檢討文」,Why you don't like Rules (and why I was wrong)。作者大方坦承在與專家對話過後,讓他發覺原本的論點有需要修正的地方,於是寫了一篇算是後記的新文章,來補足他的反省看法。這就是我喜歡使用Drupal的地方:社群永遠能夠給你新的刺激和回饋,而且一旦有人能夠你的錯誤和不足之處,最直接面對的方法就是承認之後坐進一步的改良。

以下是翻譯內容

今天我在讀過chx所寫的他使用Rules的經驗談文章後,和他在IRC上有了真的很不錯的討論。

大約一個星期前,我寫了一篇部落格文章,談到為什麼大家(Drupal編碼人)不喜歡Rules。我認為我在幾個地方都搞錯了,而且我認為我現在有個更好的想法:

  1. Rules是個黑盒子:了解Rules引擎裡頭的代碼真的是一件非常非常困難的事情。在編寫Rules(事件/條件/動作)的簡單外掛是相對容易的情況下,信任一個黑盒子是很困難的。在除錯的時候也是一樣的道理。
  2. 不是所有的整合工作都很容易:如同Relation模組所揭示的,不是所有和Rules相整合的工作都是很容易的。提供新的資料類型給Rules或Entity API,有可能很困難 - 不只是說你想要提供一連串混合的entity類型而已。當一個架構的整合工作出現問題的時候,如果你發覺該架構的代碼內容多少是個黑盒子,這就會變成一件非常令人沮喪的事情。
  3. 要曉得什麼時候要進行整合還有要整合什麼東西,並不容易:即便你知道怎麼樣匯出你的事件/條件/動作給Rules,要知道什麼時候該這樣做-還有什麼時候不該這樣做 -或許仍是很難的一件事。
  4. Rules難以設定:Rules擁有高度的複雜性,而它提供的協助訊息又令人不盡滿意 - 就像它一般而言的使用者介面一樣。學習怎麼使用Rules可能是非常痛苦的一件事,尤其若你知道怎麼樣在更短的時間內寫出同樣功能的代碼時更是如此。通常編碼人員不會有動機去投資那樣的時間。

我現在確信說,Rules對很多Drupal的任務來說是很好的架構。在希望能夠讓更多的Drupal使用者(不管是不是編碼員)有同樣感覺的時候,我會試著幫忙讓上面提到的3個問題變得比較沒那麼令人難受。

如果你正受到這樣的煎熬,這裡有些資源可以舒緩你的痛苦:

Area: