1 ポイント 投稿者 GN⁺ 2024-05-29 | 1件のコメント | WhatsAppで共有
  • 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は「驚くべき」ツールだと評価されている
  • コミュニティではフォーラムが中心にあるべき

プラグインとテーマのエコシステム

  • すべてのプラグインとテーマは、WordPress自体を作るときに使うレベルの開発インフラを持つべき
    • バージョン管理
    • バグトラッカー
    • フォーラム
    • ドキュメント
    • 国際化
    • チャットルーム
    • P2
    • 貢献とコミュニティへつながる簡単な導線
  • 2024年にプラグインとテーマをZIPアップロード方式で扱うのは適切ではない
  • テーマプレビューは優れたものであるべき
  • 多様な美意識と機能を備えた非商用テーマのコレクションが重要

ルールよりもフィードバックループと透明性

  • ガイドラインや要件に過度に偏るべきではない
  • 優れたマーケットプレイスの力学、自動化されたフィードバックループ、ユーザーに対する透明性を設計するほうがよい
  • 機能とデザインの境界はさらに押し広げるべき
  • スパムとスパム的な行動にはゼロトレランスが必要
  • フィードバックループはゲートキーパーに依存するのではなく、利用状況とコミュニティ全体に合わせて拡張されるべき

コアの性格とユーザー接点

  • WordPressコアは意見を持ち、個性的であるべき
    • Easter egg
    • 翻訳が難しくても個性のある言葉づかい
    • ジャズのような性格
  • ソフトウェアを開発し意思決定する人は、全員そのソフトウェアを使うべき
  • 開発者と意思決定者は、サポート業務、ミートアップ、イベントなど可能な活動を通じて、一般の最終ユーザーの近くにいるべき

Playgroundと初期体験

  • Playgroundはすべてを変えると期待されている
  • 2003年5月27日、最初のWordPressリリースが出た日に、Matt Mullenwegは両親の家の玄関先で書いた953語のブログ記事に「WordPressを公開し、気分がよかった」という一文を残した
  • その夜、彼は友人Ramie SpeightのためにWPをセットアップし、地元のブロガーの集まりで出会ったMike Tremouletに電話で技術サポートを行った
  • 高校時代の友人たちがそれぞれのドメインでWordPressを使い、そのフィードバックループがソフトウェアの形成に大きな役割を果たした

