WP21 技術発表
(ma.tt)- WordPressは、Matt MullenwegとMike Littleがb2/cafélogをフォークして最初のリリースを出してから21年を迎えた。今後の開発でも、初期の成功を生んだ条件をあらためて捉え直す必要がある
- 製品の方向性は、簡単なことは直感的に、複雑なことも可能にするという原則に沿っている
- ブログ、コメント、pingbackのような動的Web機能はWebサイトをより楽しくし、静的Webサイトよりも動的Webサイトに大きな価値を置いている
- プラグインとテーマのエコシステムは、WordPressコアと同等レベルの開発インフラを備えるべきであり、2024年にZIPアップロードへ依存するやり方はふさわしくない
- ユーザーに近いフィードバックループ、コミュニティ中心のフォーラム、優れたテーマプレビュー、Playgroundが今後のWordPress体験を左右する
WordPress 21周年と製品原則
- WordPressは、Matt MullenwegとMike LittleがMichelのb2/cafélogの作業をフォークして最初のリリースを出してから21年を迎えた
- 今後の開発でも、WordPress初期の成功に寄与した要素を引き続き念頭に置く必要がある
- 中核となる製品原則は、単純なことは簡単で直感的であるべきで、複雑なことも可能であるべきだという点にある
ブログ、ドキュメント、コミュニティ機能
- ブログ、コメント、pingbackは楽しいものであるべき
- 静的Webサイトも悪くないが、動的Webサイトのほうが優れているという立場
- ほぼすべてのサイトは、優れたブログがあれば改善できる
- ドキュメントはWikiのように簡単に編集できるべき
- Wikiは「驚くべき」ツールだと評価されている
- コミュニティではフォーラムが中心にあるべき
- bbPressとBuddyPressには、より多くの関心が必要
プラグインとテーマのエコシステム
- すべてのプラグインとテーマは、WordPress自体を作るときに使うレベルの開発インフラを持つべき
- バージョン管理
- バグトラッカー
- フォーラム
- ドキュメント
- 国際化
- チャットルーム
- P2
- 貢献とコミュニティへつながる簡単な導線
- 2024年にプラグインとテーマをZIPアップロード方式で扱うのは適切ではない
- テーマプレビューは優れたものであるべき
- 多様な美意識と機能を備えた非商用テーマのコレクションが重要
ルールよりもフィードバックループと透明性
- ガイドラインや要件に過度に偏るべきではない
- 優れたマーケットプレイスの力学、自動化されたフィードバックループ、ユーザーに対する透明性を設計するほうがよい
- 機能とデザインの境界はさらに押し広げるべき
- スパムとスパム的な行動にはゼロトレランスが必要
- フィードバックループはゲートキーパーに依存するのではなく、利用状況とコミュニティ全体に合わせて拡張されるべき
コアの性格とユーザー接点
- WordPressコアは意見を持ち、個性的であるべき
- Easter egg
- 翻訳が難しくても個性のある言葉づかい
- ジャズのような性格
- ソフトウェアを開発し意思決定する人は、全員そのソフトウェアを使うべき
- 開発者と意思決定者は、サポート業務、ミートアップ、イベントなど可能な活動を通じて、一般の最終ユーザーの近くにいるべき
Playgroundと初期体験
- Playgroundはすべてを変えると期待されている
- 2003年5月27日、最初のWordPressリリースが出た日に、Matt Mullenwegは両親の家の玄関先で書いた953語のブログ記事に「WordPressを公開し、気分がよかった」という一文を残した
- その夜、彼は友人Ramie SpeightのためにWPをセットアップし、地元のブロガーの集まりで出会ったMike Tremouletに電話で技術サポートを行った
- 高校時代の友人たちがそれぞれのドメインでWordPressを使い、そのフィードバックループがソフトウェアの形成に大きな役割を果たした
1件のコメント
Hacker Newsの意見
WordPressは開発標準を守るどころか、積極的に壊そうとしているように見えて残念
グローバル変数をeverywhereで使い、クラシックテーマでスパゲッティコードを助長したかと思えば、新しいテーマではHTMLコメント内にJSONを入れさせるので、エディタの支援もなく、エラーも起きやすく、ただ奇妙な設計になっている
本気でシニアエンジニアたちがHTMLコメント内にJSONテンプレートを入れようと決めたのかと思うし、陰謀論的に見ると、フリーランサーやデジタルエージェンシーの市場を潰して、WP.comのWYSIWYGサイトビルダーへ押し込もうとしているようにも見える
PHPの中のHTMLの中のJSの中のCSS、という具合で、ページ全体を作るためにどのファイルをどの順番で読むかという暗黙の構造に依存している
最初は便利に見えるが、HTML要素を同じファイル内できちんと閉じず、別のファイルで終わらせるようにしてしまい、再利用もできなくしている
初心者のミスのように見えるが、何千ものテーマがこれに依存しているので今では縛られてしまっており、Jinja2テンプレートでブロックやマクロをレンダリングする方式とは対照的だ
WordPressは、単純なウェブサイトが必要だと錯覚している予算のない顧客や低価格帯の顧客のために存在しており、そうした単純なサイトという概念自体もすでに過去のものだと思う
https://timber.github.io/docs/v2/
インストールパスが少しでも違う新しいサーバーへ移そうとすると、すぐ壊れた
残念ながら、そうなると「私たちのプラットフォームは全ウェブサイトの**43.4%**を動かしている」というマーケティング文句に悪影響があるかもしれない
素早い判断と強い意見がコミュニティの一部になってしまったのは残念
この2〜3か月、WordPress開発をかなりやってみて、ブロック(Gutenberg)が提供するコード分離は素晴らしいと言いたい
独立したプラグインとして使うか、Advanced Custom Fieldsと併用すれば、HTMLまで100%直接制御できる完全にモジュール式のウェブサイトと開発フロー、つまりデザインシステムを作れる
WordPressをきちんと理解して学ぶことを誰にでも勧めたい。WordPressとは何の関係もつながりもない
今日になって突然、GutenbergとACF Blocksがネストしたメディアフィールドのコンテンツ解析をめぐって、どこかで衝突している
原因は「ユーザーが入れてはいけない画像説明を入れた」ことかもしれないし、「プラグインのグローバルオブジェクトが
acf_register_block_type()に渡される別のグローバルオブジェクトを汚染した」ことかもしれないすでに怒っている顧客に電話して、素早い判断と強い意見は避けるべきだと言わなければならないかもしれない
今はそうではないかもしれないが、懐疑的になるのは当然だ。毎週確認するアップデートではCVEがかなり多く見えるが、すべて低リスクか、ほとんど使われていないプラグインに関するものかもしれない
index.phpを素朴に開いて動作を理解しようとしたことだったファイル冒頭の「code is poetry」というコメント以外は何も理解できなかった記憶が残っている
そのおかげでコードに対する考え方が変わり、プログラミングにさらにのめり込むようになった
投稿にメタデータが必要ならACFをインストールし、そのメタデータでフィルタリングしようとすると、フィルタを数個同時にかけただけでSQLクエリがタイムアウトする。WPの奇妙なスキーマを見れば理由はわかる
GutenbergはWYSIWYGで編集可能なReactコンポーネントを約束するが、属性をHTML内に保存し、データベースにはレンダリング済みHTMLを入れ、コンポーネント開発者が何かを変更するたびにdeprecatedな変更配列を維持させるという奇妙な判断をしている
WordPressをリファクタリングし、Laravelを付けて解きほぐそうとする試みもあるが[1]、レイヤーごとに悪夢で、各部分の作者たちにもなぜランダムに壊れるのか正確に判断するのは難しそうだ
プラグインエコシステムは魅力的かもしれないが、プラグインの実装はまちまちなので、ユーザーに肥大化したCSSとJSの塊を押し付けることになる可能性が高い
私はDirectusとAstroへ移ったし、より一般的なPHPデプロイならOctoberやStatamicのようなLaravelベースのCMSを使うと思う
[1]: https://roots.io/
2009〜2011年にプラグインの作成や修正も含めてかなり触ったが、きちんと理解したという感覚はなく、だいたいで理解するか受け入れるだけだった
WordPressが好き。人々が自分でインストールし、役に立たず安全でなくバグだらけのプラグインを何十個も入れ、時間が経ってサイトが壊れたら、より安全で堅牢なソリューションの費用を請求できる
終わらない週末プロジェクトが長引きすぎて公開されてしまったような感じで、巨大なグローバル変数の上を回る5画面分の
forループが重複して何かを処理する、といった具合だったWordPressは「完璧である必要はなく、動きさえすればいい」という考え方の、私の好きな例だ
多くの素晴らしいプロジェクトは最初の一歩を複雑にしすぎて死ぬ。人々が使い始めれば後からいつでも改善できるが、まずはリリースしなければならない
あまりにひどく、PHP言語の開発者でさえ一部の機能や修正を実装できない。WordPressチームがコードを移行しようとせず、WordPressがPHP利用量の大きな塊を占めているからだ
WPは作業の95%には完璧なツールだが、最後の5%を調整するのがとてつもなくもどかしい
かなり使ってきたし、これほど長く生き残っているのは有用性の証拠だと思う。今後もさらに21年続いてほしい
正直、WordPressが使いやすいと感じたことはない。良いテーマやプラグインを見つけられるうちはバラ色だが、ごく小さなカスタム変更が必要になった瞬間からこじれ始める
いざサイトやプラグイン/テーマのコード、CSSファイルを開くと、望む効果を出すために何時間も格闘し、たとえ成功してもサイトの別の部分を壊してしまうことがあった
けなし気味の逸話はさておき、Mattはよくやったし、最後の話も良かった
更新には手動介入が必要で、テーマは修正が必要になり、プラグインは廃止される。こうした負担を受け入れたくなかったので、2017年ごろからすべてのサイトをHugo/Jekyll/MkDocsなどに移した
ブログならWPよりGhostを使いたいし、PHPよりJSを好むというのもある
複数の人が「私はWordPress開発者です」と言っても、実際にはまったく異なる経験やスキルセットを指しているのが興味深い
ある人にとっては、WordPressの管理画面でテーマやプラグインをインストールし、ページコンテンツを書くことを意味する
別の人にとっては、PHPテンプレートでHTMLを書き、WordPressの動作をカスタマイズする昔ながらのPHPコード、つまりクラシックテーマを意味する
さらに別の人にとっては、DockerやCI/CDとともにJS+Reactを書く新しいブロックテーマを意味する
もっと多くの会社がAutomatticのサバティカル制度を導入してほしい
https://automattic.com/benefits/sabbatical/
年を取ったと感じるのは、「WP」を見てWordPressではなくWordPerfect(https://en.wikipedia.org/wiki/WordPerfect)を思い浮かべるときだ
WordPressは今や最も保守的な国でも成人と認められる年齢になり、WordPerfectは中年の危機の年齢に差しかかっている
WordPressで印象的なのは、Webオタクたちが当然簡単なはずだと期待し、そうでないと怒る点だ
他のあらゆるものと同じく、WordPressも学ぶ必要があり、それなりの考え方がある
奇妙な歴史もあるし、特にメディア項目の扱い方は本当に好きではないが、それでも方法論はある
私がGo、JS、Perl、Java、Ruby、Cを知っていると言いながら、Rustは学ぶのが難しいと怒ったら、当然反論されるだろう
WordPressは単純なことをしているように見えるが、実際にはかなり広いプラットフォームだ。ドキュメントを少し読む必要があるかもしれない
Elementorを使っているサイトを引き継いだなら、作った人に簡単な変更方法を聞けば助けてくれるはずだ
Visual ComposerやDiviを使っているサイトを引き継いだなら、作った人たちを撃ちたくなるほどだ
Gutenbergが悪いと思うなら、今はまったくそうではない。Diviの時代を思い出すと本当にひどかった
WordPress上に載ったひどいJavaScript UI実行で少しでもタイムアウトが起きると、ブログ記事を保存するだけでサイト全体が復旧不能な状態になり得る
イタリア語とフランス語のローカライズは90年代の日本製ゲーム並みにひどく、レスポンシブオプションは、特定のブレークポイントでコンテンツを隠したり表示したりすることをレスポンシブと呼ばない限り、実質的に機能しない
フロントエンドの「テーマ」はjQuery時代のJavaScriptの読めないダンプに近いため、すべてが極度に脆弱だ
Elegant Themesが広告に莫大な金を使っていなければ、誰も使わなかっただろうと100%確信している