ホームページ  >  記事  >  バックエンド開発  >  WordPress コードの品質はどうですか?

WordPress コードの品質はどうですか?

WBOY
WBOYオリジナル
2016-06-17 08:30:271095ブラウズ

私は長い間 WordPress を使用してきましたが、基礎となるコードにはあまり触れたことがありませんでした。専門家が WordPress を Joomla や Drupal と比べてどのように評価するかわかりませんが、品質だけの観点から見て、WordPress はどのレベルにあるのでしょうか?

返信内容:

私は長年 WordPress を使ってきましたが、WordPress 1.5 から使い始め、大きな改革が始まったときは WordPress 2.3 まで、そして徐々に WordPress 3.x、4.x と今でも WordPress を使い続けています。 2.0 の時代から始まり、WordPress コードを深く研究し、PHP プログラマーになりました。

私は PHP プログラマーとして 5 年間働いていますが、この質問に答えるべきだと思います。

コードの品質、この 4 つの単語の意味と意味について最初に説明します。概念が不明瞭だと、誰もがそれを評価できないと思います。ここの学生たちに会いに来て、コードの品質というと何を考えているか教えてもらえませんか?
  • 高凝集
  • 低結合
  • 可読性
  • 保守性
  • テスト性
  • 階層化
  • 抽象
  • DRY
  • オブジェクト指向
  • デザインパターン
すべてを言ったかどうかわかりません。とにかく、すべてを言うことはできません、他にもたくさんあります... このようにこのプロジェクトを評価すると、WordPress のコードはまだかなり悪いとしか言​​えません~

しかし、 WordPress のストーリーを見てみましょう。あなたは別の見方をしていると思います。まず、WordPress が登場した時代を見てみましょう。WordPress の作者として有名なマット氏は 1984 年生まれです。彼が WordPress を書き始めたのは 2003 年 1 月です。当時、彼は b2/cafelog というプログラムを使用していました。彼は私が不満であり、最新の Web 標準をサポートすることを望んでいたと感じたので、私はこのプロジェクトを開始し、cafelog コードに基づいて書き直し始めました。したがって、WordPress は巨人の肩の上にゼロから構築されたわけではありませんが、この巨人は基本的に古いものです (Web 標準の概念さえありません)。

まず、当時のマットはヒューストン大学政治学部の新入生で、音楽と写真が好きでした。そして旅行もするので、彼はプログラミングのプロでした...彼はまだ 19 歳でした。したがって、彼がこの問題を処理できなかったのは驚くことではありません。その結果、WordPress が世界で最も有名なブログプログラムになったことがわかります。さらに、彼はそれを解決しました。これを行う目的は、要件を満たし、Web 標準に準拠するブログ プログラムだけを必要としていたためでした。そして、彼はそれを実行しました。

当時の外部環境はどうでしょうか? WordPress といえば PHP は外せませんが、PHP は当初から PHP4 から大成功を収めました。 . それは、Web 開発を解決するために設計された単なる言語であり、おそらく、ホームページを作成したいだけで、多くの優れたソフトウェアを作成するために PHP を使用することは考えていませんでした。オブジェクト指向 PHP 5.x のサポートは、2004 年 7 月に初めてリリースされました。当時、PHP 4.x はすでに大成功を収めており、長年にわたり成功を収めてきたため、多くのソフトウェアは PHP 4.x に移行する時間がありませんでした。 5..x.

それで、考えてみて、最悪の PHP 言語 (オブジェクト指向をサポートしていない) とプロセス指向プログラミング パラダイムを使用して、完全な機能、簡単なデプロイ、インストールで実行できるブログを書くことになります。まあ、バグはほとんどありませんが、コードの品質はどうですか?聞かないでください、分かりません。

私が徐々にコードを見ることに集中できるようになったのは 2.x 以降でした。WordPress のアイデアの多くは今でも非常に印象的です。たとえば、アクションとフックのメカニズムです。このことはまったく神秘的ではありません。これはオブザーバーのデザイン パターンではないでしょうか? これは問題を解決するために非常に自然に使用されており、プロセス指向のオブザーバーを使用して実装されています。プラグインのメカニズムは単なる依存関係の注入です。優先列もございます!カテゴリを扱う場合、再帰、ツリー構築、アルゴリズムも非常に優れています。改めて2.3を見ると、タグの導入や情報検索の考え方もツリー状の分類ディレクトリに比べて非常に複雑で、タグの考え方は現代に至っています。

WordPress のもう 1 つの優れた点は、PHP 4.x から PHP 5.x に進化し、その後、長い間 PHP 4.x と PHP 5.x の両方の構文をサポートしていることです。言いたいのは、PHP 4 の開発後期にオブジェクト指向が登場しましたが、それは非常に粗雑でアクセス制御さえありませんでしたが、WordPress は 2 世代の言語の構文を同時にサポートしてきたということです。時間!個人ブロガーの多くはバーチャルホストを使用しており、気軽にシステムをアップグレードするのは簡単ではないと常々考えており、できるだけ良いバージョンを使用してもらうようにしています。

