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

microCMSのリッチエディタ開発:設計・品質・使いやすさの実現手法

 microCMSのリッチエディタ開発:設計・品質・使いやすさの実現手法

PRTIMES.DEVのエディター勉強会で話した内容です。
https://prtimes.connpass.com/event/358977/

Avatar for microCMS

microCMS

July 28, 2025
Tweet

More Decks by microCMS

Other Decks in Technology

Transcript

  1. tiptapを採用 技術選定 7 #prtimes_editor • Headless WYSIWYG Editor • ProseMirrorベースで拡張がしやすい

    • スタイルはUIは独自に拡張できる バックエンド • DynamoDB • Node.js
  2. 設計 10 #prtimes_editor 管理画面 backend コンテンツAPI DynamoDB JSON JSON HTML

    GET API POST API JSON, HTML 管理画面 ※簡略化したもの、実際とは異なる箇所があります
  3. 設計2年間運用してどうだった? 設計 11 #prtimes_editor • DynamoDBの入出力・最終的なHTMLレスポンスのテスト戦略が大事(後述) • tiptap-extensionとDynamoDB特有の考慮事項 ◦ tiptap-extensionの

    ...parent()で全てのプロパティを継承するとJSONサイ ズが肥大するので400MB制限に影響がある。 ◦ 拡張機能をむやみに使わない、必要なプロパティのみを使用するなどソース コードから検討する必要がある。 ◦ 「拡張機能をむやみに使わない」というのは運用負荷を下げる観点でも大事 ▪ 時にはProsemirrorで自分で書くという選択肢を持っておく
  4. 品質 13 #prtimes_editor 管理画面 backend コンテンツAPI DynamoDB JSON JSON HTML

    GET API POST API JSON, HTML 管理画面 ※簡略化したもの、実際とは異なる箇所があります
  5. 品質 15 #prtimes_editor 管理画面 backend コンテンツAPI DynamoDB JSON JSON HTML

    GET API POST API JSON, HTML 管理画面 ※簡略化したもの、実際とは異なる箇所があります
  6. コンテンツAPI全体の検証は外形監視(Checkly)で実行 品質 16 #prtimes_editor • Checklyでの外形監視 https://www.checklyhq.com/ • コードベースで実装できる(Playwright風にも書ける) •

    tiptapの入出力+アプリケーション実装の全体を検証している • 信頼性がある一方、カバレッジを計測できていない、担保できていないという課題 あり
  7. 品質 17 #prtimes_editor 管理画面 backend コンテンツAPI DynamoDB JSON JSON HTML

    GET API POST API JSON, HTML 管理画面 ※簡略化したもの、実際とは異なる箇所があります
  8. 品質 20 #prtimes_editor 管理画面 backend コンテンツAPI DynamoDB JSON JSON HTML

    GET API POST API JSON, HTML 管理画面 ※簡略化したもの、実際とは異なる箇所があります
  9. テスト2年間運用してどうだった? 品質 • 全体的にテスト戦略の見直しが必要だと感じています。 • 課題:ユニットテスト時間の増加 • E2Eテストで担保できるケースが多いので、tiptapクラアントを使ったテストは削 減・移行しています。 •

    バックエンドと同様に入出力(HTML→JSON)のアウトプットを検証するテスト を追加しています。 • バックエンド ◦ カバレッジを担保するためDynamoDBをdumpしてテストする方法を検討中 22 #prtimes_editor