Slide 1

Slide 1 text

Confidential 1 Copyright(c) Design One japan. All Rights Reserved. Vueのバリデーション、 結局どれを選べばいい? ― 自作バリデーションの限界と、 脱却までの道のり ― ねぎなす(@neginasu_grid) 株式会社デザインワン・ジャパン

Slide 2

Slide 2 text

Confidential 2 Copyright(c) Design One japan. All Rights Reserved. 本セッションで話すこと

Slide 3

Slide 3 text

Confidential 3 Copyright(c) Design One japan. All Rights Reserved. T op ic s for Th i s S e ssi on 本セッションでは 1.理想と現実のギャップをどう埋めたか 2.ライブラリ導入で得られたメリット をお話しします

Slide 4

Slide 4 text

Confidential 4 Copyright(c) Design One japan. All Rights Reserved. T op ic s for Th i s S e ssi on 本セッションで一番伝えたいこと どのような選定基準でどのようにバリデー ションライブラリを選んだか

Slide 5

Slide 5 text

Confidential 5 Copyright(c) Design One japan. All Rights Reserved. T op ic s for Th i s S e ssi on 本セッションの内容は 1. あくまでも弊社プロダクトの場合の話です 2. バリデーションライブラリのベストプラクティスを提 供するものではありません

Slide 6

Slide 6 text

Confidential 6 Copyright(c) Design One japan. All Rights Reserved. 自己紹介

Slide 7

Slide 7 text

Confidential 7 Copyright(c) Design One japan. All Rights Reserved. Ab out me 株式会社デザインワン・ジャパン → GM Oデザインワン株式会社 フロントエンドエンジニア 谷本 結 / ねぎなす • 2 02 5/3 ~ jo in 先月で入社半年が経ちました • VueFesJapan2025コアスタッフ • LOVOTというロボットの 「ふぁいど」と暮らしています

Slide 8

Slide 8 text

Confidential 8 Copyright(c) Design One japan. All Rights Reserved. Ab out me

Slide 9

Slide 9 text

Confidential 9 Copyright(c) Design One japan. All Rights Reserved. アジェンダ

Slide 10

Slide 10 text

Confidential 10 Copyright(c) Design One japan. All Rights Reserved. Ag e nda 1. エキテンについて 2. 自作バリデーションで起きている”バリデーション迷子” 3. 候補に上がったバリデーションライブラリの紹介 4. バリデーションライブラリの比較 5. 導入にあたっての課題と今後の運用について

Slide 11

Slide 11 text

Confidential 11 Copyright(c) Design One japan. All Rights Reserved. エキテンについて

Slide 12

Slide 12 text

Confidential 12 Copyright(c) Design One japan. All Rights Reserved. I ntr oduc ti on to Ek ite n

Slide 13

Slide 13 text

Confidential 13 Copyright(c) Design One japan. All Rights Reserved. I ntr oduc ti on to Ek ite n エキテンのフロントエンド技術スタック v3.2.31 + アンチではないですよ…

Slide 14

Slide 14 text

Confidential 14 Copyright(c) Design One japan. All Rights Reserved. I ntr oduc ti on to Ek ite n エキテンのフロントエンド技術スタック 一応TS化の動きはありますが、 まだ実行できていないのが現実…

Slide 15

Slide 15 text

Confidential 15 Copyright(c) Design One japan. All Rights Reserved. 自作バリデーションで起きている ”バリデーション迷子”

Slide 16

Slide 16 text

Confidential 16 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on バリデーション迷子とは?

Slide 17

Slide 17 text

Confidential 17 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on 既存バリデーションの在り処が分からず、 探しても確信が持てない状態

Slide 18

Slide 18 text

Confidential 18 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on バリデーション迷子の具体例

Slide 19

Slide 19 text

Confidential 19 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on 迷子ケース: メールアドレスのルールを使用したい時

Slide 20

Slide 20 text

Confidential 20 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on メールアドレスの入力バリデーションのルールを使用したい! 既存実装にあるか探そう!

Slide 21

Slide 21 text

Confidential 21 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on バリデーション ファイル

Slide 22

Slide 22 text

Confidential 22 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on

Slide 23

Slide 23 text

Confidential 23 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on

Slide 24

