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
ゴミ分別チェッカー 発表資料
Search
Haruki Yoshida
July 28, 2024
0
25
ゴミ分別チェッカー 発表資料
エンジニアイベントに参加した際の、登壇資料
Haruki Yoshida
July 28, 2024
Tweet
Share
More Decks by Haruki Yoshida
See All by Haruki Yoshida
Docker再入門 ~コンテナ・イメージ編~
yoshiyoshiharu
27
10k
トランザクションに歩み寄る ~はじめの第1歩編~
yoshiyoshiharu
6
2.7k
曳光弾型開発のススメ
yoshiyoshiharu
2
610
なぜfloatで丸め誤差が生じるのか ~decimalとの違いを理解しよう~
yoshiyoshiharu
2
1.2k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
221
8.8k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
104
48k
Designing with Data
zakiwarfel
98
5.1k
A designer walks into a library…
pauljervisheath
201
24k
Optimising Largest Contentful Paint
csswizardry
31
2.8k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Unsuck your backbone
ammeep
667
57k
Creatively Recalculating Your Daily Design Routine
revolveconf
216
12k
How to Ace a Technical Interview
jacobian
274
23k
Designing for humans not robots
tammielis
248
25k
Robots, Beer and Maslow
schacon
PRO
157
8.2k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
158
15k
Transcript
ゴミの品目を選択し、ゴミの捨て方を表示 地域を選択し、ゴミの回収日をカレンダーで表示 ゴミ分別チェッカー 制作物 ※ 文京区限定
こんな場面ありませんか? ゴミの捨て方は地域ごとに異なるし、調べるのが面倒。 捨て方がわからない 回収日がわからない 住んでいる地域のゴミの収集日を素早く知りたい。 制作の背景 家にあるゴミの...
アプリケーション バッチ処理 東京都オープンデータ Slack RDS Lambda レコード挿入 React Vercel インフラアーキテクチャ
Lambda API Gateway 結果通知 ひらがな化API CSVを取得
API一覧 使用したオープンデータ ごみと資源の分別品目(文京区) ごみと資源の収集日(文京区) 作成したAPI エリア一覧 品目一覧 https://catalog.data.metro.tokyo.lg.jp/dataset/t131059d0110060002 https://catalog.data.metro.tokyo.lg.jp/dataset/t131059d0110060001 エリアの回収日一覧
GET /areas GET /items GET /area_collect_dates?area_id=1&year=2023&month=7
ディレクトリ構成 レイヤードアーキテクチャを意識 handler service repository entity テストが書きやすくなった 変更時の影響範囲が特定しやすかった
工夫した点① 品目名の表記揺れに対応 「鍵」 => 「かぎ」や「カギ」ではマッチせず、検索しづらい 「鍵」「かぎ」「カギ」「kagi」で検索できるようにする ①itemsテーブルにname_kanaカラムを追加 ②バッチ処理でひらがな化APIを叩き、ひらがな化した品目名を挿入 ③フロントエンドで入力した文字列をnameまたはname_kanaカラムで検索する
工夫した点② バッチ処理の高速化 品目データを挿入するバッチ処理に約5分かかっていた。 バッチ処理の時間が約10秒にまで短縮 ①CSVの行ごとにレコードをINSERTしていた ②CSVの行ごとにひらがな化APIを叩いていた ①挿入データを構造体の配列に格納し、bulk insert (5m →
2m20s) ②go routineでひらがな化APIを叩く処理を並行化 (2m20s → 10s) - API側の負荷を下げるために、セマフォを用いて並行処理数を制御 (レコード数: 867) ※ 約870レコード ※ 約150ms / 行 ※ 約130ms / 行