Slide 1

Slide 1 text

2024年10月30日 株式会社コドモン 関根啓子(せきねこ) ベイビーステップで実現! 地図検索機能のVue2→3移行話 Vue Fes Japan 2024 After Night

Slide 2

Slide 2 text

経歴 2023年8月コドモン入社。 保育施設の園児/職員募集プラットフォーム開発エンジニア。 EM兼務はじめました💪 自己紹介 関根 啓子(せきねこ) 家族構成 夫・長女(5)・長男(3)・猫 休日の楽しみ クラリネット・クラフトビール 最近のブーム 乾燥納豆

Slide 3

Slide 3 text

パパママと、子どもとの時間に 1秒でも多くの笑顔と愛情を すべての先生に 子どもと向き合う時間と心のゆとりを 「保育・子育て」と 社会をつなげる 保護者の子育てへの伴走 保育・教育者の環境改善 子育ての社会インフラ作り 子どもを取り巻く環境を テクノロジーの力で よりよいものに ミッション 私たちの使命

Slide 4

Slide 4 text

すべての先生に 子どもと向き合う 時間と心のゆとりを こんなプロダクトを開発しています メインプロダクトは、保育・教育施設向けWebアプリケーション。 保護者と施設のやり取りを支えるモバイルアプリケーションや、施設職員向けモバイル版 アプリケーション、外部サービスと連携するAPIなども開発しています。

Slide 5

Slide 5 text

🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉 Vue Fes Japan 2024 お疲れ様でした!!! 🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉🎉

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

本日のテーマ

Slide 8

Slide 8 text

よりよい園探しのための園紹介 &見学申し込みサービス こんなプロダクトを開発しています

Slide 9

Slide 9 text

よりよい園探しのための園紹介 &見学申し込みサービス こんなプロダクトを開発しています

Slide 10

Slide 10 text

地図です🗾

Slide 11

Slide 11 text

地図です🗾 ● 現在地や自宅など周辺の保育施設が検索できる! ● 気になる施設の情報を表示→園見学申込できる!

Slide 12

Slide 12 text

Vue2→Vue3移行みちのり

Slide 13

Slide 13 text

● 地図機能リリース当時はVue2専用モジュールで実装 ● そのわずか半年後にフロントのNuxt2→3移行対応 はじめに

Slide 14

Slide 14 text

● 地図表示・操作には GoogleMap を使用 ● 使用モジュール ○ vue3-google-map ○ @googlemaps/js-api-loader ○ @types/google.maps はじめに

Slide 15

Slide 15 text

絞り込み検索との連動 自宅情報の取得 はじめに 「移行」といっても、地図機能やることたくさんあるんだよなぁ… モジュール差し替え GoogleMapsAPIとの疎通 イベント処理 フリーワード検索との連動 ハーフモーダルの取り込み 現在地取得 エラーハンドリング マーカー切替 Options→Composition移行 JS→TS移行

Slide 16

Slide 16 text

段階的に開発することにした 動かない地図を表示する マーカーをカスタマイズする 地図を動かす ジオコーディングできるようにする

Slide 17

Slide 17 text

① Nuxt3バージョンアップ対応用に新規リポジトリを作成 ② 1ストーリー(タスク)ごとに新規リポジトリに既存コードを置く ③ コードのエラー・レガシーな部分を直していく 段階的開発を支えたNuxt2→3移行プロセス

Slide 18

Slide 18 text

④ 受け入れテストを通過したら検証環境にデプロイ ⑤ チーム内デモでフィードバックをもらう   ※フィードバックを受けての追加作業は、②以降を繰り返し 段階的開発を支えたNuxt2→3移行プロセス

Slide 19

Slide 19 text

動かない地図を表示する マーカーをカスタマイズする 地図を動かす ジオコーディングできるようにする

Slide 20

Slide 20 text

動かない地図を表示する ● 地図が出るか? ● マーカー出るか? ● オプション設定効いているか? ● イベントに反応するか? など、最低限&最重要部分を確認

Slide 21

Slide 21 text

動かない地図を表示する マーカーをカスタマイズする 地図を動かす ジオコーディングできるようにする