1件のコメント

 
GN⁺ 2024-05-29
Hacker Newsの意見
  • WordPressは開発標準を守るどころか、積極的に壊そうとしているように見えて残念
    グローバル変数をeverywhereで使い、クラシックテーマでスパゲッティコードを助長したかと思えば、新しいテーマではHTMLコメント内にJSONを入れさせるので、エディタの支援もなく、エラーも起きやすく、ただ奇妙な設計になっている
    本気でシニアエンジニアたちがHTMLコメント内にJSONテンプレートを入れようと決めたのかと思うし、陰謀論的に見ると、フリーランサーやデジタルエージェンシーの市場を潰して、WP.comのWYSIWYGサイトビルダーへ押し込もうとしているようにも見える

    • WordPressは悪い慣行を本当にたくさん助長している。基本テーマ構造を見るだけでも、CSSファイルのコメントでテーマのメタデータを説明し、合成ではなく文字列連結をeverywhereで使って、HTMLの断片を再利用しにくくしている
      PHPの中のHTMLの中のJSの中のCSS、という具合で、ページ全体を作るためにどのファイルをどの順番で読むかという暗黙の構造に依存している
      最初は便利に見えるが、HTML要素を同じファイル内できちんと閉じず、別のファイルで終わらせるようにしてしまい、再利用もできなくしている
      初心者のミスのように見えるが、何千ものテーマがこれに依存しているので今では縛られてしまっており、Jinja2テンプレートでブロックやマクロをレンダリングする方式とは対照的だ
    • フリーランサーを潰すって? この15年間、安い見込み客に対して一番よく言っていたのは、WordPressでサイトを作ってWordPress「専門家」を探してみれば、ということだった
      WordPressは、単純なウェブサイトが必要だと錯覚している予算のない顧客や低価格帯の顧客のために存在しており、そうした単純なサイトという概念自体もすでに過去のものだと思う
    • WPで作業しなければならないなら、ブロック/クラシック版ではなく常にTimberフレームワークを使う
      https://timber.github.io/docs/v2/
    • WordPressの専門家ではまったくないが、ときどき顧客サイトを移行しなければならず、データベース内のシリアライズされたPHPにハードコードされた絶対ファイルシステムパスが埋め込まれていた記憶が鮮明に残っている
      インストールパスが少しでも違う新しいサーバーへ移そうとすると、すぐ壊れた
    • 開発標準を守ると、ユーザーはプラットフォームに縛り付けられない。よりうまく動き管理しやすいCMSへ移ったり、やむなく誰かにお金を払う代わりにホスティングソリューションへ行ったりできる
      残念ながら、そうなると「私たちのプラットフォームは全ウェブサイトの**43.4%**を動かしている」というマーケティング文句に悪影響があるかもしれない
  • 素早い判断と強い意見がコミュニティの一部になってしまったのは残念
    この2〜3か月、WordPress開発をかなりやってみて、ブロック(Gutenberg)が提供するコード分離は素晴らしいと言いたい
    独立したプラグインとして使うか、Advanced Custom Fieldsと併用すれば、HTMLまで100%直接制御できる完全にモジュール式のウェブサイトと開発フロー、つまりデザインシステムを作れる
    WordPressをきちんと理解して学ぶことを誰にでも勧めたい。WordPressとは何の関係もつながりもない

    • まさに今その提案どおりに作業しているが、本番環境で興味深い500エラーに遭遇している
      今日になって突然、GutenbergとACF Blocksがネストしたメディアフィールドのコンテンツ解析をめぐって、どこかで衝突している
      原因は「ユーザーが入れてはいけない画像説明を入れた」ことかもしれないし、「プラグインのグローバルオブジェクトがacf_register_block_type()に渡される別のグローバルオブジェクトを汚染した」ことかもしれない
      すでに怒っている顧客に電話して、素早い判断と強い意見は避けるべきだと言わなければならないかもしれない
    • 判断のほとんどは21年かけて形成されたものだと思う。WordPressは当初、ウェブサイトを素早く簡単に作る方法として名声を得て、その後はセキュリティ上の悪夢という評判を得た
      今はそうではないかもしれないが、懐疑的になるのは当然だ。毎週確認するアップデートではCVEがかなり多く見えるが、すべて低リスクか、ほとんど使われていないプラグインに関するものかもしれない
    • 子どもの頃、最初のプログラミング体験の一つが、WordPressのindex.phpを素朴に開いて動作を理解しようとしたことだった
      ファイル冒頭の「code is poetry」というコメント以外は何も理解できなかった記憶が残っている
      そのおかげでコードに対する考え方が変わり、プログラミングにさらにのめり込むようになった
    • 少し深く入るだけで、WordPressがどれほど混沌としているかすぐに明らかになる
      投稿にメタデータが必要なら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/
    • WordPressをきちんと理解して学ぶための、より良い方法を勧めてもらえるか気になる
      2009〜2011年にプラグインの作成や修正も含めてかなり触ったが、きちんと理解したという感覚はなく、だいたいで理解するか受け入れるだけだった
  • WordPressが好き。人々が自分でインストールし、役に立たず安全でなくバグだらけのプラグインを何十個も入れ、時間が経ってサイトが壊れたら、より安全で堅牢なソリューションの費用を請求できる

    • 2011年にプラグイン順位2位だったsociableプラグインを覗く機会があったが、見たコードの中でも最も脆弱で肥大化した部類だった
      終わらない週末プロジェクトが長引きすぎて公開されてしまったような感じで、巨大なグローバル変数の上を回る5画面分のforループが重複して何かを処理する、といった具合だった
    • プラグインをインストールしたくさせることには確実に成功していた。特にそのUIを前面に出しただけでもそうだし、画像がデフォルトで圧縮されないので、画像を圧縮しろと要求する各種SEO分析ツールとも完璧な同盟関係になる
  • WordPressは「完璧である必要はなく、動きさえすればいい」という考え方の、私の好きな例だ
    多くの素晴らしいプロジェクトは最初の一歩を複雑にしすぎて死ぬ。人々が使い始めれば後からいつでも改善できるが、まずはリリースしなければならない

    • むしろ反対を証明していると思う。WordPressは事実上コードベース全体を公開APIにしてしまい、そのため既存の状態に依存するプラグインのせいで永遠にレガシーコードに縛られ、意味のある改善が難しくなった
      あまりにひどく、PHP言語の開発者でさえ一部の機能や修正を実装できない。WordPressチームがコードを移行しようとせず、WordPressがPHP利用量の大きな塊を占めているからだ
    • 人々がおよそ25年前にWPを使い始めたという事実自体が、「後からいつでも改善できる」への反例ではないかと思う
  • WPは作業の95%には完璧なツールだが、最後の5%を調整するのがとてつもなくもどかしい
    かなり使ってきたし、これほど長く生き残っているのは有用性の証拠だと思う。今後もさらに21年続いてほしい

  • 正直、WordPressが使いやすいと感じたことはない。良いテーマやプラグインを見つけられるうちはバラ色だが、ごく小さなカスタム変更が必要になった瞬間からこじれ始める

    • 自分では平均以上のWeb開発者だと思っていて、友人にWordPressサイトでいくつか直してほしいと言われると、迷わず簡単に変更できると言っていた
      いざサイトやプラグイン/テーマのコード、CSSファイルを開くと、望む効果を出すために何時間も格闘し、たとえ成功してもサイトの別の部分を壊してしまうことがあった
      けなし気味の逸話はさておき、Mattはよくやったし、最後の話も良かった
    • WordPressの初期設定はとても簡単だが、時間が経つと保守が非常に難しくなる
      更新には手動介入が必要で、テーマは修正が必要になり、プラグインは廃止される。こうした負担を受け入れたくなかったので、2017年ごろからすべてのサイトをHugo/Jekyll/MkDocsなどに移した
    • Ghostに移行したが、最初は少し荒削りだったものの、グローバルCLIができてからはかなり良くなった
      ブログならWPよりGhostを使いたいし、PHPよりJSを好むというのもある
  • 複数の人が「私はWordPress開発者です」と言っても、実際にはまったく異なる経験やスキルセットを指しているのが興味深い
    ある人にとっては、WordPressの管理画面でテーマやプラグインをインストールし、ページコンテンツを書くことを意味する
    別の人にとっては、PHPテンプレートでHTMLを書き、WordPressの動作をカスタマイズする昔ながらのPHPコード、つまりクラシックテーマを意味する
    さらに別の人にとっては、DockerやCI/CDとともにJS+Reactを書く新しいブロックテーマを意味する

    • 顧客層を十分に多様に取っていれば、ある人にとってはこのすべてを意味することもある
  • もっと多くの会社がAutomatticのサバティカル制度を導入してほしい
    https://automattic.com/benefits/sabbatical/

    • 米国では年次休暇が2週間なので、3か月のサバティカルがあっても欧州より少ないという点は考慮すべきだ
  • 年を取ったと感じるのは、「WP」を見てWordPressではなくWordPerfect(https://en.wikipedia.org/wiki/WordPerfect)を思い浮かべるときだ
    WordPressは今や最も保守的な国でも成人と認められる年齢になり、WordPerfectは中年の危機の年齢に差しかかっている

    • いまだにWordPerfectが恋しい。MS Wordより好きだったが、最後に使ってから25年が経った
  • WordPressで印象的なのは、Webオタクたちが当然簡単なはずだと期待し、そうでないと怒る点だ
    他のあらゆるものと同じく、WordPressも学ぶ必要があり、それなりの考え方がある
    奇妙な歴史もあるし、特にメディア項目の扱い方は本当に好きではないが、それでも方法論はある
    私がGo、JS、Perl、Java、Ruby、Cを知っていると言いながら、Rustは学ぶのが難しいと怒ったら、当然反論されるだろう
    WordPressは単純なことをしているように見えるが、実際にはかなり広いプラットフォームだ。ドキュメントを少し読む必要があるかもしれない
    Elementorを使っているサイトを引き継いだなら、作った人に簡単な変更方法を聞けば助けてくれるはずだ
    Visual ComposerやDiviを使っているサイトを引き継いだなら、作った人たちを撃ちたくなるほどだ
    Gutenbergが悪いと思うなら、今はまったくそうではない。Diviの時代を思い出すと本当にひどかった

    • 全体のスタイリングにDiviを使っているWebサイトを引き継いだが、これまで見た商用ソフトウェアの中でも最悪に近い
      WordPress上に載ったひどいJavaScript UI実行で少しでもタイムアウトが起きると、ブログ記事を保存するだけでサイト全体が復旧不能な状態になり得る
      イタリア語とフランス語のローカライズは90年代の日本製ゲーム並みにひどく、レスポンシブオプションは、特定のブレークポイントでコンテンツを隠したり表示したりすることをレスポンシブと呼ばない限り、実質的に機能しない
      フロントエンドの「テーマ」はjQuery時代のJavaScriptの読めないダンプに近いため、すべてが極度に脆弱だ
      Elegant Themesが広告に莫大な金を使っていなければ、誰も使わなかっただろうと100%確信している
    • その奇妙な歴史が何なのか気になる