Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
地方公共団体コードを便利に扱うためのGemを作った
ikuma-t
January 20, 2022
Programming
1
220
地方公共団体コードを便利に扱うためのGemを作った
K-Ruby#28、LT会の登壇資料です
ikuma-t
January 20, 2022
Tweet
Share
More Decks by ikuma-t
See All by ikuma-t
BEYOND THE RELEASE(K-Ruby Edition)
ikumatadokoro
1
38
Steepで使えるコマンドを見てみよう
ikumatadokoro
1
220
初心者が地方公共団体コードを扱うためのGemを作った話
ikumatadokoro
6
1k
進捗感を得るためのログ駆動開発
ikumatadokoro
2
400
PowerQuery入門
ikumatadokoro
3
900
初心者こそ!RubyMineで始めよう!
ikumatadokoro
1
3.2k
Other Decks in Programming
See All in Programming
You CANt teach an old dog new tricks
michaelbukachi
0
120
競プロへの誘 -いざな-
u76ner
0
380
全国の中高生がプログラミングを学んでいるCloud9環境の仕組み@JAWS-UG_SRE支部_#3
asache3
0
130
roadmap to rust 2024
matsu7874
1
910
Introducing Kotlin Multiplatform in an existing project | Kotlin Dev Day Amsterdam
prof18
0
310
Let's build components, not layers
thombergs
1
240
Becoming an Android Librarian
skydoves
3
490
Let's make a contract: the art of designing a Java API
mariofusco
0
160
Node.js 最新動向 TFCon 2022
yosuke_furukawa
PRO
6
3k
既存画面の Jetpack Composeでの書き換え: FAANSでの事例紹介 / Case study of rewriting existing screens with Jetpack Compose
horie1024
0
360
マイクロサービスプラットフォーム向け負荷試験基盤の初期リリースを終えた話
yuyu_hf
PRO
1
490
Airflow1=>Airflow2へのupgrade 事例紹介
reizist
0
120
Featured
See All Featured
Building an army of robots
kneath
299
40k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
349
27k
Code Review Best Practice
trishagee
41
6.8k
YesSQL, Process and Tooling at Scale
rocio
157
12k
Scaling GitHub
holman
451
140k
A better future with KSS
kneath
225
15k
Thoughts on Productivity
jonyablonski
43
2.2k
What’s in a name? Adding method to the madness
productmarketing
11
1.5k
Designing for humans not robots
tammielis
241
23k
StorybookのUI Testing Handbookを読んだ
zakiyama
4
2k
Building Your Own Lightsaber
phodgson
94
4.6k
Product Roadmaps are Hard
iamctodd
34
6.1k
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に貢献できるよう、今年もがんばりたい
ありがとうございました