5 Weakpoints of Drupal

จาก[คอมเมนต์อันนี้ของคุณ @sirn](http://www.blognone.com/node/11502#comment-100554) ทำให้ผมมานั่งคิดๆ ว่าเรามารวบรวมข้อเสียของ Drupal ไว้บ้างก็ดีเหมือนกัน เวลาใครมาถามถึงข้อจำกัดของ Drupal จะได้ชี้ให้มาอ่านที่นี่ที่เดียวแสนสะดวก #### No Built-in WYSIWYG อันนี้เป็นข้อเสียสำคัญของ Drupal คือไม่มี WYSIWYG editor ในตัว และการติดตั้งมันขึ้นมาเอง (รวมปรับแต่งให้อยู่ในสถานะ "ใช้งานได้") นั้นค่อนข้างยาก (เคยเขียนไว้ที่ [Tiny Tiny MCE Tweak](http://www.isriya.com/node/2455/tiny-tiny-mce-tweak)) ในปัจจุบันหลังจากโมดูล WYSIWYG API พัฒนาตัวเองขึ้นมาได้พอสมควรก็เริ่มจะง่ายขึ้นมาบ้างหน่อยนึง แต่ผมคิดว่าต้นแบบที่ดีของเรื่องนี้คือ WordPress ที่เอา Tiny MCE มาโมจนสวยชิ้งและพร้อมใช้งานได้ทันทีหลังจากลง WordPress เสร็จ #### API break - module ไม่อัพเดต อีกปัญหายอดนิยมคือ เวลา Drupal เปลี่ยนเวอร์ชันใหญ่แล้ว API เดิมๆ มักจะเปลี่ยนชนิดว่าเอาโมดูลของเดิมมาใช้ไม่ได้เลย ยิ่งถ้าใช้โมดูลเยอะๆ ละก็รอกันเหนื่อย Blognone ยังอยู่กับ Drupal 5 ก็ด้วยเหตุผลนี้ (ขนาด Drupal.org เองก็ยังหนีปัญหานี้ไม่พ้น) ปัญหานี้เป็นปัญหาคลาสสิคของวงการซอฟต์แวร์อยู่แล้ว (Firefox ก็เป็น) แต่ว่าโปรแกรมหลายๆ ตัวก็มีมาตรการทางสังคมที่ช่วยให้การเปลี่ยนผ่านนี้เจ็บปวดน้อยลง เช่น ก่อนที่ Firefox 3 จะออก ทาง Mozilla จะต้องมาไล่ดูว่าใน Extension ยอดนิยม 100 ตัวแรกมีตัวไหนบ้างที่ยังไม่ปรับเวอร์ชันให้เข้ากันได้กับ Firefox 3 และถ้าเจอก็จะเข้าไปช่วยเหลือนักพัฒนาคนนั้นๆ ในการพอร์ตให้ทันกำหนดออกของ Firefox 3 เป็นต้น ซึ่ง Drupal Assosiation ไม่มีบทบาทตรงนี้เลย #### Default output ทำธีมยาก อันนี้เป็นปัญหาที่คุณ @sirn ว่าไว้ ผมจับรวมกับปัญหาของผมในคอมเมนต์ก่อนหน้า เอามาเป็นข้อเดียวกัน นั่นคือ HTML output แบบ default นั้นทำธีมยากมาก * บาง element ไม่มี id/class โดยเฉพาะในหน้า admin * บาง element ไม่มี element ที่ทำหน้าที่เป็น wrapper ครอบ เวลาต้องแก้ padding/margin จะมีปัญหามาก * บาง element มี style ตั้งมาให้จาก CSS ของโมดูล ซึ่งมันไม่สวยและแก้ยาก ต้อง override กันเงก #### มันคือ CMF ไม่ใช่ CMS และ Development Framework Drupal เป็น CMF (Content Management Framework) ซึ่งอยู่กึ่งๆ ระหว่าง CMS กับ Development Framework อย่าง RoR หรือ Django ความเศร้าก็คือมันดันต้องการจะมีความสามารถเท่ากับ Development Framework ด้วย UI แบบ CMS ผลสรุปคือ UI และแนวคิดของมันเลยซับซ้อน เรียนรู้และใช้งานได้ยากถ้าหากจะเอาไปทำเป็น CMS (ซึ่งคนส่วนมากก็เอาไปทำเป็น CMS) #### functionality กระจาย ต่อเนื่องจากข้อที่แล้ว การที่ Drupal "มีความสามารถมากเกินไป" ทำให้ตัวเลือกและการปรับแต่งต่างๆ กระจายกันอยู่หลายจุด กว่าจะเซ็ตได้เข้าที่ก็เหนื่อย ขั้นตอนปกติของการติดตั้งโมดูลใหม่คือ 1. สั่งเปิดโมดูล 2. ตั้งค่าใน configuration 3. เพิ่มหมวดหมู่หรือ container มักทำใน Building หรือ Content 4. เพิ่ม Permission ให้กับผู้ใช้ (ผมมักลืมเสมอ) ตัวอย่างที่ผมมักลืมประจำคือ เปิด read counter ซึ่งมีขั้นตอนดังนี้ 1. เปิดโมดูล Statistics 2. ใน reports/settings สั่ง Enable count content view 3. ใน user/permissions เพิ่มสิทธิ์ view post access counter ปัญหานี้ โครงการ [Buzzr](http://www.isriya.com/node/2571/buzzr-better-drupal-usability) พยายามแก้ด้วยความสามารถที่เรียกว่า "Features" (คลิกเดียวเปิดฟีเจอร์พวกนี้ รวบขั้นตอนทั้งหมดเข้าด้วยกัน)
Keyword
Submitted byTeston Sun, 12/26/2010 - 14:15