Apa perbedaan utama antara arsitektur perangkat lunak Wordpress dan Joomla! Dan bagaimana fungsi inti mereka diperluas?

14

* CATATAN: Ini bukan pertanyaan 'mana yang lebih baik'! *

Wordpress dan Joomla! keduanya adalah open source CMS yang mengagumkan.

Apa perbedaan utama

1) dalam arsitektur perangkat lunak antara Joomla! dan Wordpress?

2) dengan cara bagaimana ekstensi ke fungsionalitas inti (out-of-the-box) dibuat? dan

3) Bagaimana inti dan ekstensi ditingkatkan dan diperbarui?

NivF007
sumber
1
Sejauh yang saya tahu - 1.wp bukan MVC dan cenderung peduli tentang fitur blogging lebih dari total situs web. 3. tetapi proses upgrade di wordpress jauh lebih baik daripada joomla mengabaikan ketidakcocokan plugin wp.
dev-m
2
Komentar ini terlalu luas untuk memberikan jawaban spesifik atau pasti (ada banyak jawaban yang akan "benar" - contoh yang baik tentang bagaimana tidak menulis pertanyaan). Harap pertimbangkan untuk mengubah kalimat pertanyaan Anda menjadi lebih spesifik.
Andrew Eddie

Jawaban:

18

Wordpress dan Joomla! sangat dihargai dan masing-masing memiliki keunggulan unik ketika Anda membandingkannya.

Untuk menjawab pertanyaan Anda:

dalam arsitektur perangkat lunak antara Joomla! dan Wordpress

  • Joomla adalah OOP (berorientasi objek) dan MVC (pola desain berorientasi objek).

  • Wordpress ditulis dalam kode prosedural.

Pemrograman prosedural menentukan langkah - langkah yang harus diambil program untuk mencapai keadaan yang diinginkan, sedangkan pemrograman berorientasi objek ("OOP") mengatur program menjadi objek atau struktur data dan metode bersama dengan interaksinya.

Untuk program sederhana, kode prosedural (pikirkan urutan perintah per baris) bekerja dengan baik, tetapi untuk aplikasi kompleks yang besar, kode prosedural bisa lebih sulit untuk dipelihara - sering menghasilkan apa yang disebut kode spaghetti (yaitu ketika baris-by -rangkaian perintah mulai menggunakan banyak GOTO, pengecualian, utas atau konstruksi percabangan lainnya dan alurnya secara konseptual seperti semangkuk spageti). Dengan kata lain, kode prosedural dimulai dari yang sederhana, tetapi dapat menjadi rumit dan kusut.

Oleh karena itu aplikasi yang lebih kompleks dapat lebih terstruktur dengan OOP dan dengan MVC - gaya pemrograman yang lebih maju yang jauh lebih cocok untuk membangun program yang sangat kompleks dengan banyak bagian yang bergerak.

Sedangkan kode prosedural pada awalnya mungkin lebih mudah untuk ditulis dan dipelihara untuk program-program sederhana, OOP memiliki kelebihan dalam hal itu dapat dengan rapi mengumpulkan kumpulan variabel (disebut 'properties' di OOP) fungsi (disebut 'metode' dalam OOP) menjadi bundel - menghasilkan kode yang lebih rapi, lebih mudah dibaca, dipelihara, dan diperluas.

Untuk sebagian besar aplikasi Wordpress (misalnya blog sederhana), kode prosedural berfungsi dengan baik.

Untuk aplikasi yang lebih kompleks (mis. Yang membutuhkan izin grup pengguna dan yang menggunakan banyak integrasi banyak ekstensi untuk memperluas fitur dan fungsi), OOP umumnya dianggap sebagai pendekatan yang jauh lebih elegan.

Untuk menyimpulkan:

Arsitektur perangkat lunak Worpress (berdasarkan pada kode prosedural) memiliki kelebihan dalam kesederhanaannya, tetapi kode prosedural tidak ideal untuk aplikasi kompleks yang dapat dikembangkan dengan ekstensibilitas yang kuat.

Arsitektur perangkat lunak Joomla! (OOP / MVC) mungkin tampak lebih kompleks, tetapi ketika direkayasa dengan baik, OOP / MVC sebenarnya membuatnya lebih mudah untuk memperluas fitur dan fungsi aplikasi dan agar semua ekstensi itu bekerja bersama secara harmonis.

Jika Anda ingin memahami perbedaan (pada tingkat pemula dasar), baca PHP Prosedural vs PHP OO vs PHP MVC oleh Peham Raza - ia membahas 'seluk beluk' masing-masing dengan cara yang memudahkan untuk lebih memahami manfaatnya.

dengan cara mana ekstensi ke fungsionalitas inti (out-of-the-box) dibuat?

  • Joomla menambahkan fitur dengan Module, Component, Plugins
  • WorPress menggunakan plugin untuk memperluas fitur.
  • Joomla sangat ketat dalam pembuatan modul, plugin atau komponennya (Anda tidak bisa begitu saja mengunggah file melalui FTP dan hanya mengaktifkannya, Anda harus melakukannya dengan installer Extension).

Bagaimana inti dan ekstensi ditingkatkan dan diperbarui

  • Keduanya menggunakan teknik yang hampir sama untuk pemutakhiran atau pembaruan (Mereka menyediakan pengembang untuk membuat fitur baru dengan ekstensi atau perubahan templat dengan menimpa Jadi pada dasarnya tidak ada file inti yang perlu kita edit pada situasi ini sehingga pemutakhiran akan meningkatkan tambalan keamanan mereka dan banyak lagi.)