Slide 24 text

Confidential 24 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on

Slide 25

Slide 25 text

Confidential 25 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on バリデーション迷子発生

Slide 26

Slide 26 text

Confidential 26 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on バリデーション迷子が続くと起きること

Slide 27

Slide 27 text

Confidential 27 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on 1. 「バリデーション追加に取りかかる前に、調査・読解で 30〜60 分が消える」 2. 「既存ルールを活用できず、同じロジックの再実装が発生」 3. 「影響範囲が追えないため、仕様変更が怖い・レビューも大変」

Slide 28

Slide 28 text

Confidential 28 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on バリデーション迷子を終わらせるために 必要なもの

Slide 29

Slide 29 text

Confidential 29 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on

Slide 30

Slide 30 text

Confidential 30 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on = バリデーションライブラリ

Slide 31

Slide 31 text

Confidential 31 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on バリデーションライブラリを入れると… 1. ドキュメントを頼りに使用したいバリデーションルールを簡単に 探せる 2. カスタムバリデーション作成時もライブラリの記述方法がルール としてあるので、簡潔でわかりやすく記述ができる ↓ 学習コスト、レビューコストを抑えつつ、保守性を高められる!

Slide 32

Slide 32 text

Confidential 32 Copyright(c) Design One japan. All Rights Reserved. 候補に上がった バリデーションライブラリの紹介

Slide 33

Slide 33 text

Confidential 33 Copyright(c) Design One japan. All Rights Reserved. I ntr oduc ti on to Can di da te Va l id ati on L ib ra ri es 1. Vue の公式ドキュメント (2.3) で触れられている代表的なバリデーショ ンライブラリ 2. TypeScript による型安全なフォーム開発を支えるスキーマバリデーショ ンライブラリ 3. Vuelidate をベースに進化した Vue 3 / Composition API 向けの軽量後継 ライブラリ 候補ライブラリは という基準で5個挙げました

Slide 34

Slide 34 text

Confidential 34 Copyright(c) Design One japan. All Rights Reserved. I ntr oduc ti on to Can di da te Va l id ati on L ib ra ri es 1. Vuelidate

Slide 35

Slide 35 text

Confidential 35 Copyright(c) Design One japan. All Rights Reserved. I ntr oduc ti on to Can di da te Va l id ati on L ib ra ri es 2. Vee-Validate

Slide 36

Slide 36 text

Confidential 36 Copyright(c) Design One japan. All Rights Reserved. I ntr oduc ti on to Can di da te Va l id ati on L ib ra ri es 3. Zod

Slide 37

Slide 37 text

Confidential 37 Copyright(c) Design One japan. All Rights Reserved. I ntr oduc ti on to Can di da te Va l id ati on L ib ra ri es 4. Valibot

Slide 38

Slide 38 text

Confidential 38 Copyright(c) Design One japan. All Rights Reserved. I ntr oduc ti on to Can di da te Va l id ati on L ib ra ri es 5. Regle

Slide 39

Slide 39 text

Confidential 39 Copyright(c) Design One japan. All Rights Reserved. バリデーションライブラリの比較

Slide 40

Slide 40 text

Confidential 40 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 1. 技術的前提条件(クリアしている必要がある条件) 2. 評価指標(ライブラリを比較するときに重視する観点) 選定の基準として、大まかに の2点に分けて比較しました

Slide 41

Slide 41 text

Confidential 41 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 1. JSからTSの移行途中でも使用できるか 2. OptionsAPIとCompositionAPIの記法が混在していて も使用できるか 技術的前提条件(クリアしている必要がある条件)

Slide 42

Slide 42 text

Confidential 42 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 評価指標(ライブラリを比較するときに重視する観点) 1. 関連記事が多いこと 2. スター数とIssue数 3. 最新更新履歴 4. バンドルサイズ

Slide 43

Slide 43 text

Confidential 43 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 技術的前提条件(クリアしている必要がある条件)

Slide 44

Slide 44 text

Confidential 44 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 1. JSからTSの移行途中でも使用できるか 2. OptionsAPIとCompositionAPIの記法が混在していて も使用できるか 技術的前提条件(クリアしている必要がある条件)

Slide 45

Slide 45 text

