WordPressの限界点
このブログもWordPressを利用して作られています。
最近ではブログエンジンのみならず、CMSとして利用される例も多くなってきました。
私自身、案件でもよく利用しているわけですが、近頃ではその限界点を感じるようになり、案件では採用しないことが多くなってきました。
企業のWeb担当者や、システムを知らないがWordPressなら構築が出来ると謳う方には、是非一度考えてもらいたいと思い、ここに記します。
※この文章は私自身の個人的な意見であり、WordPressで構築されたサイトを批判、中傷するものではありません。
WordPressに問題を感じる理由はいくつかあります。
もちろんその問題をある程度解消する方法も存在することは承知の上で、挙げてみます。
1.DBの問題
WordPressを案件で採用しない一番の理由がDBの問題です。
CMSエンジンとしても使われるようになったためか、汎用性を意識した作りをしており、DB構造が非常にややこしいです。
その上、HTML吐き出し型では無く、アクセスの度にDBにクエリを投げる形を取っています。
これによりサーバへの負荷が増え、多量のアクセスを捌くことが困難になります。
ApacheやMysqlのチューニングである程度は負荷を下げることが出来ますが、根本的な解決にはなりません。
2.プラグインの問題
ここまでWordPressが広く普及した理由は、プラグインの存在無しには語れないでしょう。
「手軽に導入出来るプラグインによるカスタマイズ」こそがWordPressの魅力と言っても過言では無いと思います。
しかし、それこそが致命的な欠点を作り出しているとも言えます。
まず、その手軽さ。
ほとんどのプラグインがボタン一つで簡単に導入できるわけですが、あなたはその中身の動作を知っていますか?
中でどういう処理が行われていて、どのような脆弱性を持っているのか。
先日、導入したが有効化していないプラグインの脆弱性を突かれて、サイトの中身を改ざんされたという記事を目にしました。
何故こんな事件が発生してしまったのか。
ここからは推測の域を出ませんが、可能性のお話です。
WordPressの管理画面やプラグインのURLは設定を変更しない限り、デフォルトのものが使用されます。
つまり、そのサイトがWordPressを使っていて、かつ、そのプラグインをインストールしていれば、有効化しているかどうかに関わらず、そのプラグインの脆弱性を突くことが可能になってくるわけです。
こうした被害も、個人のブログであれば、たいして問題無いかもしれませんが、企業のホームページに導入していた場合、どうなるでしょうか?
誰が責任をとってくれますか?
WordPressはオープンソースのプログラムですから、作った人が何かを担保してくれるわけではありません。
導入を決定した人が、あくまで責任を負う必要が出てくるわけです。
そのリスクを理解した上で導入を決定しているかどうか。
WordPressの導入を決定した担当者は、そこまでの判断をした上で利用を決定しているのでしょうか。
3.直接のカスタマイズの問題
WordPressはPHPで作られており、PHPの読み書きが出来ればある程度のカスタマイズが可能になっています。
テンプレートを作りたければ、最小限のPHPの知識と、WordPress独自関数の知識があれば良いのです。
しかし、中途半端な知識は脆弱性の温床です。
言うまでもありませんが、「知らなかった」なんて言い訳には出来ません。
また、WordPress本体の問題も多くあります。
歴史的な理由もあり、WordPress独自関数は整備状況が甘く、命名ルールや挙動すらも統一されていないという惨状です。
当然そこで出来上がるコードは、非常に可読性が低く、今後の再利用に適さないものになります。
あとから機能を追加したくとも、まずは解読から、という状況も珍しくありません。
しっかりしたドキュメントを作れば解決…たしかにそうですが、それってスクラッチ開発とどう違うんでしょうね?
WordPress自体は、オープンソースそのものの発展に大きく寄与した面もあり、高く評価しています。
しかし、だからといって盲目的にそれを信頼し、下駄を預けられるか、というとそれは別の問題です。
考えなくなることは楽ですが、そこに潜む危険について知らないことは、思わぬときに悲劇を生む地雷のような存在だと思います。
“WordPressの限界点” に対して11件のコメントがあります。
コメントは受け付けていません。
おっしゃってる事は理解できますが、内容は「WordPress」に限らず、すべてのCMS、ひいては動的サイト全般にいえる問題ばかりです。
DBが複雑という部分ですが、WordPressなんて単純なほうです。 テーブルが20個もないでしょう。 テーブルが少ないCMSのほうが、汎用性低そうで怖いです。
WordPress(CMS)とスクラッチを比べ「違いない」とおっしゃるということは、恐らくどちらの開発もされたことはないのでしょう。
あなた様の技術力不足をWordPressに責任転嫁してる以上、
「WordPressで構築されたサイトを批判、中傷するものではありません」
は理解できますが、
「WordPressおよびCMS自体を中傷している」
と捉えられても仕方のない内容です。
brenさん>
コメントありがとうございます。
> おっしゃってる事は理解できますが、内容は「WordPress」に限らず、すべてのCMS、ひいては動的サイト全般にいえる問題ばかりです。
WordPressに限らない内容は含んでいるとは思いますが、広く普及している分、カスタマイズ情報が世に出回り、内容の詳細を知らなくても比較的細かいカスタマイズが出来るソフトウェアとしてWordPressを取り上げています。
> DBが複雑という部分ですが、WordPressなんて単純なほうです。 テーブルが20個もないでしょう。 テーブルが少ないCMSのほうが、汎用性低そうで怖いです。
もちろん、もっと複雑な構成を持つCMSも存じておりますし、業務システムであればより複雑な構成を構築することもあると思います。
「汎用性」をどう捉えるか、という問題はありますが、汎用性が低そう、という印象は一概に言えることでも無いのではないでしょうか。
> WordPress(CMS)とスクラッチを比べ「違いない」とおっしゃるということは、恐らくどちらの開発もされたことはないのでしょう。
> あなた様の技術力不足をWordPressに責任転嫁してる以上、
> 「WordPressで構築されたサイトを批判、中傷するものではありません」
> は理解できますが、
> 「WordPressおよびCMS自体を中傷している」
> と捉えられても仕方のない内容です。
恐縮ですが、どちらの開発も経た上での意見を記しています。
また、「違いは一つもない」と断定した記述ではなく、そこにかかる稼働は結局のところ同程度なのではないか、どこに優位性があるのか?という問いを投げる意図での記述です。
ご意見頂けることは大変ありがたいのですが、推測からの断定をされてしまいますと意見の交換がしづらい状況になりますのでお控え頂けると幸いです。
また重ねて申し上げますが、今回の記事の意図は冒頭にも記述した通り、WordPressの批判/中傷ではありません。
その可能性や有用性を認めた上で、潜む危険性への指摘を意図しています。
ではどうすれば良いのか、という答えは各人に任されたことだと思いますし、私が最適解を持っているなどとも考えていません。
「こうしたほうが良い」という意見があれば、是非お伺いしたいですし、それについて議論することは記事を読んでいる誰かのために有用だと言えるのではないでしょうか?
WPが絶賛される中、ボクも同じようなことは思っていました。
サーバー負荷がネックでアクセス数があるサイトにはどうも不向きな気がします。そういう面で言えば静的なMTのほうが安心なので結局のところMTでの構築を勧めるようになりました。
WordPressならまだいいほうだと思ってしまいます。EC Cubeなんてもっとすごいことになっていますからね。まあ、日本国内だけですけど。
「※この文章は私自身の個人的な意見であり、WordPressで構築されたサイトを批判、中傷するものではありません。」と注をしてありますが、タイトル及び本文からはWordPressとオープンソースに対する落胆、批判について書かれているように思います。
指摘されている問題については正しい知識を付けた上で対処するべきであり、知識が無くてもうまくいくという事を期待するという事はオープンソースにせよWordPressにせよ謳っているものではないでしょう。
またWordPress及びオープンソースに対する代替案が明確には示されていませんが、例えば「スクラッチ開発」したソフトウェアであればオープンソースより品質が高いという事はなく、単純に費やされた作業量からしか品質は生まれないでしょう。
学習する事、開発をする事さまざまな労力の集大成として稼働するシステムがあるのだとすれば、すくなくとも開発する部分の労力がすでに達成されているということは必要な量力の総量を大きく削減できているものと思います。
そのあたりからすると「知識なくWordPressを使うことの危険性」とするほうが意図する内容に即したタイトルだったかもしれませんね。
2014 まだ限界点は見えず。
今後に期待。
2年前の記事にコメントするのもなんですが、
最近は「wordpressやMTで提供したはいいけど、セキュリティアップデートなどの手間が馬鹿にならないので、フルスクラッチで開発してもらえないでしょうか?」という問い合わせがわりとありますね。
でも、1度そういうので安価に提供してしまっている以上、フルスクラッチ開発するだけの費用が確保できるわけがないので、基本的に断ってきました。
wordpressはあくまでもブログツールであって、企業向けのCMSとして使うのは初めから無茶だし、よくそんな危険な物をお客さんからお金貰って提供するもんだよな、と、ずっと思ってました。