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 25, 2022
Programming
6
1.5k
初心者が地方公共団体コードを扱うためのGemを作った話
https://ginza-rails.connpass.com/event/234304/
銀座Rails#41の登壇資料です
ikuma-t
January 25, 2022
Tweet
Share
More Decks by ikuma-t
See All by ikuma-t
ぼくが 美容師さんに伝えたかった バンドの話
ikumatadokoro
0
63
Railsアプリをコスパよく読むための環境整備
ikumatadokoro
1
320
HTTPを手で書いて学ぶ ファイルアップロードの仕組み
ikumatadokoro
53
21k
たどころくん1号を支える技術
ikumatadokoro
0
150
なんだか うまくいっている を 自分たちの いつもどおり に 定着させるためのチーム戦略
ikumatadokoro
3
500
プロダクト開発を支えるペースメーカー
ikumatadokoro
1
180
新登場!PopoverAPIでSide Modal(anai)を作ろう!
ikumatadokoro
0
300
Hasuraってナンダ!?
ikumatadokoro
1
390
自分だけの小さなSelenium「Olenium」を作って始める、ブラウザ自動化技術の理論と実践
ikumatadokoro
24
9.4k
Other Decks in Programming
See All in Programming
Folding Cheat Sheet #2
philipschwarz
PRO
0
110
try! Swift Tokyo 2024のLT枠に採択されたプロポーザルを出すときに考えていたこと
ski
0
340
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
250
PostmanでAPIの動作確認が楽になった話
h455h1
0
130
try!Swift Tokyo 2024 参加報告 LT
akidon0000
1
190
大規模Reactアプリのリアーキテクチャ~8万行のTanStack Query移行の軌跡~
kj455
3
770
オブジェクト指向のリ・オリエンテーション~歴史を振り返り、AI時代に向きなおる~
hanyudaeiiti
10
5.6k
Build with AI 2024 Seoul - 제로부터 시작하는 Flutter with Gemini 생활 - 박제창
itsmedreamwalker
0
200
Doctrine ORMでValue Objectを扱う方法4選 #phpstudy / 4 ways to handle Value Objects with Doctrine ORM
77web
4
110
今の SmartHR にエンジニアで入社するとどうなるの?
daisukeshinoku
5
4.6k
코틀린으로 멀티플랫폼 만들기
pangmoo
0
120
Prepare for Jakarta EE 11 - Performance and Developer Productivity
ivargrimstad
0
450
Featured
See All Featured
The Brand Is Dead. Long Live the Brand.
mthomps
48
28k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
154
14k
Thoughts on Productivity
jonyablonski
57
3.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
1
3.4k
Infographics Made Easy
chrislema
237
18k
The Invisible Customer
myddelton
114
12k
Building an army of robots
kneath
300
41k
What’s in a name? Adding method to the madness
productmarketing
PRO
15
2.6k
Fontdeck: Realign not Redesign
paulrobertlloyd
76
4.9k
Adopting Sorbet at Scale
ufuk
67
8.6k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
186
16k
Optimising Largest Contentful Paint
csswizardry
7
2.3k
Transcript
2022.01.25 ikuma-t 地方公共団体コードを 扱うためのGemを作った話 銀座Rails#41 初心者が
ikuma-t ・エンジニアになりたい人 from #fjordbootcamp ・(この後話す)伊藤さんのバーターではない ・最近はRubyist Hotlinksを読んでる ・「若手に一言」のコーナーが好き
@ikumatdkr ikuma-t セットプチフォッカ ikuma-t IkumaTadokoro 自己紹介 早口で しゃべります
初心者が地方公共団体コードを 扱うためのGemを作った話 今回話すこと
つくったもの「jp_local_gov」 日本の地方公共団体コードと市区町村の情報を変換できるGem ・東京都 ・中央区 ・都庁ではない 市区町村情報 jp_local_gov 1 3 1
0 2 4 地方公共団体コード 地方公共団体コード 市区町村にわりふられた一意のコード 都道府県 市区町村 検査数字
できること(地方公共団体コードと自治体情報の変換) JpLocalGov.find id(地方公共団体コード)検索を行う @param code[String] @return [JpLocalGov::LocalGov] JpLocalGov.where 条件検索(複数の場合AND)を行う @param
condition[Hash] @return [Array]
できること(地方公共団体コードと自治体情報の変換) JpLocalGov.find id(地方公共団体コード)検索を行う @param code[String] @return [JpLocalGov::LocalGov] JpLocalGov.where 条件検索(複数の場合AND)を行う @param
condition[Hash] @return [Array]
できること(地方公共団体コードと自治体情報の変換) 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
できること(Railsで使用する) local_government includeされると、引数で指定したカラムに対して、 local_governmentメソッドが使用可能になる このメソッドを経由して、以下の情報を表示できる ・都道府県 ・市区町村 ・都道府県庁所在地かどうか 【テーブル定義】 insurance_fees
・id: integer ・local_gov_code: string
できること(Railsで使用する) local_government includeされると、引数で指定したカラムに対して、 local_governmentメソッドが使用可能になる このメソッドを経由して、以下の情報を表示できる ・都道府県 ・市区町村 ・都道府県庁所在地かどうか 【テーブル定義】 insurance_fees
・id: integer ・local_gov_code: string
できること(その他) 【テーブル定義】 insurance_fees ・id: integer ・local_gov_code: string ・コードが有効かどうかのチェック(バリデーション用) ・ランダムな地方自治体情報の生成(テストデータ用) ・すべての自治体情報を返す(セレクトボックス用)
...詳しくはリポジトリのREADMEを参照 使いそうなメソッドは順次追加中
開発のモチベーション
現在開発中のサービスで 必要だったから!!
None
市区町村ごとにレコードを持たないといけない 市区町村情報をメンテするのはダルい
自分の課題を解決するために Gemを作ろう!
開発してみてよかったこと
効率よく技術が身についた その1
GitHubActionsとか... このGemで一番重要な、地方公共団体データの更新処理を自動化 総務省HP 地方公共団体 コード GitHub Actions(月1) ... 北海道 青森県
沖縄県 sqlite3 ソートと 分割 差分あり →PR作成 チェック してマージ
メタプロとかRSpecとかRBSとか...
エリクソンの「目的のある練習」 能力を向上させるための練習に必要なのは... 1. はっきりと定義された具体的な目標 2. 集中した環境 3. フィードバック 4. コンフォートゾーンを出る
User=Authorなので、 書くのは楽しいし 役に立っている感がいい その2
たのしい開発 スタートアップRuby 2013/5/10 出版
作りたい人が自分を幸せにするために作り、 使いたい人に使ってもらうことで、 ほかの人を幸せにする。 プログラマが効率的に仕事ができるようにする。 気持ちよく仕事ができるようにする。 Rubyには、そのような想いが込められています。 『 』 6-3 人間の重視
Rubyに込められた想い
Rubyはいいぞ!!!
ありがとうございました