Confidential 45 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es ライブラリ JS/TS混在状態 での互換 コメント 公式ドキュメント記載箇所 Vuelidate TS化途中でもJSから利用可能 https://vuelidate- next.netlify.app/custom_validators.html Vee- Validate TypeScript・JavaScript両対応。移行途中でも使える https://vee- validate.logaretm.com/v4/guide/compo sition-api/typed-schema/ Zod △ TypeScript推奨だが、JS・TS混在でも動作 https://zod.dev/?id=typescript-support Regle △ TypeScriptでの型推論に対応しつつ、JSでもそのま ま利用できる。移行途中でも導入可 https://valibot.dev/guides/introduction / Valibot △ TypeScript-first設計だが、JSも同様に動作するため 導入可能と推測 -

Slide 46

Slide 46 text

Confidential 46 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 1. JSからTSの移行途中でも使用できるか 2. OptionsAPIとCompositionAPIの記法が混在していて も使用できるか 技術的前提条件(クリアしている必要がある条件)

Slide 47

Slide 47 text

Confidential 47 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es ライブラリ 記法の混在 コメント 公式ドキュメント記載箇所 Vuelidate Options API内でsetup()を使用しuseVuelidate()を返すことで 両方のAPIを同時に利用可能。data()でデータを定義し、 validations()でルールを定義。 https://vuelidate-next.netlify.app/ Vee-Validate Options APIでの使用は可能だが、主にComposition APIに重 点を置いている。Options APIではコンポーネント(、 )を使用する必要がある。 https://github.com/logaretm/vee- validate/discussions/3544 Zod - スキーマバリデーションのため、Vue専用ではない。 https://zod.dev/ Regle Composition APIのみをサポート。Vue 3.3以降が必要。 useRegleなどのComposable関数を使用。 https://reglejs.dev/introduction/mig rate-from-vuelidate Valibot - スキーマバリデーションのため、Vue専用ではない。 https://valibot.dev/

Slide 48

Slide 48 text

Confidential 48 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 評価指標(ライブラリを比較するときに重視する観点)

Slide 49

Slide 49 text

Confidential 49 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 評価指標(ライブラリを比較するときに重視する観点) 1. 関連記事が多いこと 2. スター数とIssue数 3. 最新更新履歴 4. バンドルサイズ

Slide 50

Slide 50 text

Confidential 50 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es ZennとQiitaで投稿されている記事数 今回は で比較しました

Slide 51

Slide 51 text

Confidential 51 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 2 0 2 5 年 9 月 3 日 時 点 ライブラリ Zenn記事数 Qiita記事数 Zenn + Qiita の記事数 Vuelidate 10(article: 8, scraps: 2) 41 51 Vee-Validate 9 156 165 Zod ※それぞれの検索欄で`zod vue`と検索 2 33 35 Valibot ※それぞれの検索欄で`valibot vue`と検索 0 0 0 Regle 1 2 3 各ライブラリの記事数比較

Slide 52

Slide 52 text

Confidential 52 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 2 0 2 5 年 9 月 3 日 時 点 ライブラリ Zenn記事数 Qiita記事数 Zenn + Qiita の記事数 Vuelidate 10(article: 8, scraps: 2) 41 51 Vee-Validate 9 156 165 Zod ※それぞれの検索欄で`zod vue`と検索 2 33 35 Valibot ※それぞれの検索欄で`valibot vue`と検索 0 0 0 Regle 1 2 3 各ライブラリの記事数比較

Slide 53

Slide 53 text

Confidential 53 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 評価指標(ライブラリを比較するときに重視する観点) 1. 関連記事が多いこと 2. スター数とIssue数 3. 最新更新履歴 4. バンドルサイズ

Slide 54

Slide 54 text

Confidential 54 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es https://npmtrends.com/

Slide 55

Slide 55 text

Confidential 55 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 2025年10月19日時点

Slide 56

Slide 56 text

Confidential 56 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 2025年10月19日時点

Slide 57

Slide 57 text

Confidential 57 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 評価指標(ライブラリを比較するときに重視する観点) 1. 関連記事が多いこと 2. スター数とIssue数 3. 最新更新履歴 4. バンドルサイズ

Slide 58

Slide 58 text

