อะไรคือความแตกต่างที่สำคัญระหว่างสถาปัตยกรรมซอฟต์แวร์ของ Wordpress และ Joomla!


14

* หมายเหตุ: นี่ไม่ใช่คำถาม 'ซึ่งดีกว่า'! *

Wordpress และ Joomla! เป็น CMS แบบโอเพนซอร์สที่ยอดเยี่ยม

ความแตกต่างที่สำคัญคืออะไร

1) ในสถาปัตยกรรมซอฟต์แวร์ระหว่าง Joomla! และ Wordpress?

2) วิธีการทำงานของส่วนขยายไปยังแกนกลาง (นอกกรอบ) หรือไม่? และ

3) แกนและส่วนขยายได้รับการอัพเกรดและอัปเดตอย่างไร


1
เท่าที่ฉันรู้ - 1.wp ไม่ใช่ mvc และมักจะสนใจเกี่ยวกับคุณสมบัติบล็อกมากกว่าเว็บไซต์ทั้งหมด 3. แต่ขั้นตอนการอัพเกรดในเวิร์ดเพรสนั้นดีกว่า joomla โดยไม่คำนึงถึงความเข้ากันของปลั๊กอิน wp
dev-m

2
ความคิดเห็นนี้กว้างเกินไปที่จะให้คำตอบที่เฉพาะเจาะจงหรือชัดเจน (มีคำตอบมากมายที่จะ "ถูกต้อง" - เป็นตัวอย่างที่ดีว่าจะไม่เขียนคำถาม) โปรดพิจารณาการเรียบเรียงคำถามของคุณให้มีความเฉพาะเจาะจงมากขึ้น
Andrew Eddie

คำตอบ:


18

ทั้ง Wordpress และ Joomla! ได้รับการยกย่องอย่างสูงและแต่ละคนมีข้อได้เปรียบที่ไม่ซ้ำกันเมื่อคุณเปรียบเทียบพวกเขา

เพื่อตอบคำถามของคุณ:

ในสถาปัตยกรรมซอฟต์แวร์ระหว่าง Joomla! และ Wordpress

  • Joomla คือOOP (object-oriented) และMVC (รูปแบบการออกแบบเชิงวัตถุ)

  • Wordpress เขียนในรหัสขั้นตอน

การเขียนโปรแกรมตามขั้นตอนระบุขั้นตอนที่โปรแกรมจะต้องใช้เพื่อไปถึงสถานะที่ต้องการในขณะที่การเขียนโปรแกรมเชิงวัตถุ ("OOP") จัดระเบียบโปรแกรมเป็นวัตถุหรือโครงสร้างข้อมูลและวิธีการพร้อมกับการโต้ตอบของพวกเขา

สำหรับโปรแกรมง่ายรหัสขั้นตอน (คิดลำดับบรรทัดโดยบรรทัดคำสั่ง) ใช้งานได้ดี แต่สำหรับการใช้งานที่ซับซ้อนขนาดใหญ่ประมวลกฎหมายวิธีพิจารณาความสามารถยากที่จะรักษา - มักจะเกิดในสิ่งที่เรียกว่ารหัสปาเก็ตตี้ (เช่นเมื่อบรรทัดโดย - ลำดับของคำสั่งเริ่มต้นใช้ GOTOs, ข้อยกเว้น, เธรดหรือโครงสร้างการแยกย่อยอื่น ๆ และการไหลของมันจะกลายเป็นแนวคิดเหมือนชามสปาเก็ตตี้) กล่าวอีกนัยหนึ่งรหัสขั้นตอนเริ่มต้นที่เรียบง่าย แต่อาจซับซ้อนและพันกัน

แอปพลิเคชันที่ซับซ้อนมากขึ้นสามารถจัดโครงสร้างได้ดีขึ้นด้วย OOP และ MVC - รูปแบบการเขียนโปรแกรมขั้นสูงที่เหมาะกว่าสำหรับการสร้างโปรแกรมที่ซับซ้อนจริง ๆ ด้วยชิ้นส่วนที่เคลื่อนไหวจำนวนมาก

ในขณะที่รหัสขั้นตอนอาจจะง่ายต่อการเขียนและดูแลรักษาสำหรับโปรแกรมแบบง่าย ๆ OOP มีข้อได้เปรียบในการที่มันสามารถรวบรวมชุดของตัวแปร (เรียกว่า 'คุณสมบัติ' ใน OOP) ได้อย่างเรียบร้อยฟังก์ชั่น (เรียกว่า 'วิธีการ' ใน OOP) รหัสที่เป็นระเบียบเรียบร้อยง่ายต่อการอ่านบำรุงรักษาและขยาย

สำหรับแอปพลิเคชัน Wordpress ส่วนใหญ่ (เช่นบล็อกง่าย ๆ ) รหัสขั้นตอนทำงานได้ดีอย่างสมบูรณ์

