Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MTDDC Meetup TOKYO 2024 / フロントエンドエンジニアの成長に繋がるCMS設計

Chinen
November 23, 2024

MTDDC Meetup TOKYO 2024 / フロントエンドエンジニアの成長に繋がるCMS設計

MTDDC Meetup TOKYO 2024の登壇資料です。

フロントエンドエンジニアの成長に繋がるCMS設計

Chinen

November 23, 2024
Tweet

More Decks by Chinen

Other Decks in Programming

Transcript

  1. 株式会社TAM/TAMTO:フロントエンドエンジニア 兼 個人事業主 知念 昌史 / まぁし X @chocodogmagic •

    Vue.js / Nuxt / Next.js / セマンティックHTML / PWA / アクセシビリティ • コミュニティ運営(沖縄)v-okinawa (東京)PWA Night、MT東京、CSS福笑い • 平日 9:00〜おはようエンジニア #ohayo_engineer(820回くらい) ◦ X(旧Twitter)スペースでWeb関連のラジオ発信中、フォローしてね • ゲーム好き ◦ スプラトゥーン3(トライストリンガー/ハイドラント XP2050) ◦ ポケモンSV スカーレット 2
  2. 特徴の違い(最終的にできることはほぼ同じ) • Movable Type ◦ MTタグ(MTML)と呼ばれるような独自タグがありHTMLに含めて使える ◦ 投稿したコンテンツはHTMLとして静的(Static)に生成する ◦ 生成のために再構築という処理が必要

    • WordPress ◦ PHPで動いており、ページにアクセス時にサーバー側でHTMLを組み立てて表示する ◦ OSSでありテーマやプラグインが豊富 • microCMS ◦ Headless CMS(デザインテンプレートを持たない)でコンテンツのみを管理する ◦ API経由でデータのやりとりを行う 12
  3. 技術スタックの違い(必要最低限) • Movable Type ◦ HTML/CSS ◦ MTタグ、MTテンプレート • WordPress

    ◦ HTML/CSS ◦ PHP • microCMS ◦ HTML/CSS ◦ JavaScript、TypeScript、JSフレームワーク(Nuxt/Next.jsなど) ◦ ビルドツールの理解 13
  4. Movable Type WordPress Headless CMS セキュリティ・低い攻撃リスク 高パフォーマンス(表示速度) 動的処理、リアルタイムに表示を 切り替えられる セキュリティ・低い攻撃リスク

    高パフォーマンス(表示速度) クラウド版、パッケージ版、 エンタープライズ版が選べる テーマ、プラグインが充実 JavaScriptに集中できる 公式サポート 開発が早い、シンプルなブログは 実装できる人が多い コンポーネント開発の恩恵 若手からの人気 APIがある(Data API) APIがある(REST API) APIがある 要件に合うか考えよう(ちょっといいとこ) 15
  5. Movable Type WordPress Headless CMS MTテンプレートタグの理解が必要 PHP、WordPress関数、テーマの 理解が必要 ReactやVue.js等のJavaScript (TypeScript)、FetchやAPIの理解

    コンテンツが増えると再構築に時 間がかかる カスタムブロックをReactで作るレ ベルになると難易度が上がる 基本的に実装の難易度が高い、 作れる人が少ない 詳しい若手が少ない いろいろな構築パターンが生まれ てしまう フレームワークのバージョンアップ による負荷 費用面:初期コスト(パッケージ版) / 運用費(クラウド版) 費用面:アップデートコスト、保守コ スト 費用面:ホスティング・ビルド環境 が必要で運用費が高め 要件に合うか考えよう(ちょっと大変なとこ) 16
  6. CMSの選定 • サイト規模 • 更新頻度 • リアルタイム性 • 記事編集者のリテラシー、経験 •

    サーバー等のインフラ環境 ヒアリングが大事 作りたいものはもちろん、運用方法までイメージしておく 17
  7. CMS選定がスキルに影響するかもしれない • Web制作を極めたい → Movable Type ◦ Webサイトを安定して作れる、バックエンドを意識しなくて良い ◦ 小規模〜大規模まで網羅可能

    • フロントエンド・バックエンドを幅広くスキルアップしたい → WordPress ◦ HTML/CSSでUIのスキルアップ ◦ PHPのテンプレート構築でバックエンドの言語も学べる • フロントエンドに特化したい → Headless CMS ◦ JavaScriptが鍛えられる ◦ TypeScriptによる静的型付けやビルド・バンドルツール周りの理解が深まる 19
  8. CMSの選定 • サイト規模 • 更新頻度 • リアルタイム性 • 記事編集者のリテラシー、経験 •

    サーバー等のインフラ環境 ヒアリングが大事 作りたいものはもちろん、運用方法までイメージしておく 31
  9. CMSの選定 • サイト規模 • 更新頻度 • リアルタイム性 • 記事編集者のリテラシー、経験 •

    サーバー等のインフラ環境 ヒアリングが大事 作りたいものはもちろん、運用方法までイメージしておく 32
  10. WebサイトのMovable Typeの構成例 DB + CMS → HTMLやファイル生成 エンジニアがMTにログインして テンプレートを更新 Web担当者がMTにログインして

    ページ更新 更新情報をデータベースに保存し、 再構築によりファイル生成する データベース 34
  11. WebサイトのJamstack 構成例(SSG) Headless CMS + Webフレームワーク → GitHub Actions →

    S3/CloudFront エンジニアがコードを更新 
 (git push)
 Web担当者がページ更新 
 (Webhook)
 GitHub Actionsでbuildコマンド実行 
 SSGでファイル生成してS3へ転送 
 S3に静的ファイル設置 
 CDN(Cloudfront)で配信 
 35
  12. WebサイトのJamstack 構成例(SSR/ISR) Headless CMS + Webフレームワーク → Vercel エンジニアがコードを更新 


    (git push)
 リポジトリの更新でbuildコマンド実行 
 Node.jsでサーバーを立てて処理をする 
 CDNで配信
 キャッシュの制御
 Web担当者がページ更新 
 (Webhook)
 36
  13. Webアプリケーション 構成例(SSR/CSR) Headless CMS + Webフレームワーク → Vercel エンジニアがコードを更新 


    (git push)
 データベース
 コンテンツ・ユーザー情報 
 リポジトリの更新でbuildコマンド実行 
 Node.jsでサーバーを立てて処理をする 
 CDNで配信
 キャッシュの制御
 37