歴史の歯車が PHP 5 に移行するとき。まず、ウィジェットのクラス バージョンが登場しました。これは、ウィジェットを作成するために一連のプロセス指向のメソッドを使用することになりました。その後、徐々に多くの内部モジュールがオブジェクト指向になりました。このプロセスを実装すると、古いバージョンで開発されたすべてのプラグインは引き続き使用できます。WordPress は、さまざまなマイナー バージョン番号だけでなく、メジャー バージョン番号でも下位互換性があります。2.x で作成したプラグインの一部は現在でも使用できます。

自分の感情を表現するのは疲れます。

コードの美しさの観点から見ると、WordPress はまだ美しいとは言えません。内部のコードは汚くて乱雑で、さまざまなトリックがあり、パフォーマンスとロジックが混在し、結合やその他の問題があり、リストは数え切れないほどあります。

しかし、ユーザー第一の観点からコードの品質を見ると、WordPress は間違いなく世界最高のソフトウェアの 1 つにランクされる可能性があります。
  1. デプロイが容易で、依存関係がほとんどなく、基本的にさまざまな拡張機能に依存しません。
  2. 下位互換性があり、マシン (*nix、win) と互換性があり、インタプリタと互換性があります。 PHP 4.x、5、バグはほとんどありません
  3. セキュリティは基本的に中小規模の Web サイトの要件を満たします
  4. パフォーマンスは基本的に中小規模の Web サイトの要件を満たします
  5. つまり、WordPress は非常に高品質のプロジェクトであり、ユーザー至上主義の精神を常に遵守しており、そのユーザーはブログを書くブロガーだけでなく、収入を得るために WordPress に依存している何千人ものフリーランス プログラマーも含まれています。 WordPress は、バージョンに従うためにプラグインとスキンのバージョンを継続的にアップグレードすることを無作法に要求しません (邪悪な Apple など) は、古いバージョンの使用を無作法に禁止しませんでしたが、すべてと互換性を持たせるために最善を尽くしました。
  6. 今日に至るまで、WordPress は依然として非常に人気のあるブログ システムであり、徐々に小規模な CMS システムにアップグレードされており、そのオープン アーキテクチャとフックのアイデアにより、人々はそれをさまざまなものに変更することができます。オンライン ストアを構築した人もいれば、コミュニティを構築した人もいます。それらは全能です。
落ち着いてコードを注意深く研究すれば、美しさだけでなく歴史的要因や実際的な要因も含めて、1 つのバージョンだけでなく新しいバージョンやコードの進化についても学ぶことができると思います。はい、これを学んだからといって優れたプログラマーになることはできないかもしれませんが、優れたプロダクトマネージャーになり、ユーザーを尊重し、すべてをユーザーの価値に基づいて行う方法を学ぶこともできるでしょう。見た目が醜いコードを腐らせて悪臭を放つままにするのではなく、時代のトレンドやスクリプトに合わせてより良い方向に発展し続けましょう。 コア/プラグイン アーキテクチャ システムを見たことがない人は、WordPress は醜いと言うでしょう。いくつかのコア/プラグイン アーキテクチャ システム、emacs、vim、drupal、joomla、およびさまざまな CMS を見たことがある人は、WP がその中で最も単純であることがわかるでしょう。 「エレガント」; この本を読んだ後、「高結合」について考えずに、まずコア/プラグイン アーキテクチャと、このアーキテクチャでの低結合のコストについて考えてください。さらに、コア + についても逆に考えてください。プラグイン自体が最大の低結合ではないでしょうか? それらはすべて手続き型プログラミングです。オブジェクト指向を始めてから、人生はずっと明るくなりました。 フック
フック
フック~ 実際、コードを見ずにコードの品質を判断する簡単な方法があります。
1. それが広く使用されている基本的なコードであり、長い歴史がある場合、コードの品質、パフォーマンス、安定性は保証されます。 ;
2. アプリケーション コードが広く使用されており、長い歴史がある場合、コード アーキテクチャは後方結合であり、厳密に結合されている必要があります。 醜い叫び声 WordPress のコードは詩のようなものだと言う人もいます。
彼はある単語を間違って発音したに違いないと思います... 柔軟性はありますが、パフォーマンスは低く、小規模な Web サイトに適しています。
Web サイトのトラフィックが大きい場合、詳細な最適化が必要になります。分割テーブルは非常に面倒です。 かなり乱雑で、いたるところに強力な結合があり、煙突がたくさんあります。 ニアオ兄弟が WordPress を使って PHP のパフォーマンスをテストしたのを見ませんでしたか...
初めてソース コードを見たとき、プロセスが面倒すぎるように感じましたが、ソース コードを読むことができればこのようにして、あなたの能力は大幅に向上するはずです。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。