ScalaでWordPressのフロントエンドを作る

そういうものを作ることを決めました。Sashimiという名前です。

ただし記事執筆時点でまともなコードは上記GitHubリポジトリにはありません。

簡単なまとめ

  • WordPress便利
  • でもパフォーマンス的に大問題
  • ScalaでWordpressの表示のところだけ実施する
  • その他管理機能はWordpressに任せる
  • 最終的にプラグイン機能を包含したScalaベースのWordpressを作りたい

WordPressの問題点

WordPressは世界的に広く用いられているCMSですが、実装がPHPでパフォーマンスの面で問題を抱えます。よって、大規模なアクセスが集中するようなサイトではロードバランサの下に多数のサーバを抱えて力技(金という実弾)で解決するというケースが多いように思います。

私はこういう発想が昔からあんまり好きじゃない。ソフトウェアは早い(パフォーマンスが良好)ほうが良いですよね。昔からソフトと車は早ければ早いほうが良いってよく言いますからね。

WordPressはセキュリティの点にも大きな問題を抱えています。大きな問題を抱えています。オブラートに包まない言い方をするとカスです。端的にセキュリティの面でグズグズでカスです。私も何度も攻撃を受け、ブログを書き換えられた経験があります。

これを作る動機は「もう少しマシなCMSを」ということに尽きます。Wordpressは偉大なソフトウェアだと思いますが、もうそろそろもっとマシな選択肢が欲しいというのは誰しもが思っているでしょう。

二番目の動機は、私はフリーランスなので、一つくらい自分が作ったんだよと言えるプロダクトがほしいなと思ったことです。私が自作して作り続けていけるプロダクトの一つはCMS(ブログアプリ)だろうなと。

マイルストーン

  • 第一段階:Wordpressのフロントエンド。DBと管理機能はWordpressに担当させ、表示機能のみを提供。
  • 第二段階:プラグインシステムの実装。
  • 第三段階:管理機能の実装(別アプリとして動作させる)。
  • ゴール:CMSとして必要な機能を実装させる。

最終的には新しいCMSとしてホスティングサービスや導入支援などのビジネスにつなげられれば一番良いのですが、今時ブログも下火ですし自分で使い勝手の良いソフトが作れればそれで万々歳とします。

キャッシュじゃだめなん?

WordPressの高速化手法を調べると必ずと言っていいほどキャッシュ機構の導入が語られます。私も一時期はキャッシュすりゃ解決じゃん、楽勝〜。と思っていたのですが、ブログって思いの外動的コンテンツが多く、沢山のプラグインとの相性問題が発生します。そういうのを回避するためのノウハウを蓄積するのは本質的でないというかそういうみみっちい作業が私は嫌いです。

また、キャッシュによって高速化が達成されたところでセキュリティの問題は残ったままです。

別にScalaで作りなおしたところでセキュアにならないのでは?

ここは今後の実装次第です。頑張ってセキュアにします。また、PHPが原因でインセキュアになっているという指摘をしたいわけでもありません。そんなこと言っても不毛なので…。

何で刺身?

最初はFastpressという名前にしようと思ったんですが、すでにそういう会社名が国内にあり、じゃあRapidpressか、いやこれもあるな、Quickpressもあるな…と考えているうちに「刺身」に落ち着きました。

作ってから言えよ

自分も作ってから言いたかったのだけど、性格上表明して追い込んだほうがやりやすいため。(しかし宣言したにもかかわらず停滞しているものがごまんとあるので無意味な気もする)