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
地方公共団体コードを便利に扱うためのGemを作った
Search
ikuma-t
January 20, 2022
Programming
1
980
地方公共団体コードを便利に扱うためのGemを作った
K-Ruby#28、LT会の登壇資料です
ikuma-t
January 20, 2022
Tweet
Share
More Decks by ikuma-t
See All by ikuma-t
Make Impossible States Impossibleを 意識してReactのPropsを設計しよう
ikumatadokoro
0
880
いまさらのStorybook
ikumatadokoro
0
760
これで最後にしたい! Astroと立ち向かう 6度目の個人ブログ再開発
ikumatadokoro
5
1.8k
Panda CSS と Ark UI ではじめる個人開発
ikumatadokoro
4
2.5k
見た目から始める生産性向上
ikumatadokoro
11
5.9k
ぼくが 美容師さんに伝えたかった バンドの話
ikumatadokoro
0
280
Railsアプリをコスパよく読むための環境整備
ikumatadokoro
2
1.2k
HTTPを手で書いて学ぶ ファイルアップロードの仕組み
ikumatadokoro
80
31k
たどころくん1号を支える技術
ikumatadokoro
1
300
Other Decks in Programming
See All in Programming
Server Side Kotlin Meetup vol.16: 内部動作を理解して ハイパフォーマンスなサーバサイド Kotlin アプリケーションを書こう
ternbusty
3
260
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
1
100
Amazon Verified Permissions実践入門 〜Cedar活用とAppSync導入事例/Practical Introduction to Amazon Verified Permissions
fossamagna
2
100
組込みだけじゃない!TinyGo で始める無料クラウド開発入門
otakakot
2
380
Google Opalで使える37のライブラリ
mickey_kubo
3
160
AI 駆動開発におけるコミュニティと AWS CDK の価値
konokenj
5
290
Go言語はstack overflowの夢を見るか?
logica0419
0
650
オープンソースソフトウェアへの解像度🔬
utam0k
17
3.2k
TransformerからMCPまで(現代AIを理解するための羅針盤)
mickey_kubo
7
5.7k
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
120
TFLintカスタムプラグインで始める Terraformコード品質管理
bells17
2
480
ネストしたdata classの面倒な更新にさようなら!Lensを作って理解するArrowのOpticsの世界
shiita0903
1
170
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
630
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
640
Balancing Empowerment & Direction
lara
5
700
Faster Mobile Websites
deanohume
310
31k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
31
2.7k
Facilitating Awesome Meetings
lara
57
6.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.1k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
The World Runs on Bad Software
bkeepers
PRO
72
11k
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Transcript
2022.01.20 ikuma-t 地方公共団体コードを 便利に扱うためのGemを作った #はじめてのGem K-Ruby#28
ikuma-t ・FJORD BOOT CAMPで学習中です! ・趣味:ツール・自動化、ドット絵、作曲家巡り ・住んでいるところ:千葉県 ・今年のお正月は鹿児島黒牛の牛しゃぶを食べました@千葉 K-Ruby 初参加です
@ikuma-t ikuma-t セットプチフォッカ ikuma-t IkumaTadokoro 自己紹介
地方公共団体コードを 便利に扱うためのGemを作った話 今回話すこと
つくったもの「jp_local_gov」 日本の地方公共団体コードと市区町村の情報を変換できるGem ・鹿児島県 ・鹿児島市 ・県庁あり 市区町村情報 jp_local_gov 4 6 2
0 1 2 地方公共団体コード 地方公共団体コード 市区町村にわりふられた一意のコード 都道府県 市区町村 検査数字
なんで作った?
現在開発中のサービスで 必要だったから!!
None
市区町村ごとにレコードを持たないといけない 市区町村情報をメンテするのはダルい
Gemで情報を持てたらよさそう →作ってみるか!
なにができるの?
できること(地方公共団体コードと自治体情報の変換) JpLocalGov.find id(地方公共団体コード)検索を行う @param code[String] @return [JpLocalGov::LocalGov] JpLocalGov.where 条件検索(複数の場合AND)を行う @param
condition[Hash] @return [Array]
できること(Railsで使用する) local_government includeされると、引数で指定したカラムに対して、 local_governmentメソッドが使用可能になる このメソッドを経由して、以下の情報を表示できる ・都道府県 ・市区町村 ・都道府県庁所在地かどうか 【テーブル定義】 insurance_fees
・id: integer ・local_gov_code: string
できること(その他) 【テーブル定義】 insurance_fees ・id: integer ・local_gov_code: string ・コードが有効かどうかのチェック(バリデーション用) ・ランダムな地方自治体情報の生成(テストデータ用) ・すべての自治体情報を返す(セレクトボックス用)
...詳しくはリポジトリのREADMEを参照 使いそうなメソッドは順次追加中
くふうしたところ
データ更新処理の自動化 このGemで一番重要な、地方公共団体データの更新処理を自動化 総務省HP 地方公共団体 コード GitHub Actions(月1) ... 北海道 青森県
沖縄県 sqlite3 ソートと 分割 差分あり →PR作成 チェック してマージ
RBS対応 ・デフォルトでもスケルトンを作成するように なったのでこのGemでも対応 ・CIでSteepを実行して、型チェック https://bit.ly/3Kec8sB
Gemをつくってみた感想
感想:はじめてのGemをつくってみて ・作り手になることで、OSSがより身近になった ・今まで機能しか見ていなかったところから、それ以外の構成とか、 その先にいるメンテナの労力が、少しだけわかるようになった ・もっと力をつけてOSSに貢献できるよう、今年もがんばりたい
ありがとうございました