- UIT × Bonfire Front-end Meetup #1に参加してきました
- 2023/12/11
- https://uit.connpass.com/event/300284/
社内ツールから生まれたOSS "ts-remove-unused" によるフロントエンド開発の効率化と品質の向上
- 鴻巣和司さん
ts-remove-unused
- https://github.com/line/ts-remove-unused
- export付いてるのに利用されてないコードを削除してくれる
- exportがなければlintでき付けるけどexportあると気づきづらい
- なぜ作ったか
- コンポーネントライブラリを置き換える時にデッドコードが大量に発生した
- 依存関係をたどる必要があり簡単に削除できない
- 構文の解析
- 振り返って
- 全部のケースをカバーできなくても手動でやるより効率化できた
ヤフーのユーザー 5,400 万人から"同意"を得るための技術
- 今谷祐通さん
プライバシーポリシーの同意モジュール
- 合併に際して新しいポリシーの同意画面のSDKを作った
- 苦労した点
- 影響度
- ヤフーサービス利用者5400万人
- サービスの利用体験に影響する
- 広告に影響が内容シビアな速度
- 法的/ビジネス的影響度
- 対象範囲
- 様々なOS/ブラウザ/通信環境
- 数千万台のデバイスで安定動作が必要
- 1つのミスや考慮不足が致命的な問題に
- シェア0.1%でも無視できない
- 保守性
- 開発後は案件先の担当者だけで運用できるように
- エラーコードを細かく整備
- コードを見ただけでどこでどんなエラーが起きたか分かるように
- 開発後は案件先の担当者だけで運用できるように
- 影響度
管理画面向けUIコンポーネントの設計 - Web componentsでフレームワーク非依存を目指す
- Tamada Akihiro (spring-raining)さん
既存プロジェクトへのCSSフレームワーク導入
- LINE公式アカウントの管理画面
- Vueファイル2600超え
- 機能が多岐だが利用頻度はまちまち
- 特定ユーザ向けの画面がたくさんある
- Bootstrap4をカスタマイズした独自ライブラリ
- 問題なく使えてるがCSSへのパッチが増えていき変更困難に
- Tailwindへの移行を徐々に
- BootstrapのckassがTailwindと重複するのでprefixつけたり
- TailwindはユーティリティなのででCSSフレームワークを作ろうとするとUIコンポーネントを作る必要がある
- 今後他の画面でも使われるかもしれないのでVue依存はダメ
- WebComponentsで作ろうか
WebComponents
- フレームワークに依存しないUIコンポーネントを提供できる
- ShadowDOMでスコープ分離できる
- いろいろ問題が
- WebComponentsの開発
- litを使ってる
- ClassベースなのがFE開発とコンテキストスイッチを切り替える必要あり
- litのmixinがTS対応が難しい
- Zag
- https://zagjs.com/
- UIコンポーネント実装のためのライブラリ
- ArkやPandaCSSはZagベース
- FWに依存しない実装でReact/Vue/Solidに対応
- litにも対応可能
- Classベースではない
- ステートマシンで状態管理を抽象化できる
- WebComponentsからの脱却も見据えることができる
- custom-element-manifest
- SSR対応
まとめ
- WebComponentsはFW非依存の選択肢としてはよい
- Zagによるふるまいの分離がいい
- 将来を考えたエスケープハッチが重要
Web Componentsを使ったUIコンポーネント
リニューアルで学んだ通説の捉え方
- 長内創太郎さん