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
与信管理を形にする: Ruby の柔軟性が支える高速データ収集・自動化基盤
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
5hun
December 06, 2025
1
280
与信管理を形にする: Ruby の柔軟性が支える高速データ収集・自動化基盤
北陸Ruby会議01で発表しました
5hun
December 06, 2025
Tweet
Share
More Decks by 5hun
See All by 5hun
Array#forty_two
5hun
0
46
ぼっちが秘める可能性〜孤高のRubyistが語る交流会サバイバル術〜
5hun
1
39
君もRailsもアップグレード!
5hun
1
15
完璧主義にこだわり続けるとシステム開発は不幸になると思った
5hun
0
43
OSSコントリビュート初体験:Rubocopのバグを修正した話
5hun
0
41
地道なリファクタを続けてRspec高速化した話
5hun
0
39
“技術カンファレンスで何か変わる?” ──RubyKaigi後の自分とチームを振り返る
5hun
0
250
Featured
See All Featured
Darren the Foodie - Storyboard
khoart
PRO
3
3.1k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
110
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
910
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
180
From π to Pie charts
rasagy
0
160
My Coaching Mixtape
mlcsv
0
90
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
110
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.2k
How to build a perfect <img>
jonoalderson
1
5.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4k
Building Adaptive Systems
keathley
44
3k
Designing for humans not robots
tammielis
254
26k
Transcript
与信管理を形にする: Rubyの柔軟性が支える高速データ収集・自動化基盤 北陸Ruby会議01
自己紹介 • 5hun • @5hun_s • アラームボックス株式会社 エンジニア • Ruby/Rails
歴2年 • 金沢2回目 • 楽器が好き
本日話すこと • アラームボックスのシステムの紹介 • なぜRubyが最適だったのか
与信管理とは • 企業間取り引き→後払い – 破産するとお金の回収不可 – そのリスクを管理すること • つまり企業が信頼できるか知る必要がある
集めている企業情報 • 法人のプロフィール情報 – 会社名 – 代表者名 – 住所 とか
• ネガティブ情報
与信管理のための基盤を マイクロサービスで構築(イメージ図) 信用チェック 企業特定 法人情報管理
企業の信用リスクをスコアリング化 • ネガティブ情報の種類ごとに深刻度を設定 • 組み合わせて専門家の与信判断をプログラム化 →多様かつ膨大なネガティブ情報で精度向上 ※詳しくは、アラームボックスの「信用チェック」を参照してください
様々なネガティブ情報の収集例 • 公式API – 法人番号API – インボイス番号API • 外部提供情報(だいたいエクセル) –
官公庁 – 他調査会社 • スクレイピング • 社員の調査情報 • 顧客提供情報(支払い遅延の報告など)
大量データ収集時の注意点 どの会社の情報であるか、 判別しなければならない
企業特定を成功するために 1. 社内の法人情報を充実させる 2. 断片的な情報から、正確に法人の特定を するロジックを確立させる
法人情報取り扱いの課題 • 多種多様な表記揺れ – 法人名や代表者名の全角/半角、スペースの有無など – 株式会社 or ㈱ or
(株) or (株) – 1丁目2番3号 or 1ー2ー3 or 1-2-3 • 法人情報の一元管理 – DB共通で色々なシステムで閲覧、追加、更新 しており、表記揺れの統制ができない • 法人名などがいつの間にか変更されると検索できなくなる
履歴テーブルを管理 • 各種履歴をhas_many関係で紐づけ • 最新履歴への外部キーを別途追加 – 最新情報だけは直接参照もできるように
法人の作成更新をAPI化 • 保存前に統一の正規化処理を適用 • 法人名の関連項目を同時登録(抜け漏れ防止)
企業特定を成功するために 1. 社内の法人情報を充実させる 2. 断片的な情報から、正確に法人の特定を するロジックを確立させる
企業特定の課題 • 基本は法人番号 • それだけではなく、コツが必要(一部紹介)
人間とRubyの共同正規化作業 • Elasticsearchで候補検索 – 法人番号 / 法人名 / 代表者名 /
住所 など • Rubyで正規化して検索 – スペース除去 / 全角半角統一 / 異体字修正 • 人の知見を加えて、さらに精度を高めて検索 – 法人格 / 拠点名の除去(定数管理) – 履歴テーブル – 都道府県・市区町村マスタとの照合
なぜRubyが最適だったのか
自社内向けツールに求められるもの • +α • 自社専用機能 = システムの価値 過度なエンジニアリングをせずに、 多様な業務要件に対応したい
Rubyの柔軟性 • ライブラリ豊富 – Faraday(API) / roo (Excel) / itaiji(正規化)
/ mechanize(スクレイピング) • シンプル記法でビジネスロジックの表現に集中 – ()省略 / return省略 / & /述語メソッド表現 • Try & Error – 要件に応じてコンソールで効果的な実装方法を検証 しながら作る
結論:Rubyいいね! • ニッチなサービスを運用 – 前例が(ほぼ)ない – 実装は自分たちで考えなければならない • Rubyの可能性 –
やろうと思えば何でもできる、、が、 – 壊れる時はちゃんと壊れてくれる – どんな複雑な機能でも、道を外さずに作れる 仕組みや情報がたくさんある