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

バリデーションライブラリをフォームバリデーション以外で活用する

 バリデーションライブラリをフォームバリデーション以外で活用する

Keigo Ebihara

October 25, 2023
Tweet

More Decks by Keigo Ebihara

Other Decks in Programming

Transcript

  1. גࣜձࣾθετւ࿝ݪ
    όϦσʔγϣϯϥΠϒϥϦΛ
    ϑΥʔϜόϦσʔγϣϯҎ֎Ͱ׆༻͢Δ
    #VZ$FMM%FW4UVEZϑϩϯτΤϯυษڧձ

    View Slide

  2. ࣗݾ঺հ
    w ւ࿝ݪܓޗʢ!NJTPUPOʣ
    w גࣜձࣾθετ։ൃຊ෦
    w 8FCΞϓϦέʔγϣϯΤϯδχΞ
    w ओʹϑϩϯτΤϯυΛ୲౰͍ͯ͠·͢ɻ
    w લճ͸+4$POGKQͰొஃͯ͠·ͨ͠ɻ
    w ͔ͳΓٱ͠ͿΓͳͷͰ͓खॊΒ͔ʹʜ

    View Slide

  3. ୊ࡐʹ͢ΔόϦσʔγϣϯϥΠϒϥϦ
    w ;PEͰ͔͠Ͱ͖ͳ͍͜ͱ͸࿩͠·ͤΜͷͰ҆͝৺͍ͩ͘͞🙋

    View Slide

  4. ;PEͱ͸

    BDDPVOU4DIFNB
    \GJSTU/BNF MBTU/BNF^
    \GJSTU/BNF MBTU/BNF^
    PS
    7BMJEBUJPO&SSPS
    *OQVU
    4DIFNB
    0VUQVU
    όϦσʔγϣϯͷ಺༰Λએݴతʹ4DIFNBͰఆٛɻ

    View Slide

  5. ;PEͱ͸

    BDDPVOU4DIFNB
    \GJSTU/BNF MBTU/BNF^
    \GVMM/BNF^
    PS
    7BMJEBUJPO&SSPS
    💡4DIFNBʹΑͬͯ͸*OQVUͱ0VUQVUͷܕ͕ҟͳΔɻ
    4DIFNBʹ஋ͷม׵ΛؚΊΔ͜ͱ͕Ͱ͖Δɻ
    *OQVU
    4DIFNB
    0VUQVU

    View Slide

  6. ;PEʢόϦσʔγϣϯϥΠϒϥϦʣͷ࢖͍ಓ
    w ओͳ࢖͍ಓ
    w ϑΥʔϜʹΑΔೖྗ஋ͷόϦσʔγϣϯ
    w "1*ϦΫΤετϨεϙϯεϘσΟͷόϦσʔγϣϯ
    w ࠓճ͸͜ΕΒҎ֎ͷ࢖͍ಓΛ͝঺հ͠·͢ɻ

    View Slide

  7. Ϗϧυ࣌ىಈ࣌ͷ
    ؀ڥม਺ͷόϦσʔγϣϯʹ࢖͏

    View Slide

  8. ؀ڥม਺͋Δ͋Δ
    w 8FCΤϯδχΞɺ୭͠΋؀ڥม਺ͰΤϥʔΛىͨ͜͜͠ͱ͋Δઆ
    w ʮىಈ͸͚ͨ͠Ͳ࣮ߦ࣌Τϥʔ͕ग़ͯಈ͔ͳ͍ʂʯ
    w ͋Δ؀ڥม਺ͷઃఆ͕࿙Ε͍ͯͨɻ
    w ʮࠓ೔σϓϩΠͨ͠ΒͳΜ͔ಈ͔ͳ͘ͳͬͯΔʂʯ
    w ظ଴͢Δ஋͕มΘ͍ͬͯͨͷʹɺ؀ڥଆͷ஋Λม͍͑ͯͳ͔ͬͨɻ

    View Slide

  9. ؀ڥม਺ͷόϦσʔγϣϯ
    w ϦϞʔτ؀ڥͰ৽ೖࣾһͷ؀ڥߏஙΛख఻͏࣌ͳͲɺ஍ຯʹେมɻ
    w ΤϥʔΛಡΜͰର৅ͷίʔυΛಡΜͰ؀ڥม਺͕ݪҼͩͱΘ͔Δ·Ͱͷ͕࣌ؒ
    ͔͔͍ͬͯͨͷ͕ɺϏϧυ࣌ىಈ௚ޙʹؾ͚ͮΔɻ
    w ؀ڥม਺΋z֎෦͔Βͷೖྗ஋zͳͷͰόϦσʔγϣϯ͕໾ʹཱͭɻ

    View Slide

  10. ؀ڥม਺ͷόϦσʔγϣϯ

    FOW4DIFNB
    QSPDFTTFOW
    ظ଴͢Δ؀ڥม਺
    PS
    7BMJEBUJPO&SSPS
    *OQVU
    4DIFNB
    0VUQVU

    View Slide

  11. 1IBOUPNUZQFͷఆٛʹ࢖͏

    View Slide


  12. w ஋ʹ࢖ΘΕͳ͍ܕҾ਺Λ෇༩ͨ͠ܕͷ͜ͱɻ
    w ݩͱͳΔܕ͸ಉ͕ͩ͡z໾ׂz͕ҧ͏΋ͷಉ࢜Λ۠ผ͢ΔͨΊʹ࢖͏ɻ
    💡/BNFͷ෦෼͕3BXͱ&ODPEFEͰҟͳΔͨΊܕΤϥʔʹͳΔɻ
    1IBOUPNUZQFͱ͸
    ˞5ZQF4DSJQUͰ͸͋Γ·ͤΜ

    View Slide

  13. 5ZQF4DSJQUͰͷ1IBOUPNUZQF
    w ߏ଄త෦෼ܕͱ͍͏࢓૊ΈͰ୅ೖՄೳ͔Ͳ͏͔Λݕࠪ
    ͍ͯ͠Δɻ
    w ܕͷ໊લͰ͸ͳ͘ɺܕ͕ࢦ͢ߏ଄ʹΑͬͯαϒλΠϓ
    ؔ܎ 㲈ܧঝؔ܎ ୅ೖՄೳੑ
    ͕ܾ·Δɻ
    w "ͱ#͸௚઀ؔ܎Λ͍࣋ͬͯͳ͍͕ܕͷࢦ͢ߏ଄͕αϒ
    λΠϓؔ܎ʹͳ͍ͬͯΔͷͰɺ#ܕͷม਺ʹ"ܕͷ஋Λ
    ୅ೖͰ͖Δɻ

    View Slide

  14. 5ZQF4DSJQUͰͷ1IBOUPNUZQF
    w ܕ͕ࢦ͢ߏ଄ʹ஫໨͢ΔͨΊɺ/BNFΛͲ͏ม͑ͯ΋TUSJOHͱղऍ͞ΕΔɻ
    w 3BX4USJOH΋&ODPEFE4USJOH΋TUSJOHͳͷͰɺ54Ͱ͸ܕΤϥʔʹͳΒͳ͍ɻ
    w ߏ଄΋/BNFΛݩʹͯ͠ม͑Δඞཁ͕͋Δɻ

    View Slide


  15. w z࣮ࡍͷߏ଄zΛม͑ͣʹܕ͕ࢦ͢ߏ଄Λݟͨ໨্Ͱม͑Δϝιουɻ
    w #SBOEFEUZQFͱݺ͹Ε͍ͯΔ΋ͷͰɺ;PEݻ༗ͷ΋ͷͰ͸͋Γ·ͤΜɻ
    w l3BXzͷ෦෼Λม͑Δͱߏ଄ʹࠩҟ͕ੜ·ΕΔͷͰܕΤϥʔʹͳΔɻ
    ;PEͷCSBOEϝιου
    💡TUSJOHͱ͸ҧ͏ߏ଄Λ࣋ͬͨܕʹͳ͍ͬͯΔ

    View Slide

  16. /BNFE4USJOHΛ࣮૷͢Δ

    OBNFE4USJOH4DIFNB/BNF
    TUSJOH
    TUSJOH#3"/%/BNF
    PS
    7BMJEBUJPO&SSPS
    *OQVU
    4DIFNB
    0VUQVU
    /BNF
    ܕҾ਺

    View Slide

  17. ࣮૷ͨ͠/BNFE4USJOHΛ࢖͏
    w [JOGFS͸εΩʔϚ͔Β0VUQVUͷܕΛಋग़͢ΔͨΊͷ΋ͷɻ
    w OBNFE4USJOH4DIFNBΛ࢖ͬͯ1IBOUPNUZQFͷΑ͏ʹܕΤϥʔʹͰ͖Δɻ

    View Slide

  18. ࠷ޙʹ
    w ͓࿩ͨ͠ɺ͋Δ͋ΔͳόϦσʔγϣϯҎ֎ͷ࢖͍ಓ
    w Ϗϧυ࣌ىಈ࣌ͷ؀ڥม਺ͷόϦσʔγϣϯʹ࢖͏ɻ
    w 1IBOUPNUZQFͷఆٛʹ࢖͏ɻ
    w ଞͷ࢖͍ಓΛ͝ଘ஌ͷํ͸ੋඇڭ͍͑ͯͩ͘͞😎
    w ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ

    View Slide

  19. View Slide