Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ベイビーステップで実現! 地図検索機能のVue2→3移行話/Achieving Baby St...
Search
コドモン開発チーム
October 30, 2024
3
350
ベイビーステップで実現! 地図検索機能のVue2→3移行話/Achieving Baby Steps: Transitioning Map Search Functionality from Vue 2 to Vue 3
コドモン開発チーム
October 30, 2024
Tweet
Share
More Decks by コドモン開発チーム
See All by コドモン開発チーム
フルリモートのその先へ〜パパね、いつも家にいるけどちゃんとこうして働いてるよ〜 / Beyond Full Remote
codmoninc
0
190
多様な働き方を支えるチーム開発カルチャーと 今後の展望 / Team Development Culture Supporting Diverse Workstyles and Future Outlook
codmoninc
0
160
ペアプロ未経験・未知のスキル領域・フルリモートからでも挑戦できる? 40代転職者の実態 / pair-programming-remote-career-change
codmoninc
0
170
EMが「推し本」を語る会〜アジャイルレトロスペクティブズ第2版〜 / recommended-book_agile-retrospectives
codmoninc
0
55
段階的なリプレイスを2年続けていたら、 ユーザーのことで悩めるようになっていた話 / Two Years of Incremental Replacement: How We Finally Started Thinking About Our Users
codmoninc
1
170
自動テストが巻き起こした開発プロセス・チームの変化 / Impact of Automated Testing on Development Cycles and Team Dynamics
codmoninc
3
1.5k
データエンジニアの副業メンバーを受け入れてよかったこと / good points of hiring side job data engineers
codmoninc
0
43
なぜ秘密の比較に hash_equals を使うのか ー内部実装と実践ガイド / why use hash equals for secret comparison internals and practical guide
codmoninc
1
630
「全部書き直す」をしない選択 ー 巨大SPAと同居しながら小さく始めるフレームワーク移行 ー / We Chose Incremental Refactoring Over a Complete Rewrite
codmoninc
0
91
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.8k
Music & Morning Musume
bryan
47
7.1k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
200
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.1k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
800
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
160
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
990
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.9k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Exploring anti-patterns in Rails
aemeredith
2
290
Transcript
2024年10月30日 株式会社コドモン 関根啓子(せきねこ) ベイビーステップで実現! 地図検索機能のVue2→3移行話 Vue Fes Japan 2024 After Night
経歴 2023年8月コドモン入社。 保育施設の園児/職員募集プラットフォーム開発エンジニア。 EM兼務はじめました💪 自己紹介 関根 啓子(せきねこ) 家族構成 夫・長女(5)・長男(3)・猫 休日の楽しみ
クラリネット・クラフトビール 最近のブーム 乾燥納豆
パパママと、子どもとの時間に 1秒でも多くの笑顔と愛情を すべての先生に 子どもと向き合う時間と心のゆとりを 「保育・子育て」と 社会をつなげる 保護者の子育てへの伴走 保育・教育者の環境改善 子育ての社会インフラ作り 子どもを取り巻く環境を
テクノロジーの力で よりよいものに ミッション 私たちの使命
すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、保育・教育施設向けWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。
🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉 Vue Fes Japan 2024 お疲れ様でした!!! 🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉
None
本日のテーマ
よりよい園探しのための園紹介 &見学申し込みサービス こんなプロダクトを開発しています
よりよい園探しのための園紹介 &見学申し込みサービス こんなプロダクトを開発しています
地図です🗾
地図です🗾 • 現在地や自宅など周辺の保育施設が検索できる! • 気になる施設の情報を表示→園見学申込できる!
Vue2→Vue3移行みちのり
• 地図機能リリース当時はVue2専用モジュールで実装 • そのわずか半年後にフロントのNuxt2→3移行対応 はじめに
• 地図表示・操作には GoogleMap を使用 • 使用モジュール ◦ vue3-google-map ◦ @googlemaps/js-api-loader
◦ @types/google.maps はじめに
絞り込み検索との連動 自宅情報の取得 はじめに 「移行」といっても、地図機能やることたくさんあるんだよなぁ… モジュール差し替え GoogleMapsAPIとの疎通 イベント処理 フリーワード検索との連動 ハーフモーダルの取り込み 現在地取得
エラーハンドリング マーカー切替 Options→Composition移行 JS→TS移行
段階的に開発することにした 動かない地図を表示する マーカーをカスタマイズする 地図を動かす ジオコーディングできるようにする
① Nuxt3バージョンアップ対応用に新規リポジトリを作成 ② 1ストーリー(タスク)ごとに新規リポジトリに既存コードを置く ③ コードのエラー・レガシーな部分を直していく 段階的開発を支えたNuxt2→3移行プロセス
④ 受け入れテストを通過したら検証環境にデプロイ ⑤ チーム内デモでフィードバックをもらう ※フィードバックを受けての追加作業は、②以降を繰り返し 段階的開発を支えたNuxt2→3移行プロセス
動かない地図を表示する マーカーをカスタマイズする 地図を動かす ジオコーディングできるようにする
動かない地図を表示する • 地図が出るか? • マーカー出るか? • オプション設定効いているか? • イベントに反応するか? など、最低限&最重要部分を確認
動かない地図を表示する マーカーをカスタマイズする 地図を動かす ジオコーディングできるようにする
• 地図操作イベントを実装 ◦ click, centerChange, zoomChange, etc. • OptionsAPI→CompositionAPIへ
置き換え 地図を動かす
動かない地図を表示する マーカーをカスタマイズする 地図を動かす ジオコーディングできるようにする
マーカーをカスタマイズする • クリックされた施設はアクティブマーカー • それ以外の施設は非アクティブマーカー • 各施設マーカーの選択状態をstoreで管理 アクティブな施設 非アクティブな施設
小噺:マーカーをsvgにしたい
小噺:マーカーをsvgにしたい GoogleMapsドキュメントには「できる」と書いてある
色々試してみた 小噺:マーカーをsvgにしたい
小噺:マーカーをsvgにしたい 色々試してみた
小噺:マーカーをsvgにしたい 色々試してみた
小噺:マーカーをsvgにしたい 色々試してみた
小噺:マーカーをsvgにしたい 色々試してみた
小噺:マーカーをsvgにしたい 色々試してみた
小噺:マーカーをsvgにしたい 色々試してみた
小噺:マーカーをsvgにしたい つまり、これは…
結果、見送り 😭 小噺:マーカーをsvgにしたい • 影や白抜きなどpathのみで表現できない マーカーは色を変えられない • 色を変えられたとて「この色=この施設種別」
という情報はユーザーにとって認知負荷
動かない地図を表示する マーカーをカスタマイズする 地図を動かす ジオコーディングできるようにする
ジオコーディングできるようにする • 地図表示・操作に直接関わらない処理 には別モジュールを使用 ◦@googlemaps/js-api-loader • TS 用の型ライブラリも使用 ◦@types/google.maps
🚀 地図機能のVue3移行DONE!🚀
• ストーリー(タスク)を小さく分割 ◦ 優先度(重要度)高い仕様から実現 ◦ 時間は有限!提供価値は増やす・手戻り範囲は減らす • ペア・モブプロ作業を本格導入 ◦ 各メンバーの知識・経験を総動員
◦ 常に壁打ち・レビューできる相手がいる安心感 移行を後押した取り組み バーチャルオフィスツールで会話→
価値 • コミュニケーション • シンプルさ • フィードバック • 勇気 •
リスペクト 原則 • 人間性:みんなが自分らしくいられるチームで • ふりかえり:起きたことから学んで、再現性を ハンドリング • ベイビーステップ:小さく始める、小さく進める など プラクティス • 受け入れテスト • 持続可能なペース • TDD • ペアプログラミング など 価値・原則を意識しながらプラクティスを実行することで、「価値を体現できている状態」へ 開発手法 XP(エクストリーム・プログラミング)に則り、 アジャイルなチームを目指す
余談 Dynamic MapsとStatic Mapsは利用料金が異なる ◦ Dynamic Maps… $700 (100,000req) ◦
Static Maps…… $200 (100,000req) Dynamic Maps Static Maps
さいごに
コドモンでのアジャイル開発 なぜXPを導入し、どう実践しているのか お話しします!
コドモン採用ページ コドモンでは一緒に働きたい仲間を募集しています! せきねこの カジュアル面談
Thank you!
None