WordpressとJoomla!のソフトウェアアーキテクチャの主な違いは何ですか?また、それらのコア機能はどのように拡張されていますか?


14

*注:これは「どちらが良い」という質問ではありません!*

WordpressとJoomla!どちらも素晴らしいオープンソースCMSです。

主な違いは何ですか

1)Joomla!間のソフトウェアアーキテクチャ とWordpress?

2)コア(すぐに使える)機能の拡張が行われる方法 そして

3)コアと拡張機能はどのようにアップグレードおよび更新されますか?


1
私の知る限り、1.wpはmvcではなく、ウェブサイト全体よりもブログ機能を重視する傾向があります。3.しかし、wordpressのアップグレードプロセスは、womプラグインの非互換性を無視するjoomlaよりもはるかに優れています。
dev-m 14

2
このコメントは広すぎて、具体的または決定的な答えを出すことができません(「正しい」答えがたくさんあります-質問を書かない方法の良い例です)。より具体的な質問に言い換えることを検討してください。
アンドリューエディ14

回答:


18

WordpressとJoomla!の両方 高く評価されており、それぞれを比較すると独特の利点があります。

質問に答えるには:

Joomla!間のソフトウェアアーキテクチャで とWordpress

  • JoomlaはOOP(オブジェクト指向)およびMVC(オブジェクト指向設計パターン)です。

  • Wordpressは手続き型コードで書かれています。

手続き型プログラミングは、プログラムが目的の状態に到達するために必要な手順を指定しますがオブジェクト指向プログラミング(「OOP」)は、プログラムをオブジェクトまたはデータ構造メソッドに編成し、それらの対話を行います。

単純なプログラム、手続き型コードの場合(コマンドのライン・バイ・ラインのシーケンスを考えるには)素晴らしい作品が、大規模で複雑なアプリケーションのために、手続き型コードの維持が困難になることができます-しばしばと呼ばれるものが得られスパゲッティコード(すなわち時にライン・バイコマンドの行シーケンスは、多くのGOTO、例外、スレッド、またはその他の分岐構造の使用を開始し、フローは概念的にスパゲッティのボウルのようになります)。言い換えると、手続き型コードは単純なものから始まりますが、複雑で複雑になります。

したがって、OOPとMVCを使用すると、より複雑なアプリケーションをより適切に構成できます。これは、多くの可動部分を持つ本当に複雑なプログラムの構築に適した、より高度なプログラミングスタイルです。

手続き型コードは最初は簡単なプログラムの作成と保守が簡単ですが、OOPには変数のコレクション(OOPでは「プロパティ」と呼ばれます)関数(OOPでは「メソッド」と呼ばれます)をバンドルにきちんとまとめることができるという利点があります-結果としてより読みやすく、保守しやすく、拡張しやすいコード。

ほとんどのWordpressアプリケーション(単純なブログなど)では、手続き型コードは完全にうまく機能します。

より複雑なアプリケーション(たとえば、ユーザーグループのアクセス許可を必要とするアプリケーションや、多くの拡張機能を統合して機能を拡張するアプリケーションなど)の場合、OOPは一般的にはるかに洗練されたアプローチと見なされます。

総括する:

Worpressのソフトウェアアーキテクチャ(手続き型コードに基づく)にはシンプルさの強みがありますが、手続き型コードは堅牢で拡張性のある複雑なアプリケーションには理想的ではありません。

Joomlaの!のソフトウェアアーキテクチャ(OOP / MVC)はより複雑に見えるかもしれませんが、よく設計されたときに、OOP / MVCは実際にははるかに簡単なアプリケーションの特徴と機能を拡張することができますし、すべてのそれらの拡張機能が調和一緒に仕事持っています。

違いを(基本的な初心者レベルで)理解したい場合は、Peham RazaによるPHP手続き型vs PHP OO vs PHP MVCを読んでください-彼はそれぞれの利点をよりよく理解できるようにそれぞれの「内と外」を議論しています。

コア(すぐに使用可能な)機能の拡張が行われる方法

  • Joomlaは、モジュール、コンポーネント、プラグインで機能を追加しました
  • WorPressはプラグインを使用して機能を拡張します。
  • Joomlaのモジュール、プラグイン、またはコンポーネントの作成は厳密です(FTPを介してファイルをアップロードするだけでアクティブにすることはできません。拡張インストーラーで行う必要があります)。

