Jakie są kluczowe różnice między architekturą oprogramowania Wordpress i Joomla! I jak rozszerza się ich podstawowe funkcje?

14

* UWAGA: To nie jest pytanie „co jest lepsze”! *

Wordpress i Joomla! oba są niesamowitymi systemami CMS typu open source.

Jakie są kluczowe różnice

1) w architekturze oprogramowania między Joomla! i Wordpress?

2) w jaki sposób dokonywane są rozszerzenia podstawowej funkcjonalności (out-of-the-box)? i

3) W jaki sposób rdzeń i rozszerzenia są aktualizowane i aktualizowane?

NivF007
źródło
1
O ile mi wiadomo - 1.wp nie jest mvc i raczej bardziej zależy na funkcjach blogowania niż na całej witrynie. 3. Ale proces aktualizacji w Wordpress jest znacznie lepszy niż Joomla, pomijając niezgodność wtyczek WP.
dev-m
2
Ten komentarz jest zdecydowanie zbyt szeroki, aby dać konkretną lub ostateczną odpowiedź (istnieje wiele odpowiedzi, które byłyby „właściwe” - dobry przykład tego, jak nie pisać pytania). Rozważ sformułowanie pytania, aby było bardziej szczegółowe.
Andrew Eddie

Odpowiedzi:

18

Zarówno Wordpress, jak i Joomla! są wysoko cenione i każda z nich ma unikalne zalety, gdy je porównujesz.

Aby odpowiedzieć na twoje pytania:

w architekturze oprogramowania między Joomla! i Wordpress

  • Joomla to OOP (obiektowo) i MVC (obiektowo wzorzec projektowy).

  • Wordpress jest napisany w kodzie proceduralnym.

Programowanie proceduralne określa kroki, jakie program musi podjąć, aby osiągnąć pożądany stan, podczas gdy programowanie obiektowe („OOP”) organizuje programy w obiekty lub struktury danych i metody wraz z ich interakcjami.

W przypadku prostych programów kod proceduralny (pomyśl o sekwencji poleceń wiersz po wierszu) działa świetnie, ale w przypadku dużych złożonych aplikacji kod proceduralny może być trudniejszy w utrzymaniu - często skutkując tak zwanym kodem spaghetti (tj. Gdy wiersz po -liniowa sekwencja poleceń zaczyna używać wielu GOTO, wyjątków, wątków lub innych rozgałęzionych konstrukcji, a jej przepływ staje się koncepcyjnie jak miska spaghetti). Innymi słowy, kod proceduralny zaczyna się od prostej, ale może stać się złożony i splątany.

Bardziej złożone aplikacje można zatem lepiej ustrukturyzować za pomocą OOP i MVC - bardziej zaawansowanego stylu programowania, który znacznie lepiej nadaje się do tworzenia naprawdę złożonych programów z dużą ilością ruchomych części.

Podczas gdy kod proceduralny może początkowo być łatwiejszy do napisania i utrzymania dla prostych programów, OOP ma zalety, ponieważ może starannie łączyć kolekcje zmiennych (zwane „właściwościami” w OOP) w pakiety (zwane „metodami” w OOP) w pakiety - w wyniku czego kod, który jest bardziej uporządkowany, łatwiejszy do odczytania, utrzymania i rozszerzenia.

W przypadku większości aplikacji Wordpress (np. Prostych blogów) kod proceduralny działa doskonale.

W przypadku bardziej złożonych aplikacji (np. Wymagających uprawnień grup użytkowników i tych, które używają wielu integrują wiele rozszerzeń w celu rozszerzenia funkcji i funkcji), OOP jest ogólnie uważane za znacznie bardziej eleganckie podejście.

Podsumowując:

Architektura oprogramowania Worpress (oparta na kodzie proceduralnym) ma swoje zalety w prostocie, ale kod proceduralny nie jest idealny do złożonych aplikacji, które cechują się niezawodnością.

Joomla! Oprogramowanie architektura (OOP / MVC) może wydawać się bardziej skomplikowane, ale jeśli dobrze zaprojektowany, OOP / MVC rzeczywiście sprawia, że znacznie prostsze rozszerzyć możliwości i funkcji danej aplikacji użytkownika i mieć wszystkie te rozszerzenia współpracować harmonijnie.

Jeśli chcesz zrozumieć różnice (na podstawowym poziomie dla początkujących), przeczytaj Proceduralne PHP vs PHP OO vs PHP MVC autorstwa Peham Raza - omawia „tajniki” każdego z nich w sposób, który ułatwia lepsze zrozumienie korzyści.

w jaki sposób tworzone są rozszerzenia podstawowej funkcjonalności („po wyjęciu z pudełka”)?

  • Joomla dodał funkcje z modułem, komponentem, wtyczkami
  • WorPress używa wtyczki do rozszerzania funkcji.
  • Joomla jest surowa w tworzeniu modułów, wtyczek lub komponentów (nie możesz po prostu przesłać plików przez FTP i po prostu aktywować, musisz to zrobić za pomocą instalatora rozszerzeń).

W jaki sposób jądro i rozszerzenia są aktualizowane i aktualizowane

  • Obie używają prawie tej samej techniki do aktualizacji lub aktualizacji (zapewniają programistom tworzenie nowych funkcji z rozszerzeniami lub zmianami szablonów z nadpisywaniem. W zasadzie nie ma potrzeby edytowania podstawowych plików w tych sytuacjach, więc aktualizacja poprawi ich łatki bezpieczeństwa i nie tylko).