Ada yang mengatakan Wordpress bukan CMS, tetapi sekarang ini adalah CMS dengan semua fitur Joomla dan banyak lagi.

WordPress baik untuk pengguna yang kurang memiliki pengetahuan pengembangan, dan Joomla untuk pengembang.

Semoga ini masuk akal.

Jobin Jose
sumber
3
MVC sebenarnya bukan perbedaan arsitektur utama. Perbedaan utama adalah bahwa Joomla adalah OOP dan WordPress tidak (terlalu banyak). Keduanya memiliki paradigma MVC tetapi lebih jelas di Joomla karena cara kita memberi nama kelas.
Andrew Eddie
@AndrewEddie kamu benar.
Jobin Jose
Andrew - terima kasih. Jika kami menghapus referensi ke MVC, apakah ini membuat jawaban lebih akurat?
NivF007
1
Kalimat terakhir Anda akan saya katakan lebih seperti WordPress sering digunakan oleh orang-orang yang tidak tertarik pada pengembangan hanya menulis pada tim mereka sendiri atau sangat kecil. Joomla meningkatkan skala ketika beberapa orang akan bekerja di halaman yang sama dan tim membangun situs. (Keduanya juga dapat bekerja dalam ukuran tim lain.)
tristanbailey
6

Saya pikir untuk benar-benar menjawab pertanyaan ini, Anda harus terbiasa dengan WP dan Joomla !. Saya Joomla! berat dan hanya menggunakan WP beberapa kali, jadi jawaban saya mungkin tidak penuh seperti yang Anda harapkan.

WP adalah platform blogging pertama dan terutama. Ini diatur untuk umpan data. Anda harus keluar dari cara Anda untuk melewati umpan default untuk mendapatkan halaman Beranda statis biasa. Ini tidak sulit, hanya saja tidak default. Jika Anda tahu apa yang Anda lakukan, Anda dapat memperluas WP untuk bergerak melampaui platform blogging, atau jika Anda mengunduh template yang sudah melakukannya untuk Anda.

Joomla adalah CMS pertama dan terpenting. Ini dibangun untuk menampung situs web yang lengkap, termasuk blogging, langsung dari inti dasarnya. Plugin membantu, mereka bisa memberi Anda pengalaman yang lebih khusus bagi mereka yang tidak tahu cara membuat komponen dan plugin mereka sendiri. Lagi pula, mengapa menciptakan kembali kemudi?

Dalam pengalaman saya, WP bagus untuk orang yang bukan pengembang, atau yang cukup tahu. Joomla di sisi lain dibangun untuk pengembang, untuk orang-orang yang ingin membuat pengalaman front-end dan back-end yang sepenuhnya disesuaikan. Saya menghabiskan waktu berjam-jam bekerja di templat WP untuk memaksanya melakukan apa yang saya inginkan, yang membuat frustrasi ketika saya terbiasa membangun sesuatu dengan cara yang saya inginkan pertama kali dengan Joomla (kami tidak menggunakan templat - kami punya sendiri inti Joomla yang dilucuti ke dasar-dasar dan kami membangun dari bawah ke atas).

Jika Anda menarik FTP WP dan Joomla berdampingan, Anda dapat melihat betapa berbedanya mereka.

WP memiliki area plugin ini tempat Anda dapat mencari plugin, memilih dan menginstal. Saya yakin Anda juga dapat memperbarui dari tempat yang sama. Ketika Anda berada di area plugin, itu akan sering memberi tahu Anda bahwa pembaruan tersedia.

Joomla menggunakan Extension Manager tempat Anda dapat mengunggah plugin atau komponen yang diunduh - Saya pikir mungkin ada fungsionalitas pencarian, tapi jujur ​​saya tidak pernah menggunakannya karena saya biasanya menggunakan JED untuk menemukan apa yang saya butuhkan. Area yang sama ini juga menawarkan Anda tombol pembaruan di mana Anda dapat melihat semua pembaruan yang tersedia untuk apa yang telah Anda instal. Sekali lagi, beberapa komponen akan memberi tahu Anda bahwa mereka memiliki pembaruan yang tersedia, tetapi tidak semuanya.

Perbedaan utama yang saya lihat adalah WP dibuat untuk pengguna - mereka memasang templat, mereka dapat memperbarui, mereka dapat menambahkan, Joomla dibuat untuk pengembang, kami melakukan instalasi, kami memperbarui, kami membangun / menambahkan fitur dan fungsi baru. Itu bukan untuk mengatakan itu tidak ramah pengguna, tetapi ada daerah yang saya pikir didorong keluar dari cara pengguna karena mereka dibangun untuk pengembang.

Faye
sumber
2

Ketika Anda berbicara tentang arsitektur, itu tidak masalah ketika Anda membangun portal atau situs web yang kompleks yaitu banyak entitas yang saling terhubung.

  1. Kode sumber Joomla berorientasi objek.
  2. Kode Joomla terbagi dengan sangat baik yaitu aplikasi, plugin, komponen.
  3. Sebagian besar pola desain diikuti di Joomla, misalnya Pabrik, Dekorator, Injeksi Ketergantungan, dll.

Sebagai pengembang C dan C ++ ketika saya mengadopsi joomla, saya menyukainya karena menggunakan set standar yang sama daripada fungsinya merusak namespace global.

Shyam
sumber