ฉันใช้ทั้ง Ember และ Backbone พร้อมกับ Drupal - แต่ไม่ใช่ในแบบที่คุณคิด
Ember และ Backbone เป็นทั้งเครื่องมือที่ดีในการสร้างเว็บแอปพลิเคชัน แต่ Drupal ไม่ใช่เครื่องมือที่ดีที่จะใช้ร่วมกับพวกเขา สิ่งที่คุณปรารถนาเมื่อคุณสร้างแอปพลิเคชันเว็บคือสิ่งที่เบาและรวดเร็ว คุณต้องการให้เร็วเพื่อให้ผู้ใช้ของคุณรู้สึกว่าเวลาตอบสนองทันที คุณต้องการให้มันเบาเพื่อทำให้สเกลดีขึ้น Drupal ไม่เร็ว - Bootstrap แบบเต็มของ Drupal ใช้เวลานาน (เมื่อเทียบกับตัวเลือกอื่น ๆ มากมาย) หากคุณต้องการทำทั้งหมดคือให้ REST API สำหรับเว็บแอปของคุณ Drupal คือ PHP ซึ่งทำให้ RAM ค่อนข้างหิว จำกัด จำนวนผู้ใช้พร้อมกัน
ดังนั้นถ้า Drupal แย่ขนาดนี้ทำไมต้องใช้มัน?
คุณควรใช้ Drupal กับสิ่งที่ Drupal ทำได้ดีเยี่ยม - CMS สิ่งที่ฉันทำมาแล้วในอดีตที่มีโปรเจ็กต์ที่จำเป็นต้องมีเว็บแอพคือการใช้ Drupal เพื่อสร้าง CMS รอบ ๆ เว็บแอป ในการสร้างเนื้อหาเช่นบล็อกรายการเนื้อหาและรายการที่ชอบ ฉันยังสร้างโมดูลเพื่อกำหนดสิ่งที่แบ็กเอนด์เช่นคำจำกัดความของสคีมาและสิ่งอื่น ๆ ที่ควรใช้ Drupal เพราะทำให้การพัฒนาของฉันง่ายขึ้นมาก
แทนที่จะใช้ Drupal เพื่อสร้าง REST API ที่ webapp ต้องการ - ฉันใช้ Node.js เพื่อสร้าง REST API ที่แท้จริงและการตรวจสอบอื่น ๆ AJAX เรียกว่า webapp ที่จำเป็นในการสร้าง Node.js เก่งในการทำสิ่งนี้ มันสว่างอย่างรวดเร็ว (เวลาตอบสนองต่ำสุดที่ 30ms สำหรับรายการของวัตถุ) นอกจากนี้ยังมีน้ำหนักเบามากเนื่องจาก JavaScript บนเซิร์ฟเวอร์ใช้การทำงานแบบอะซิงโครนัสเซิร์ฟเวอร์ Node.js จึงสามารถจัดการกับผู้ใช้พร้อมกันหลายพันคนที่ PHP สามารถจัดการได้ 100 คนนอกจากนั้น - เนื่องจาก Node.js เป็น JavaScript คุณสามารถนำมาใช้ใหม่ได้มาก ของรหัสเซิร์ฟเวอร์และฝั่งไคลเอ็นต์ คุณสามารถเขียนรหัสตรวจสอบตัวเดียวกันแทนการใช้ฝั่งไคลเอ็นต์ทั้งใน JavaScript และฝั่งเซิร์ฟเวอร์ใน PHP หากคุณกำลังจะไป Drupal con ในMünichในอีกไม่กี่สัปดาห์คุณควรพิจารณาดูการนำเสนอ node.js.
ดังนั้นหากคุณเป็นนักพัฒนาฉันขอแนะนำอย่างยิ่งให้ทำการตั้งค่าที่คล้ายกันและใช้ Drupal ในสิ่งที่ดีจริงๆ หากคุณต้องการสร้าง webapp ที่เรียบง่ายและคุณไม่คาดหวังว่าจะมีผู้ใช้จำนวนมากการใช้ Drupal เป็นแบ็กเอนด์อาจเป็นตัวเลือกถ้ามันช่วยเวลาในการพัฒนาของคุณ
อัพเดท Drupal 8
ดังนั้นด้วยการเปิดตัว Drupal 8 บางอย่างที่กล่าวมาข้างต้นยังคงเป็นจริง แต่ไม่ขยายตัวเหมือนเมื่อก่อน Drupal 8 เป็นเหมือน Drupal 7 ไม่ใช่เครื่องมือที่มีน้ำหนักเบาเช่น Node.js, Rails, Django เป็นต้นเนื่องจากแอป JavaScript ส่วนใหญ่ใช้บริการที่หลากหลายคุณจึงควรพิจารณาว่า Drupal เป็นเครื่องมือที่ดีที่สุดสำหรับสิ่งนี้หรือไม่
ด้วย Drupal 8 สิ่งต่าง ๆ ได้รับการปรับปรุง บริการมีความเป็นพื้นเมืองมากขึ้นด้วย Symphony ผลักดันให้มีการร้องขอ / ตอบกลับ Drupal 8 มีความเป็นไปได้ที่น่าสนใจมากมายพร้อมกับแคชขั้นสูงและคุณสมบัติที่ยอดเยี่ยมทั้งหมด แต่ถึงแม้จะมีความยิ่งใหญ่ทั้งหมดของ Drupal 8 แต่ก็ยังหนักกว่าแอพพลิเคชั่นน้ำหนักเบามาก เป็นการยากที่จะบอกว่า Drupal 8 ที่ประสบความสำเร็จสามารถใช้เป็นผู้ให้บริการเว็บเซอร์ที่รวดเร็วได้อย่างไร
แต่ถึงกระนั้นเมื่อมีการพูดและทำทั้งหมดคำแนะนำทั่วไปของฉันยังคงเหมือนเดิม ในฐานะนักพัฒนา Drupal มันง่ายที่จะใช้ Drupal สำหรับทุกสิ่งเนื่องจากเราคุ้นเคยกับมัน รู้สึกปลอดภัยและ Drupal สามารถใช้เพื่ออะไรก็ได้ โปรดจำไว้ว่าในขณะที่สามารถใช้ Drupal ได้ทุกอย่างมันไม่ได้หมายความว่ามันเป็นเครื่องมือที่ดีที่สุดสำหรับทุกสิ่ง การวิเคราะห์และทำความเข้าใจจุดแข็งและจุดอ่อนของเครื่องมือที่คุณต้องการใช้ในโครงการ IT จะช่วยได้มากและสามารถช่วยคุณหลีกเลี่ยงการสิ้นสุดในตำแหน่งที่ไม่ได้ล็อคด้วยผลลัพธ์ที่ไม่เป็นไปตามความคาดหวังของคุณ .