Sự khác biệt chính giữa kiến ​​trúc phần mềm của Wordpress và Joomla và cách các chức năng cốt lõi của chúng được mở rộng là gì?


14

* LƯU Ý: Đây không phải là câu hỏi 'tốt hơn'! *

Wordpress và Joomla! là cả hai CMS nguồn mở tuyệt vời.

Sự khác biệt chính là gì

1) trong kiến ​​trúc phần mềm giữa Joomla! và Wordpress?

2) theo cách mà các phần mở rộng cho chức năng cốt lõi (ngoài luồng) được thực hiện? và

3) Làm thế nào cốt lõi và phần mở rộng được nâng cấp và cập nhật?


1
Theo như tôi biết - 1.wp không phải là mvc và có xu hướng quan tâm đến các tính năng viết blog hơn tổng số trang web. 3. nhưng quá trình nâng cấp trong wordpress tốt hơn nhiều so với j Joomla bỏ qua các plugin wp không tương thích.
dev-m

2
Nhận xét này quá rộng để đưa ra câu trả lời cụ thể hoặc dứt khoát (có nhiều câu trả lời sẽ là "đúng" - một ví dụ hay về cách không viết câu hỏi). Vui lòng xem xét lại câu hỏi của bạn để được cụ thể hơn.
Andrew Eddie

Câu trả lời:


18

Cả Wordpress và Joomla! được đánh giá cao và mỗi cái đều có những lợi thế riêng khi bạn so sánh chúng.

Để trả lời câu hỏi của bạn:

trong kiến ​​trúc phần mềm giữa Joomla! và Wordpress

  • Joomla là OOP ( hướng đối tượng) và MVC (một mẫu thiết kế hướng đối tượng).

  • Wordpress được viết bằng mã thủ tục.

Lập trình thủ tục xác định các bước mà chương trình phải thực hiện để đạt đến trạng thái mong muốn, trong khi lập trình hướng đối tượng ("OOP") tổ chức các chương trình thành các đối tượng hoặc cấu trúc dữ liệuphương thức cùng với các tương tác của chúng.

Đối với các chương trình đơn giản, mã thủ tục (nghĩ về chuỗi lệnh từng dòng) hoạt động rất tốt, nhưng đối với các ứng dụng phức tạp lớn, mã thủ tục có thể khó duy trì hơn - thường dẫn đến cái gọi là mã spaghetti (tức là khi dòng này chuỗi lệnh của dòng bắt đầu sử dụng nhiều GOTO, ngoại lệ, luồng hoặc cấu trúc phân nhánh khác và dòng chảy của nó trở thành khái niệm giống như một bát mì spaghetti). Nói cách khác, mã thủ tục bắt đầu đơn giản, nhưng có thể trở nên phức tạp và rối.

Do đó, các ứng dụng phức tạp hơn có thể được cấu trúc tốt hơn với OOP và với MVC - một phong cách lập trình tiên tiến hơn, phù hợp hơn nhiều để xây dựng các chương trình thực sự phức tạp với nhiều phần chuyển động.

Trong khi mã thủ tục ban đầu có thể dễ dàng viết và bảo trì hơn cho các chương trình đơn giản, OOP có lợi thế ở chỗ nó có thể kết hợp gọn gàng các tập hợp biến (được gọi là 'thuộc tính' trong OOP) (được gọi là 'phương thức' trong OOP) - dẫn đến mã gọn gàng hơn, dễ đọc hơn, duy trì và mở rộng.

Đối với hầu hết các ứng dụng Wordpress (ví dụ blog đơn giản), mã thủ tục hoạt động hoàn toàn tốt.

Đối với các ứng dụng phức tạp hơn (ví dụ: những ứng dụng yêu cầu quyền của nhóm người dùng và những ứng dụng sử dụng nhiều tiện ích mở rộng tích hợp nhiều tính năng và chức năng), OOP thường được coi là một cách tiếp cận thanh lịch hơn nhiều.

Tóm lại:

Kiến trúc phần mềm của Worpress (dựa trên mã thủ tục) có điểm mạnh là sự đơn giản, nhưng mã thủ tục không lý tưởng cho các ứng dụng phức tạp có khả năng mở rộng mạnh mẽ.

Kiến trúc phần mềm của Joomla! (OOP / MVC) có vẻ phức tạp hơn, nhưng khi được thiết kế tốt, OOP / MVC thực sự làm cho việc mở rộng các tính năng và chức năng của ứng dụng trở nên đơn giản hơn để tất cả các phần mở rộng đó hoạt động hài hòa với nhau.

Nếu bạn muốn hiểu sự khác biệt (ở cấp độ cơ bản cho người mới bắt đầu), hãy đọc PHP Thủ tục so với PHP OO so với PHP MVC của Peham Raza - anh ấy thảo luận về các ưu điểm của từng cách để dễ hiểu hơn về lợi ích.

theo cách thức mở rộng cho chức năng cốt lõi (ngoài luồng) được thực hiện?

  • Joomla thêm các tính năng với Module, Thành phần, Plugin
  • WorPress sử dụng plugin cho tính năng mở rộng.
  • Joomla rất nghiêm ngặt trong việc tạo mô-đun, plugin hoặc thành phần (bạn không thể chỉ cần tải lên các tệp qua FTP và chỉ cần kích hoạt, bạn phải thực hiện với Trình cài đặt tiện ích mở rộng).

Làm thế nào cốt lõi và tiện ích mở rộng được nâng cấp và cập nhật

  • Cả hai đều sử dụng kỹ thuật gần như giống nhau để nâng cấp hoặc cập nhật.

Có một câu nói Wordpress không phải là một CMS, nhưng ngày nay nó là một CMS với tất cả các tính năng của Joomla và hơn thế nữa.

