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

AI時代のフロントエンド開発には、仕様書に載らない情報の言語化が重要ではないだろうか

Avatar for Jun Jun
September 24, 2025
620

 AI時代のフロントエンド開発には、仕様書に載らない情報の言語化が重要ではないだろうか

LayerX Web Frontend Night資料

Avatar for Jun

Jun

September 24, 2025
Tweet

Transcript

  1. © LayerX Inc. 5 Structured communication is the bottleneck ‧The

    New CodeというプレゼンでOpenAIのSean Grove⽒が述べた⾔葉 ‧今後、AIがコード⽣成を担うようになるにつれて、ボトルネックとなるのは、  コードを書くことではなく、開発プロセス全体を整理‧構造化すること  ‧なぜそれを作るのか?  ‧どのように仕様を決めたのか?(チームでの議論)  ‧できたものが意図した通りに動いているか? 👉こうした「⼈間のコミュニケーションを整理して記録する」がAIとの開発では⼤事
  2. © LayerX Inc. 13 簡単にはいかなかった ‧仕様はそれっぽいが、網羅性もなく微妙なものが出来上がった  ‧よく分からないAIっぽい⾔葉選びや表現  ‧スクショがないので画⾯のイメージがしづらい → このままだとQAに渡せない

    ‧GitHubのプルリクは、開発初期のPRが⼊ってむしろノイズになってしまった ※プロンプト修正、cc-sddなどをもっと活⽤して改善できそうなことは多い
  3. © LayerX Inc. 14 テストの⾃動⽣成もやってみた  Shortestという⾃然⾔語からテストを⽣成できるツールを使ってみた // 請求書一覧の最初の請求書をクリックする shortest("/invoices ページで、一覧の一番上の請求書をクリックする

    "); // 「請求メモ」に入力する shortest("「請求メモ」と書かれた入力欄をクリックする "); shortest("「これは請求メモです」と入力する "); // 「下書き保存」ボタンをクリックする shortest("「下書き保存」ボタンをクリックする ");
  4. © LayerX Inc. 20 仕様書でカバーできないものとは ‧仕様書でカバーできないものはフロントエンドに多い  ‧marginやpadding (例:なぜここは1remではなく2remのmargin-top?)  ‧アクセシビリティ ‧開発過程の議論

     ‧なぜここのボタンは右寄せにしたのか  ‧なぜこのテーブル「メモ‧ラベル」カラムは2つに分けずに1カラムなのか  ‧当初のデザインからなぜ変更されたのか 👉 こうした仕様書やコードベースに載りにくい、でもフロントエンドエンジニアが知って  いる背景がたくさんある
  5. © LayerX Inc. 24 具体的にどう⾔語化するか 2. アクセシビリティ ‧PlaywrightでアクセシビリティツリーのJSONを出⼒させる ‧できればDOMのスナップショットと近い場所に置く   

    const a11ySnapshot = await page.accessibility.snapshot(); { "role": "WebArea", "name": "ログイン", "children": [{ "role": "text", "name": "メールアドレス/ログインID" }, … ] }
  6. © LayerX Inc. 26 例 /z/settings/representativeSettingsPage.md これは「代表入金先設定機能」のメモである。似ているページは「◯◯設定」と「◯◯設定」ページ。 開発過程での議論: - 新規作成ボタンは他の設定ページと違って左に寄せている。その理由は◯◯

    - 他の設定ページを作る場合は、このページのボタンの UIに沿わない方が良さそう メモ: - そういえばdivタグでとりあえず実装してしまったけど、 sectionタグ使うべきだった - そのうちモーダルは共通化した方がいいかも - このモーダルのFormの項目増えたら負債になりそう