2K Views
June 09, 25
スライド概要
JJUG2025SpringにブーススポンサーであるFOLIOとして参加し、特典の会社宣伝LTをした際の資料になります。
nozomitaguchi
エンジニア目線で FOLIO を紹介します in JJUG 2025 Spring 2025/06/07 @nozomitaguchi Copyright © 2019 FOLIO Co., Ltd. All Rights Reserved.
目次 1. FOLIO とは? 2. 堅牢なシステムを 3. 成 える技術 できる環境 4. こんな、アナタ。wanted 支 長 2
1. FOLIO とは? 技術と創造で“未来の金融”の礎となる 3
目次 1. FOLIO とは? 2. 堅牢なシステムを 3. 成 える技術 できる環境 4. こんな、アナタ。wanted 支 長 4
2. 堅牢なシステムを支える技術 a. バイテンポラルデータモデル b. 篩型 5
項 soft delete flag 管理する軸 軸(削除フラグ・ 主な 途 バイテンポラルデータモデル 時) 軸(有効時間 + システム時間) 論理削除 履歴管理・監査・過去状態の再現 履歴の粒度 削除前後のみ すべての変更履歴 過去状態の再現 困難 可能 日 用 6 目 一 二 2 - a. バイテンポラルデータモデル
2 - a. バイテンポラルデータモデル Soft delete flag Bitemporal Data Model CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(100), email VARCHAR(100), deleted_at DATETIME NULL ); CREATE TABLE users ( id INT, name VARCHAR(100), email VARCHAR(100), activated_at DATETIME, deactivated_at DATETIME, in_z DATETIME, out_z DATETIME, PRIMARY KEY (id, activated_at, in_z) ); 7
2. 堅牢なシステムを支える技術 a. バイテンポラルデータモデル b. 篩型 8
2 - b. 篩型
Java - Bean Validation
public class SieveClass {
@NotNull
@Min(2)
private Integer value;
}
Java - 完全コンストラクタ
public class SieveClass {
private nal int value;
public SieveClass(int value) {
if (value < 2) throw new IllegalArgumentException("2以上でなければなりません");
this.value = value;
}
}
fi
9
2 - b. 篩型 Scala2 - refined type AtLeast2 = Int Re ned GreaterEqual[Witness.`2`.T] case class SieveClass(value: AtLeast2) ・プログラムの仕様を型として 章化 ・コンパイル時の静的な検査 ・実 時検査やバリデーションとの連携 文 fi 行 10
目次 1. FOLIO とは? 2. 堅牢なシステムを 3. 成 える技術 できる環境 4. こんな、アナタ。wanted 支 長 11
3. 成長できる環境 12
目次 1. FOLIO とは? 2. 堅牢なシステムを 3. 成 える技術 できる環境 4. こんな、アナタ。wanted 支 長 13
• 信頼 背中を合わせる • • 分の背中を預けあえる最 の信頼関係を。 背中を合わせる仲間に思い切って任せられる、 分の の前のことは思いっきり任せてもらう。 任せあう、預けあう、全 で互いを信頼し合える会社でいよう。 • 追求 突き抜ける • 品質へのこだわり、成 への渇望、挑戦し続ける気持ち、諦めない強さ。 の「突き抜ける」こだわりが、FOLIOの きな原動 となる。 • 進化 変化を楽しむ • 内発的な変化へ挑戦しつづける強さと、外部からの変化に適応する柔軟さ。 サステナブルな成 と、劇的な進化は、変化を楽しむことから始まる。 力 目 大 自 高 力 長 長 人 一 14 人 自 一 4. こんな、アナタ。wanted
ありがとうございました