สำหรับแอปพลิเคชันที่ซับซ้อนมากขึ้น (เช่นผู้ที่ต้องการการอนุญาตกลุ่มผู้ใช้และผู้ที่ใช้หลายอย่างรวมส่วนขยายจำนวนมากเพื่อขยายคุณสมบัติและฟังก์ชั่น) โดยทั่วไปแล้ว OOP นั้นถือว่าเป็นวิธีที่สวยงามกว่ามาก

เพื่อสรุป:

สถาปัตยกรรมซอฟต์แวร์ของ Worpress (อิงตามรหัสขั้นตอน) มีจุดแข็งในด้านความเรียบง่าย แต่รหัสขั้นตอนไม่เหมาะสำหรับการใช้งานที่ซับซ้อนซึ่งมีความสามารถในการขยายที่แข็งแกร่ง

สถาปัตยกรรมซอฟต์แวร์ของ Joomla! (OOP / MVC) อาจดูซับซ้อนกว่า แต่เมื่อออกแบบมาอย่างดี OOP / MVC ทำให้การขยายคุณสมบัติและฟังก์ชั่นของแอปพลิเคชั่นง่ายขึ้นและเพื่อให้ส่วนขยายทั้งหมดทำงานร่วมกันอย่างกลมกลืน

หากคุณต้องการเข้าใจความแตกต่าง (ในระดับเริ่มต้นขั้นพื้นฐาน) ให้อ่านขั้นตอน PHP กับ PHP OO เทียบกับ PHP MVCโดย Peham Raza เขาพูดถึง 'ins and outs' ของแต่ละวิธีที่ทำให้เข้าใจประโยชน์ได้ง่ายขึ้น

วิธีการทำงานของส่วนขยายไปยังแกนกลาง (นอกกรอบ) ทำอย่างไร?

  • Joomla เพิ่มคุณสมบัติด้วยโมดูลส่วนประกอบปลั๊กอิน
  • WorPress ใช้ปลั๊กอินเพื่อเพิ่มคุณสมบัติ
  • Joomla นั้นเข้มงวดในโมดูลปลั๊กอินหรือการสร้างส่วนประกอบ (คุณไม่สามารถอัปโหลดไฟล์ผ่าน FTP และเพียงเปิดใช้งานคุณต้องทำด้วยตัวติดตั้งเสริม)