Confidential 58 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 2025年10月19日時点

Slide 59

Slide 59 text

Confidential 59 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 評価指標(ライブラリを比較するときに重視する観点) 1. 関連記事が多いこと 2. スター数とIssue数 3. 最新更新履歴 4. バンドルサイズ

Slide 60

Slide 60 text

Confidential 60 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es バンドルサイズ計測の手順 ~事前準備編~ 1. 作業するディレクトリ(今回はフロントのディレクトリ)に移動

Slide 61

Slide 61 text

Confidential 61 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es バンドルサイズ計測の手順 ~事前準備編~ 2. バンドルサイズ計測用パッケージをinstall

Slide 62

Slide 62 text

Confidential 62 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es バンドルサイズ計測の手順 ~事前準備編~ 3. 計測用フォルダとエントリーを用意する。

Slide 63

Slide 63 text

Confidential 63 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es バンドルサイズ計測の手順 ~事前準備編~ 4. minify 済みのバンドル計測用コマンドを実行する

Slide 64

Slide 64 text

Confidential 64 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es バンドルサイズ計測の手順 ~事前準備編~ 5. gzipサイズの測定コマンドを実行する

Slide 65

Slide 65 text

Confidential 65 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es これで下準備と何も導入しなかった場合の バンドルサイズを計ることができました!

Slide 66

Slide 66 text

Confidential 66 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es バンドルサイズ計測の手順 ~各ライブラリ編~ 1. 各ライブラリのパッケージをinstallする

Slide 67

Slide 67 text

Confidential 67 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es ライブラリ バージョン Vuelidate 2.0.3 Vee-Validate 4.15.1 Zod 4.1.2 Valibot 1.1.0 Regle 1.9.6 各ライブラリのバージョン

Slide 68

Slide 68 text

Confidential 68 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es バンドルサイズ計測の手順 ~各ライブラリ編~ 2. scripts/bundle-entry.jsに各ライブラリをexportする

Slide 69

Slide 69 text

Confidential 69 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es バンドルサイズ計測の手順 ~各ライブラリ編~ 3. minify 済みのバンドル計測用コマンドを実行する

Slide 70

Slide 70 text

Confidential 70 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es バンドルサイズ計測の手順 ~各ライブラリ編~ 4. gzipサイズの測定コマンドを実行する

Slide 71

Slide 71 text

Confidential 71 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es ライブラリ 出力JS(minified) baselineとの差 出力JS(gzip) baselineとの差 baseline(共通) 0KB - 20KB - Vuelidate 39.3KB +39.3KB 14.2KB -5.8KB Vee-Validate 48.8KB +48.8KB 18.1KB -1.9KB Zod 278.1KB +278.1KB 55.9KB +35.9KB Valibot 3.1KB +3.1KB 1.25KB -18.75KB Regle 80.4KB +80.4KB 26KB +6KB バンドルサイズ比較

Slide 72

Slide 72 text

Confidential 72 Copyright(c) Design One japan. All Rights Reserved. Comp ar is on of Va l id ati on L ib ra ri es 順位 ライブラリ バンドル増分(minify 後) gzip 増分 - baseline(共通) 0KB 0KB 1 Valibot +3.1KB -18.75KB 2 Vuelidate +39.3KB -5.8KB 3 Vee-Validate +48.8KB -1.9KB 4 Regle +80.4KB +6KB 5 Zod +278.1KB +35.9KB バンドルサイズ比較

Slide 73

Slide 73 text

Confidential 73 Copyright(c) Design One japan. All Rights Reserved. 導入にあたっての課題と 今後の運用について

Slide 74

Slide 74 text

Confidential 74 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 結論

Slide 75

Slide 75 text

Confidential 75 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t Vee-Validate を採用することにしました

Slide 76

Slide 76 text

Confidential 76 Copyright(c) Design One japan. All Rights Reserved. 1. 技術的前提条件(クリアしている必要がある条件) 2. 評価指標(ライブラリを比較するときに重視する観点) I ssue s i n Adop tion a nd Fu tu re Ma na ge me n t

Slide 77

Slide 77 text