WordPress tốt cho người dùng có ít kiến ​​thức phát triển và Joomla cho nhà phát triển.

Hy vọng nó có ý nghĩa.


3
MVC không thực sự là sự khác biệt kiến ​​trúc chính. Sự khác biệt chính là Joomla là OOP và WordPress thì không (rất nhiều). Cả hai đều có mô hình MVC nhưng rõ ràng hơn trong Joomla vì cách chúng ta đặt tên các lớp.
Andrew Eddie

@AndrewEddie bạn nói đúng.
Jobin Jose

Andrew - cảm ơn bạn. Nếu chúng ta xóa tham chiếu đến MVC, điều này có làm cho câu trả lời chính xác hơn không?
NivF007

1
Câu cuối cùng của bạn tôi sẽ nói nó giống như WordPress thường được sử dụng bởi những người không quan tâm đến việc phát triển chỉ bằng cách viết trên nhóm của riêng họ hoặc rất nhỏ. Joomla có quy mô tốt hơn khi nhiều người sẽ làm việc trên cùng một trang và một nhóm xây dựng trang web. (Cả hai cũng có thể làm việc trong quy mô nhóm khác.)
tristanbailey

6

Tôi nghĩ để thực sự trả lời câu hỏi này, bạn cần phải làm quen với cả WP và Joomla!. Tôi là Joomla! nặng và chỉ sử dụng WP một vài lần, vì vậy câu trả lời của tôi có thể không đầy đủ như bạn có thể hy vọng.

WP là đầu tiên và quan trọng nhất, một nền tảng blog. Nó được thiết lập cho nguồn cấp dữ liệu. Bạn phải đi ra ngoài để di chuyển qua mặc định nguồn cấp dữ liệu để có được một Trang chủ tĩnh thông thường. Nó không khó, chỉ là không mặc định. Nếu bạn biết bạn đang làm gì, bạn có thể mở rộng WP để vượt ra ngoài nền tảng blog hoặc nếu bạn tải xuống một mẫu đã thực hiện nó cho bạn.

Joomla là đầu tiên và quan trọng nhất, một CMS. Nó được xây dựng để chứa một trang web hoàn chỉnh, bao gồm cả blog, ngay từ lõi cơ sở của nó. Các plugin giúp đỡ, họ có thể giúp bạn có trải nghiệm tùy chỉnh hơn cho những người không biết cách tạo các thành phần và plugin của riêng họ. Rốt cuộc, tại sao lại phát minh lại bánh xe?

Theo kinh nghiệm của tôi, WP rất tốt cho những người không phải là nhà phát triển hoặc những người biết vừa đủ. Joomla mặt khác được xây dựng cho các nhà phát triển, cho những người muốn tạo ra trải nghiệm front-end và back-end tùy chỉnh hoàn toàn. Tôi đã dành hàng giờ làm việc trong một mẫu WP để buộc nó thực hiện những gì tôi muốn, điều này thật khó chịu khi tôi thường xây dựng mọi thứ theo cách tôi muốn lần đầu tiên với Joomla (chúng tôi không sử dụng các mẫu - chúng tôi có riêng của chúng tôi Joomla cốt lõi đã bị tước bỏ những điều cơ bản và chúng tôi xây dựng từ đầu).

Nếu bạn kéo FTP của WP và Joomla cạnh nhau, bạn có thể thấy chúng rất khác nhau.

WP có khu vực plugin này, nơi bạn có thể tìm kiếm plugin, chọn và cài đặt. Tôi tin rằng bạn cũng có thể cập nhật từ cùng một nơi. Khi bạn ở trong khu vực plugin, nó thường sẽ cho bạn biết rằng có bản cập nhật.

Joomla sử dụng Trình quản lý mở rộng nơi bạn có thể tải lên một plugin hoặc thành phần đã tải xuống - Tôi nghĩ có thể có chức năng tìm kiếm, nhưng thực lòng tôi chưa bao giờ sử dụng nó vì tôi thường sử dụng JED để tìm thứ tôi cần. Khu vực này cũng cung cấp cho bạn một nút cập nhật nơi bạn có thể xem tất cả các bản cập nhật có sẵn cho những gì bạn đã cài đặt. Một lần nữa, một số thành phần sẽ cho bạn biết họ có sẵn một bản cập nhật, nhưng không phải tất cả chúng.

Sự khác biệt chính tôi thấy là WP được tạo cho người dùng - họ cài đặt một mẫu, họ có thể cập nhật, họ có thể thêm, Joomla được tạo cho các nhà phát triển, chúng tôi cài đặt, chúng tôi cập nhật, xây dựng / thêm các tính năng và chức năng mới. Điều đó không có nghĩa là nó không thân thiện với người dùng, nhưng có những lĩnh vực mà tôi nghĩ bị đẩy ra khỏi cách sử dụng vì chúng được xây dựng cho các nhà phát triển.


2

Như bạn đang nói về kiến ​​trúc, sẽ rất có vấn đề khi bạn đang xây dựng một cổng thông tin hoặc một trang web phức tạp, tức là có rất nhiều thực thể được kết nối với nhau.

  1. Mã nguồn Joomla là hướng đối tượng.
  2. Mã Joomla được phân chia rất tốt tức là các ứng dụng, plugin, thành phần.
  3. Hầu hết các mẫu thiết kế được theo dõi trong Joomla, ví dụ Factory, Decorator, Dependency Injection, v.v.

Là một nhà phát triển C và C ++ khi tôi chấp nhận j Joomla, tôi thích nó vì nó sử dụng cùng một bộ tiêu chuẩn thay vì các chức năng làm hỏng không gian tên toàn cầu.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.