Slide 22

Slide 22 text

● 地図操作イベントを実装 ○ click, centerChange, zoomChange, etc. ● OptionsAPI→CompositionAPIへ    置き換え 地図を動かす

Slide 23

Slide 23 text

動かない地図を表示する マーカーをカスタマイズする 地図を動かす ジオコーディングできるようにする

Slide 24

Slide 24 text

マーカーをカスタマイズする ● クリックされた施設はアクティブマーカー ● それ以外の施設は非アクティブマーカー ● 各施設マーカーの選択状態をstoreで管理 アクティブな施設 非アクティブな施設

Slide 25

Slide 25 text

小噺:マーカーをsvgにしたい

Slide 26

Slide 26 text

小噺:マーカーをsvgにしたい GoogleMapsドキュメントには「できる」と書いてある

Slide 27

Slide 27 text

色々試してみた 小噺:マーカーをsvgにしたい

Slide 28

Slide 28 text

小噺:マーカーをsvgにしたい 色々試してみた

Slide 29

Slide 29 text

小噺:マーカーをsvgにしたい 色々試してみた

Slide 30

Slide 30 text

小噺:マーカーをsvgにしたい 色々試してみた

Slide 31

Slide 31 text

小噺:マーカーをsvgにしたい 色々試してみた

Slide 32

Slide 32 text

小噺:マーカーをsvgにしたい 色々試してみた

Slide 33

Slide 33 text

小噺:マーカーをsvgにしたい 色々試してみた

Slide 34

Slide 34 text

小噺:マーカーをsvgにしたい つまり、これは…

Slide 35

Slide 35 text

結果、見送り 😭 小噺:マーカーをsvgにしたい ● 影や白抜きなどpathのみで表現できない   マーカーは色を変えられない ● 色を変えられたとて「この色=この施設種別」   という情報はユーザーにとって認知負荷

Slide 36

Slide 36 text

動かない地図を表示する マーカーをカスタマイズする 地図を動かす ジオコーディングできるようにする

Slide 37

Slide 37 text

ジオコーディングできるようにする ● 地図表示・操作に直接関わらない処理   には別モジュールを使用 ○@googlemaps/js-api-loader ● TS 用の型ライブラリも使用 ○@types/google.maps

Slide 38

Slide 38 text

🚀 地図機能のVue3移行DONE!🚀

Slide 39

Slide 39 text

● ストーリー(タスク)を小さく分割 ○ 優先度(重要度)高い仕様から実現 ○ 時間は有限!提供価値は増やす・手戻り範囲は減らす ● ペア・モブプロ作業を本格導入 ○ 各メンバーの知識・経験を総動員 ○ 常に壁打ち・レビューできる相手がいる安心感 移行を後押した取り組み バーチャルオフィスツールで会話→

Slide 40

Slide 40 text

価値 ● コミュニケーション ● シンプルさ ● フィードバック ● 勇気 ● リスペクト 原則 ● 人間性:みんなが自分らしくいられるチームで ● ふりかえり:起きたことから学んで、再現性を  ハンドリング ● ベイビーステップ:小さく始める、小さく進める                    など プラクティス ● 受け入れテスト ● 持続可能なペース ● TDD ● ペアプログラミング         など 価値・原則を意識しながらプラクティスを実行することで、「価値を体現できている状態」へ 開発手法 XP(エクストリーム・プログラミング)に則り、 アジャイルなチームを目指す

Slide 41

Slide 41 text

余談 Dynamic MapsとStatic Mapsは利用料金が異なる ○ Dynamic Maps… $700 (100,000req) ○ Static Maps…… $200 (100,000req) Dynamic Maps Static Maps

Slide 42

Slide 42 text

さいごに

Slide 43

Slide 43 text

コドモンでのアジャイル開発 なぜXPを導入し、どう実践しているのか お話しします!

Slide 44

Slide 44 text

コドモン採用ページ コドモンでは一緒に働きたい仲間を募集しています! せきねこの カジュアル面談

Slide 45

Slide 45 text

Thank you!

Slide 46

Slide 46 text

No content