Confidential 77 Copyright(c) Design One japan. All Rights Reserved. 1. JSからTSの移行途中でも使用できるか 2. OptionsAPIとCompositionAPIの記法が混在していて も使用できるか 技術的前提条件(クリアしている必要がある条件) I ssue s i n Adop tion a nd Fu tu re Ma na ge me n t

Slide 78

Slide 78 text

Confidential 78 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 1. JSからTSの移行途中でも使用できるか ライブラリ JS/TS混在状態 での互換 コメント 公式ドキュメント記載箇所 Vuelidate TS化途中でもJSから利用可能 https://vuelidate- next.netlify.app/custom_validators.html Vee- Validate TypeScript・JavaScript両対応。移行途中でも使える https://vee- validate.logaretm.com/v4/guide/compo sition-api/typed-schema/ Zod △ TypeScript推奨だが、JS・TS混在でも動作 https://zod.dev/?id=typescript-support Regle △ TypeScriptでの型推論に対応しつつ、JSでもそのま ま利用できる。移行途中でも導入可 https://valibot.dev/guides/introduction / Valibot △ TypeScript-first設計だが、JSも同様に動作するため 導入可能と推測 -

Slide 79

Slide 79 text

Confidential 79 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 2. OptionsAPIとCompositionAPIの記法が混在していても使用できるか ライブラリ 記法の混在 コメント 公式ドキュメント記載箇所 Vuelidate Options API内でsetup()を使用しuseVuelidate()を返すことで 両方のAPIを同時に利用可能。data()でデータを定義し、 validations()でルールを定義。 https://vuelidate-next.netlify.app/ Vee-Validate Options APIでの使用は可能だが、主にComposition APIに重 点を置いている。Options APIではコンポーネント(、 )を使用する必要がある。 https://github.com/logaretm/vee- validate/discussions/3544 Zod - スキーマバリデーションのため、Vue専用ではない。 https://zod.dev/ Regle Composition APIのみをサポート。Vue 3.3以降が必要。 useRegleなどのComposable関数を使用。 https://reglejs.dev/introduction/mig rate-from-vuelidate Valibot - スキーマバリデーションのため、Vue専用ではない。 https://valibot.dev/

Slide 80

Slide 80 text

Confidential 80 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 必ずクリアしていなければならない技術的前提条件に 全て当てはまるライブラリ Vuelidate Vee-Validate と

Slide 81

Slide 81 text

Confidential 81 Copyright(c) Design One japan. All Rights Reserved. 評価指標(ライブラリを比較するときに重視する観点) 1. 関連記事が多いこと 2. スター数とIssue数 3. 最新更新履歴 4. バンドルサイズ I ssue s i n Adop tion a nd Fu tu re Ma na ge me n t

Slide 82

Slide 82 text

Confidential 82 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 1. 関連記事が多いこと ライブラリ Zenn記事数 Qiita記事数 Zenn + Qiita の記事数 Vuelidate 10(article: 8, scraps: 2) 41 51 Vee-Validate 9 156 165

Slide 83

Slide 83 text

Confidential 83 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 2. スター数とIssue数 2025年10月19日時点

Slide 84

Slide 84 text

Confidential 84 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 3. 最新更新履歴 2025年10月19日時点

Slide 85

Slide 85 text

Confidential 85 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 4.バンドルサイズ ライブラリ 出力JS(minified) baselineとの差 出力JS(gzip) baselineとの差 baseline(共通) 0KB - 20KB - Vuelidate 39.3KB +39.3KB 14.2KB -5.8KB Vee-Validate 48.8KB +48.8KB 18.1KB -1.9KB

Slide 86

Slide 86 text

Confidential 86 Copyright(c) Design One japan. All Rights Reserved. 評価指標(ライブラリを比較するときに重視する観点) 1. 関連記事が多いこと 2. スター数 Issue数 3. 最新更新履歴 4. バンドルサイズ I ssue s i n Adop tion a nd Fu tu re Ma na ge me n t → Vee-Validate → Vuelidate → Vee-Validate → Vee-Validate → Vuelidate

Slide 87

Slide 87 text

Confidential 87 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t Vee-Validate を採用することにしました めでたしめでたし…?

Slide 88

Slide 88 text

Confidential 88 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 導入してからの変化

Slide 89

Slide 89 text

Confidential 89 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t バリデーションルールの記述の変化

