$30 off During Our Annual Pro Sale. View Details »

初心者が地方公共団体コードを扱うためのGemを作った話

ikuma-t
January 25, 2022

 初心者が地方公共団体コードを扱うためのGemを作った話

https://ginza-rails.connpass.com/event/234304/
銀座Rails#41の登壇資料です

ikuma-t

January 25, 2022
Tweet

More Decks by ikuma-t

Other Decks in Programming

Transcript

  1. 2022.01.25 ikuma-t
    地方公共団体コードを

    扱うためのGemを作った話
    銀座Rails#41
    初心者が

    View Slide

  2. ikuma-t
    ・エンジニアになりたい人 from #fjordbootcamp

    ・(この後話す)伊藤さんのバーターではない

    ・最近はRubyist Hotlinksを読んでる

     ・「若手に一言」のコーナーが好き
      
    @ikumatdkr ikuma-t セットプチフォッカ
    ikuma-t
     IkumaTadokoro
    自己紹介
    早口で

    しゃべります

    View Slide

  3. 初心者が地方公共団体コードを

    扱うためのGemを作った話
    今回話すこと

    View Slide

  4. つくったもの「jp_local_gov」
    日本の地方公共団体コードと市区町村の情報を変換できるGem
    ・東京都

    ・中央区

    ・都庁ではない
    市区町村情報
    jp_local_gov
    1 3 1 0 2 4
    地方公共団体コード
    地方公共団体コード
    市区町村にわりふられた一意のコード
    都道府県 市区町村 検査数字

    View Slide

  5. できること(地方公共団体コードと自治体情報の変換)
    JpLocalGov.find
    id(地方公共団体コード)検索を行う

    @param code[String]

    @return [JpLocalGov::LocalGov]
    JpLocalGov.where
    条件検索(複数の場合AND)を行う

    @param condition[Hash]

    @return [Array]

    View Slide

  6. できること(地方公共団体コードと自治体情報の変換)
    JpLocalGov.find
    id(地方公共団体コード)検索を行う

    @param code[String]

    @return [JpLocalGov::LocalGov]
    JpLocalGov.where
    条件検索(複数の場合AND)を行う

    @param condition[Hash]

    @return [Array]

    View Slide

  7. できること(地方公共団体コードと自治体情報の変換)
    JpLocalGov.find
    id(地方公共団体コード)検索を行う

    @param code[String]

    @return [JpLocalGov::LocalGov]
    JpLocalGov.where
    条件検索(複数の場合AND)を行う

    @param condition[Hash]

    @return [Array]

    View Slide

  8. できること(Railsで使用する)
    local_government
    includeされると、引数で指定したカラムに対して、

    local_governmentメソッドが使用可能になる


    このメソッドを経由して、以下の情報を表示できる

    ・都道府県

    ・市区町村

    ・都道府県庁所在地かどうか
    【テーブル定義】

    insurance_fees

    ・id: integer

    ・local_gov_code: string

    View Slide

  9. できること(Railsで使用する)
    local_government
    includeされると、引数で指定したカラムに対して、

    local_governmentメソッドが使用可能になる


    このメソッドを経由して、以下の情報を表示できる

    ・都道府県

    ・市区町村

    ・都道府県庁所在地かどうか
    【テーブル定義】

    insurance_fees

    ・id: integer

    ・local_gov_code: string

    View Slide

  10. できること(Railsで使用する)
    local_government
    includeされると、引数で指定したカラムに対して、

    local_governmentメソッドが使用可能になる


    このメソッドを経由して、以下の情報を表示できる

    ・都道府県

    ・市区町村

    ・都道府県庁所在地かどうか
    【テーブル定義】

    insurance_fees

    ・id: integer

    ・local_gov_code: string

    View Slide

  11. できること(その他)
    【テーブル定義】

    insurance_fees

    ・id: integer

    ・local_gov_code: string
    ・コードが有効かどうかのチェック(バリデーション用)

    ・ランダムな地方自治体情報の生成(テストデータ用)

    ・すべての自治体情報を返す(セレクトボックス用)
    ...詳しくはリポジトリのREADMEを参照
    使いそうなメソッドは順次追加中

    View Slide

  12. 開発のモチベーション

    View Slide

  13. 現在開発中のサービスで

    必要だったから!!

    View Slide

  14. View Slide

  15. 市区町村ごとにレコードを持たないといけない
    市区町村情報をメンテするのはダルい

    View Slide

  16. 自分の課題を解決するために

    Gemを作ろう!

    View Slide

  17. 開発してみてよかったこと

    View Slide

  18. 効率よく技術が身についた
    その1

    View Slide

  19. GitHubActionsとか...
    このGemで一番重要な、地方公共団体データの更新処理を自動化
    総務省HP
    地方公共団体

    コード
    GitHub Actions(月1)
    ...
    北海道
    青森県
    沖縄県
    sqlite3
    ソートと

    分割
    差分あり

    →PR作成
    チェック

    してマージ

    View Slide

  20. メタプロとかRSpecとかRBSとか...

    View Slide

  21. エリクソンの「目的のある練習」
    能力を向上させるための練習に必要なのは...
    1. はっきりと定義された具体的な目標

    2. 集中した環境

    3. フィードバック

    4. コンフォートゾーンを出る

    View Slide

  22. User=Authorなので、

    書くのは楽しいし

    役に立っている感がいい
    その2

    View Slide

  23. たのしい開発

    スタートアップRuby
    2013/5/10 出版

    View Slide

  24. 作りたい人が自分を幸せにするために作り、

    使いたい人に使ってもらうことで、

    ほかの人を幸せにする。

    プログラマが効率的に仕事ができるようにする。

    気持ちよく仕事ができるようにする。

    Rubyには、そのような想いが込められています。


    6-3 人間の重視 Rubyに込められた想い

    View Slide

  25. Rubyはいいぞ!!!

    View Slide

  26. ありがとうございました

    View Slide