コアと拡張機能のアップグレードおよび更新方法

  • 両方とも、アップグレードまたは更新にほぼ同じ手法を使用しています(開発者は、拡張機能またはテンプレートの変更をオーバーライドして新しい機能を作成するため、この状況で基本的にコアファイルを編集する必要がないため、アップグレードによりセキュリティパッチなどが改善されます)。

WordpressはCMSではないという言葉がありますが、現在ではJoomlaなどのすべての機能を備えたCMSです。

WordPressは開発知識の少ないユーザーに、Joomlaは開発者に適しています。

その意味を願っています。


3
MVCは実際には主要なアーキテクチャの違いではありません。主な違いは、JoomlaはOOPであり、WordPressは(あまり)ありません。どちらにもMVCパラダイムがありますが、クラスの名前付けの方法のため、Joomlaではより明白です。
アンドリューエディ14

@AndrewEddieあなたは正しいです。
ジョビンホセ14

アンドリュー-ありがとう。MVCへの参照を削除すると、答えがより正確になりますか?
NivF007 14

1
あなたの最後の文章は、WordPressが開発に興味のない人や、自分のチームや非常に小さなチームで書くことに興味のない人によく使われるように言います。複数の人が同じページで作業し、チームがサイトを構築すると、Joomlaのスケーラビリティが向上します。(どちらも他のチームサイズでも機能します。)
tristanbailey

6

この質問に本当に答えるには、WPとJoomla!の両方に精通している必要があります。私はJoomlaです!重いし、WPを数回しか使用していないので、私の答えはあなたが期待するほど完全ではないかもしれません。

WPは何よりもまず、ブログプラットフォームです。データのフィード用に設定されています。通常の静的なホームページを取得するには、フィードのデフォルトを超えて移動する必要があります。難しくはありません。デフォルトではありません。自分が何をしているのかがわかっている場合は、WPを拡張してブログプラットフォームを超えて移動したり、既にそれを行ったテンプレートをダウンロードしたりできます。

Joomlaは何よりもまず、CMSです。ブログを含む完全なWebサイトをベースコアから直接保持できるように構築されています。プラグインは、独自のコンポーネントやプラグインの作成方法がわからない人のために、よりカスタマイズされたエクスペリエンスを提供します。結局のところ、なぜ車輪を再発明するのですか?

私の経験では、WPは開発者ではない人や、十分な知識がある人に最適です。一方、Joomlaは、完全にカスタマイズされたフロントエンドおよびバックエンドエクスペリエンスを作成したい人のために、開発者向けに構築されました。私はWPテンプレートで何時間もかけて自分のやりたいことを強制しましたが、これはJoomlaで初めて欲しいものを構築するのに慣れていたときにイライラしていました(私たちはテンプレートを使用しません-私たちは独自のものを持っていますコアJoomlaは基本的な部分まで削ぎ落とされており、ゼロから構築しています)。

WPとJoomlaのFTPを並べてプルアップすると、両者の違いがわかります。

WPには、プラグインを検索、選択、インストールできるこのプラグインエリアがあります。この同じ場所からも更新できると思います。プラグインの領域にいるとき、更新が利用可能であることをしばしば通知します。

JoomlaはExtension Managerを使用して、ダウンロードしたプラグインまたはコンポーネントをアップロードできます-検索機能があるかもしれませんが、私はJEDを使用して必要なものを見つけるため、正直に使用したことがありません。この同じエリアには、インストールしたものの利用可能なすべての更新を表示できる更新ボタンもあります。繰り返しますが、一部のコンポーネントは、利用可能なアップデートがあることを通知しますが、すべてではありません。

私が見る重要な違いは、WPはユーザー向けに作られていることです-ユーザーはテンプレートをインストールし、更新、追加、Joomlaは開発者向けに作られ、インストールを行い、更新を行い、新しい機能を構築/追加します。ユーザーフレンドリーではないというわけではありませんが、開発者向けに構築されているため、ユーザーの邪魔にならない領域があると思います。


2

アーキテクチャについて説明しているように、ポータルや複雑なWebサイト、つまり相互接続された多数のエンティティを構築するときは重要です。

  1. Joomlaのソースコードはオブジェクト指向です。
  2. Joomlaコードは、アプリケーション、プラグイン、コンポーネントなど、非常によく分割されています。
  3. Joomlaでは、ファクトリ、デコレータ、依存性注入など、ほとんどのデザインパターンが採用されています。

joomlaを採用したCとC ++の開発者として、グローバル名前空間を台無しにする関数ではなく、同じ標準セットを使用するので、私はそれが大好きでした。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.