Slide 90

Slide 90 text

Confidential 90 Copyright(c) Design One japan. All Rights Reserved. I ssue s wi th Cu stom Va l id ati on メールアドレスのルールを使用したい時

Slide 91

Slide 91 text

Confidential 91 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t Before

Slide 92

Slide 92 text

Confidential 92 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t After https://vee-validate.logaretm.com/v4/guide/global-validators - email

Slide 93

Slide 93 text

Confidential 93 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re Ma na ge me n t コード内での”バリデーション迷子”からの卒業!

Slide 94

Slide 94 text

Confidential 94 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re Ma na ge me n t みんな幸せ解決! めでたしめでたし

Slide 95

Slide 95 text

Confidential 95 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re Ma na ge me n t みんな幸せ解決! めでたしめでたし

Slide 96

Slide 96 text

Confidential 96 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 導入してからの課題

Slide 97

Slide 97 text

Confidential 97 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 1. 導入する際に既存のvalidationファイル内で、すでに vee-validate/rulesに実装されているものがあるか探し ていかなければならない 基本的にrules内にあるものはrulesのものを使用するよう にしないと、重複した名前で再実装してしまうことになる →

Slide 98

Slide 98 text

Confidential 98 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 2. 現行のロジックでvee-validate/rulesになく、カスタ ムで作成なければならない場合が多くあるため、rules のデフォルト挙動と遜色ないようにしなければならな い 例えば、現状の自作バリデーションにはisEmptyを判 定して「必須以外のバリデーションは未入力なら走ら せない」といった制御がある。 Vee-Validate の標準ルールは skipIfEmpty を既定で 持っているが、カスタムルールも同じ挙動にしないと 既存の仕様とズレしまう。 →

Slide 99

Slide 99 text

Confidential 99 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 3. すでにvee-validate/rulesやカスタムバリデーション で既存の実装にあるものを重複して作成しないように する工夫が必要 重複して作成してしまうと、現状の問題と同じ、既存 の実装で自分が求めている実装はあるのか、それとも 新規で実装しなければならないのかの判断がつかない 問題は解決しない →

Slide 100

Slide 100 text

Confidential 100 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 今後の運用について

Slide 101

Slide 101 text

Confidential 101 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 1. 導入する際に既存のvalidationファイル内で、すでに vee-validate/rulesに実装されているものがあるか探し ていかなければならない 必ずrulesをチェックして既存のvalidation内に同じもの があったら削除! 使用するバリデーションの実装を迷わないように徹底! →

Slide 102

Slide 102 text

Confidential 102 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 2. 現行のロジックでvee-validate/rulesになく、カスタ ムで作成した場合に、rulesのデフォルト挙動と遜色な いようにしなければならない rulesを基本的に使用し、それにカスタムの条件を加える という実装方法で、ベースをrulesにして遜色ないような 実装にする →

Slide 103

Slide 103 text

Confidential 103 Copyright(c) Design One japan. All Rights Reserved. I ssue s i n Adop tion a nd Fu tu re M an ag em en t 3. すでにvee-validate/rulesやカスタムバリデーション で既存の実装にあるものを重複して作成しないように する工夫が必要 ルールごとに作成したらコマンド1つでカスタムルー ルの内容が書かれているマークダウンファイルが生成 されて、それ自体がドキュメントになるような仕組み を作る →

Slide 104

Slide 104 text

Confidential 104 Copyright(c) Design One japan. All Rights Reserved. S umm ar y まとめ

Slide 105

Slide 105 text

Confidential 105 Copyright(c) Design One japan. All Rights Reserved. S umm ar y • 自作バリデーションでは、既存実装が追えなくなる” バリデーション迷子”が多発 • バリデーションライブラリに求める条件(技術的前提 条件と評価指標)を基準にバリデーションライブラリ を比較 • バリデーションライブラリを導入してからの課題と その問題解決としてバリデーションライブラリの ルールの策定と運用

Slide 106

Slide 106 text

Confidential 106 Copyright(c) Design One japan. All Rights Reserved. S umm ar y

Slide 107

Slide 107 text

Confidential 107 Copyright(c) Design One japan. All Rights Reserved. S umm ar y ご清聴ありがとうございました