Mówi się, że Wordpress to nie CMS, ale teraz jest to CMS ze wszystkimi funkcjami Joomla i nie tylko.

WordPress jest dobry dla użytkowników, którzy mają mniejszą wiedzę na temat programowania, a Joomla dla programistów.

Mam nadzieję, że to ma sens.

Jobin Jose
źródło
3
MVC nie jest tak naprawdę główną różnicą architektoniczną. Główną różnicą jest to, że Joomla to OOP, a WordPress nie (tak bardzo). Oba mają paradygmat MVC, ale w Joomla jest to bardziej oczywiste ze względu na sposób, w jaki nazywamy klasy.
Andrew Eddie,
@AndrewEddie masz rację.
Jobin Jose,
Andrew - dziękuję. Jeśli usuniemy odniesienie do MVC, czy dzięki temu odpowiedź będzie bardziej dokładna?
NivF007
1
Twoje ostatnie zdanie chciałbym powiedzieć bardziej, że WordPress jest często używany przez osoby, które nie są zainteresowane rozwojem, tylko pisaniem we własnym lub bardzo małym zespole. Joomla skaluje się lepiej, gdy wiele osób będzie pracować na tej samej stronie, a zespół zbuduje witrynę. (Oba mogą również pracować w innym rozmiarze zespołu.)
tristanbailey,
6

Myślę, że aby naprawdę odpowiedzieć na to pytanie, musisz dokładnie zapoznać się zarówno z WP, jak i Joomla !. Jestem Joomla! ciężki i użyłem WP tylko kilka razy, więc moja odpowiedź może nie być tak pełna, jak można się spodziewać.

WP to przede wszystkim platforma blogowa. Jest skonfigurowany dla kanałów danych. Musisz zrobić wszystko, aby przejść obok domyślnego kanału, aby uzyskać zwykłą statyczną stronę główną. To nie jest trudne, po prostu nie jest domyślne. Jeśli wiesz, co robisz, możesz rozwinąć WP, aby wyjść poza platformę blogów lub pobrać szablon, który już to zrobił.

Joomla to przede wszystkim CMS. Został zbudowany, aby pomieścić pełną stronę internetową, w tym blogowanie, prosto z podstawy. Wtyczki pomagają, mogą zapewnić ci bardziej spersonalizowane wrażenia dla tych, którzy nie wiedzą, jak tworzyć własne komponenty i wtyczki. W końcu po co wymyślać koło?

Z mojego doświadczenia wynika, że ​​WP jest świetny dla osób, które nie są programistami lub wiedzą tylko tyle. Z drugiej strony Joomla została stworzona dla programistów, dla osób, które chcą stworzyć w pełni spersonalizowane interfejsy użytkownika i zaplecza. Spędziłem godziny pracując nad szablonem WP, aby zmusić go do robienia tego, co chciałem, co było frustrujące, gdy przyzwyczaiłem się do budowania rzeczy tak, jak chcę za pierwszym razem z Joomla (nie używamy szablonów - mamy własne rdzeń Joomla, który jest rozebrany do podstaw, a my budujemy od podstaw).

Jeśli podciągniesz FTP WP i Joomla obok siebie, zobaczysz, jak bardzo się różnią.

WP ma ten obszar wtyczek, w którym możesz wyszukiwać wtyczki, wybierać i instalować. Wierzę, że możesz także aktualizować z tego samego miejsca. Gdy jesteś w obszarze wtyczek, często powie ci, że aktualizacja jest dostępna.

Joomla używa Extension Managera, do którego możesz wgrać pobraną wtyczkę lub komponent - myślę, że może istnieć funkcja wyszukiwania, ale szczerze mówiąc nigdy jej nie użyłem, ponieważ zwykle używam JED, aby znaleźć to, czego potrzebuję. W tym samym obszarze znajduje się również przycisk aktualizacji, w którym możesz zobaczyć wszystkie dostępne aktualizacje tego, co zainstalowałeś. Ponownie, niektóre składniki powiedzą, że mają dostępną aktualizację, ale nie wszystkie.

Najważniejszą różnicą, którą widzę, jest to, że WP jest dla użytkowników - instalują szablon, mogą aktualizować, mogą dodawać, Joomla jest dla programistów, wykonujemy instalację, aktualizujemy, budujemy / dodajemy nowe funkcje i funkcje. Nie oznacza to, że nie jest przyjazny dla użytkownika, ale są obszary, które moim zdaniem zostały zepchnięte na bok, ponieważ zostały stworzone dla programistów.

Faye
źródło
2

Kiedy mówisz o architekturze, ma to znaczenie, gdy budujesz portal lub złożoną stronę internetową, tj. Wiele powiązanych ze sobą podmiotów.

  1. Kod źródłowy Joomla jest zorientowany obiektowo.
  2. Kod Joomla jest bardzo dobrze podzielony, tzn. Aplikacje, wtyczki, komponenty.
  3. Większość wzorców projektowych jest przestrzegana w Joomla, np. Fabryka, Dekorator, Wstrzykiwanie zależności itp.

Jako programista C i C ++, kiedy adoptowałem joomla, podobało mi się, ponieważ używa tego samego zestawu standardów, a nie funkcji psujących globalną przestrzeń nazw.

Shyam
źródło