วิธีอัปเกรดและอัปเดตคอร์และส่วนขยาย

  • ทั้งสองใช้เทคนิคเดียวกันเกือบทั้งหมดสำหรับการอัปเกรดหรืออัปเดต (พวกเขาให้นักพัฒนาสร้างคุณลักษณะใหม่พร้อมส่วนขยายหรือการเปลี่ยนแปลงเทมเพลตด้วยการแทนที่ดังนั้นโดยทั่วไปไม่มีไฟล์หลักที่เราต้องแก้ไขในสถานการณ์นี้

มีคำว่า Wordpress ไม่ใช่ CMS แต่วันนี้เป็น CMS ที่มีคุณสมบัติทั้งหมดของ Joomla และอื่น ๆ

WordPress นั้นดีสำหรับผู้ใช้ที่มีความรู้ในการพัฒนาน้อยและ Joomla สำหรับนักพัฒนา

หวังว่ามันสมเหตุสมผล


3
MVC ไม่ใช่ความแตกต่างทางสถาปัตยกรรมหลักจริงๆ ข้อแตกต่างที่สำคัญคือ Joomla คือ OOP และ WordPress ไม่ใช่ (มาก) ทั้งคู่มีกระบวนทัศน์ MVC แต่ชัดเจนมากขึ้นใน Joomla เนื่องจากวิธีที่เราตั้งชื่อคลาส
Andrew Eddie

@AndrewEddie คุณพูดถูก
Jobin Jose

Andrew - ขอบคุณ หากเราลบการอ้างอิงถึง MVC สิ่งนี้จะทำให้คำตอบนั้นถูกต้องมากขึ้นหรือไม่?
NivF007

1
ประโยคสุดท้ายของคุณฉันจะทำให้มันเหมือน WordPress มักจะถูกใช้โดยคนที่ไม่สนใจในการพัฒนาเพียงแค่เขียนในทีมของตัวเองหรือเล็กมาก Joomla ปรับขนาดได้ดีขึ้นเมื่อมีหลายคนทำงานในหน้าเดียวกันและทีมงานสร้างเว็บไซต์ (ทั้งคู่ยังสามารถทำงานในขนาดของทีมอื่นได้)
tristanbailey

6

ฉันคิดว่าจะตอบคำถามนี้อย่างแท้จริงคุณต้องมีความคุ้นเคยกับ WP และ Joomla! ฉัน Joomla! หนักและใช้ WP เพียงไม่กี่ครั้งดังนั้นคำตอบของฉันอาจไม่เต็มตามที่คุณหวัง

WP เป็นแพลตฟอร์มบล็อกที่สำคัญที่สุด มันตั้งค่าฟีดข้อมูล คุณต้องออกนอกเส้นทางของคุณเพื่อย้ายผ่านค่าเริ่มต้นฟีดเพื่อรับโฮมสแตติกปกติ มันไม่ยากมันแค่ไม่ใช่ค่าเริ่มต้น หากคุณรู้ว่าคุณกำลังทำอะไรคุณสามารถขยาย WP เพื่อให้ก้าวไปไกลกว่าแพลตฟอร์มบล็อกหรือถ้าคุณดาวน์โหลดเทมเพลตที่ได้ทำไปแล้วสำหรับคุณ

Joomla คือ CMS ตัวแรกและสำคัญที่สุด มันถูกสร้างขึ้นเพื่อเก็บเว็บไซต์ที่สมบูรณ์รวมถึงบล็อกที่ส่งตรงจากฐานหลัก ปลั๊กอินช่วยให้พวกเขาได้รับประสบการณ์ที่กำหนดเองมากขึ้นสำหรับผู้ที่ไม่ทราบวิธีการสร้างส่วนประกอบและปลั๊กอินของตนเอง หลังจากทั้งหมดทำไมบูรณาการล้อ?

จากประสบการณ์ของฉัน WP นั้นยอดเยี่ยมสำหรับผู้ที่ไม่ใช่นักพัฒนาหรือผู้ที่รู้จักพอ Joomla ในทางกลับกันถูกสร้างขึ้นสำหรับนักพัฒนาสำหรับผู้ที่ต้องการสร้างประสบการณ์ front-end และ back-end ที่กำหนดเองอย่างเต็มที่ ฉันใช้เวลาหลายชั่วโมงในการทำงานกับเทมเพลต WP เพื่อบังคับให้ทำสิ่งที่ฉันต้องการซึ่งทำให้ฉันหงุดหงิดเมื่อฉันคุ้นเคยกับการสร้างสิ่งต่าง ๆ ในแบบที่ฉันต้องการในครั้งแรกกับ Joomla (เราไม่ได้ใช้เทมเพลต - เรามีแม่แบบของเราเอง core Joomla ที่ถูกถอดออกไปสู่พื้นฐานและเราสร้างตั้งแต่พื้นฐานขึ้นไป)

ถ้าคุณดึงค่า FTP ของ WP และ Joomla แบบเคียงข้างกันคุณจะเห็นว่ามันแตกต่างกันมากแค่ไหน

WP มีพื้นที่ปลั๊กอินนี้ซึ่งคุณสามารถค้นหาปลั๊กอินเลือกและติดตั้ง ฉันเชื่อว่าคุณสามารถอัปเดตได้จากที่เดียวกันนี้ เมื่อคุณอยู่ในพื้นที่ปลั๊กอินมักจะบอกคุณว่ามีการอัปเดต

Joomla ใช้ตัวจัดการส่วนขยายที่คุณสามารถอัปโหลดปลั๊กอินหรือส่วนประกอบที่ดาวน์โหลดได้ - ฉันคิดว่าอาจมีฟังก์ชั่นการค้นหา แต่ฉันก็ไม่เคยใช้อย่างสุจริตเพราะฉันมักจะใช้ JED เพื่อค้นหาสิ่งที่ฉันต้องการ พื้นที่เดียวกันนี้ยังเสนอปุ่มอัปเดตให้คุณซึ่งคุณสามารถดูอัปเดตที่มีอยู่ทั้งหมดสำหรับสิ่งที่คุณติดตั้ง ส่วนประกอบบางส่วนจะบอกคุณว่ามีการอัปเดตให้ใช้งาน แต่ไม่สามารถอัพเดทได้ทั้งหมด

ความแตกต่างที่สำคัญที่ฉันเห็นคือ WP สร้างขึ้นสำหรับผู้ใช้ - พวกเขาติดตั้งแม่แบบพวกเขาสามารถอัปเดตพวกเขาสามารถเพิ่ม Joomla สร้างขึ้นสำหรับนักพัฒนาเราทำการติดตั้งเราทำการอัปเดตเราสร้าง / เพิ่มคุณสมบัติและฟังก์ชั่นใหม่ ไม่ได้หมายความว่ามันไม่เป็นมิตรกับผู้ใช้ แต่มีบางพื้นที่ที่ฉันคิดว่าถูกผลักออกไปจากผู้ใช้เพราะมันถูกสร้างขึ้นสำหรับนักพัฒนา


2

ในขณะที่คุณกำลังพูดถึงสถาปัตยกรรมมันจะสำคัญเมื่อคุณสร้างพอร์ทัลหรือเว็บไซต์ที่ซับซ้อนเช่นเอนทิตีที่เชื่อมต่อระหว่างกันจำนวนมาก

  1. ซอร์สโค้ด Joomla เป็นเชิงวัตถุ
  2. โค้ด Joomla นั้นถูกแบ่งออกเป็นอย่างดีเช่นแอพพลิเคชั่นปลั๊กอินส่วนประกอบ
  3. รูปแบบการออกแบบส่วนใหญ่จะใช้ Joomla, เช่น Factory, Decorator, Dependency Injection เป็นต้น

ในฐานะนักพัฒนา C และ C ++ เมื่อฉันนำ joomla มาใช้ฉันชอบมากเพราะใช้มาตรฐานชุดเดียวกัน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.