Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Eloquentに別れを告げるタイミングについて考えた

 Eloquentに別れを告げるタイミングについて考えた

考えました。

y_ahiru

May 22, 2019
Tweet

More Decks by y_ahiru

Other Decks in Programming

Transcript

  1. Laravel Meetup Tokyo Vol.12
    ٢ా͋ͻΔ (@strtyuu)
    &MPRVFOUʹผΕΛࠂ͛Δ
    λΠϛϯάʹ͍ͭͯߟ͑ͨ

    View Slide

  2. ࣗݾ঺հ


    ٢ా͋ͻΔ
    !TUSUZVV
    τΡΪϟολʔגࣜձࣾ
    4PGUXBSF&OHJOFFS

    View Slide



  3. $VSBUJPO$PNNVOJDBUJPO1MBUGPSN
    IUUQTUPHFUUFSDPN
    ·ͱΊΑ͏ɺ͋ͭ·Ζ͏

    View Slide

  4. &MPRVFOU


    Active
    Record
    Domain
    Model
    ORM
    × ×

    View Slide

  5. 03.


    ɾ%#͔Βऔಘͨ͠஋ΛΦϒδΣΫτʹม׵͢Δ΋ͷ

    View Slide

  6. "DUJWF3FDPSE


    ɾςʔϒϧɾϏϡʔͷεΩʔϚͱີ݁߹ͨ͠ϓϩύςΟ
    ɾϨίʔυΛΠϯελϯεԽͯ͠ৼΔ෣͍Λ࣋ͨͤΔ
    ɾυϝΠϯϞσϧͷҰछ
    ɾ%#ΞΫηεͷΧϓηϧԽ

    View Slide

  7. %PNBJO.PEFM


    ɾυϝΠϯʹଘࡏ͢Δ֓೦ΛΫϥεԽͨ͠΋ͷ
    ɾυϝΠϯʹয఺Λ౰ͯͨɺ७ਮͳϩδοΫͷू·Γ

    View Slide

  8. &MPRVFOUͷྑ͍ॴ


    ɾߴػೳʂ
    ɾָʹ։ൃ͕Ͱ͖Δʂ
    ɾศརͳϥΠϒϥϦ΋ͨ͘͞Μʂ

    View Slide

  9. &MPRVFOUͷਏͦ͏ͳॴ


    ɾΫΤϦΛ࠷దԽ͍ͨ͠ͱ͖
    ɾ3FQPTJUPSZύλʔϯͱͷ૬ੑ͕ඍົʁ
    ɾϑΝοτʹͳΓ͕ͪ
    ɾϞσϧ͕ςʔϒϧߏ଄ͱҰக͠ͳ͍ͱ͖

    View Slide



  10. ΫΤϦͷ࠷దԽ

    View Slide



  11. 4&-&$5
    '30.AQPTUTA
    8)&3&AQPTUTAAJEA -*.*5
    4&-&$5
    '30.ADPNNFOUTA
    8)&3&
    ADPNNFOUTAAQPTU@JEA
    "/%ADPNNFOUTAAQPTU@JEA*4/05/6--

    View Slide



  12. 4&-&$5
    '30.AVTFSTA
    8)&3&&9*454
    4&-&$5
    '30.AQPTUTA
    8)&3&
    AVTFSTAAJEAAQPTUTAAVTFS@JEA


    View Slide



  13. ɾ஗͍ΫΤϦ͕ు͔Εͯਏ͍
    ಀ͛ಓ͕͋ΔͷͰɺผΕΛࠂ͛Δཧ༝ʹ͸ͳ
    Γʹ͍͘ʁ
    ɾ଎౓͕ڐ༰ൣғͰ͋Ε͹ແࢹ͢Δ͜ͱ΋
    ɾΫϦςΟΧϧͳॴ͚ͩී௨ʹ42-Λॻ͍ͯ
    ޡຐԽ͢ͱ͔΋ग़དྷΔ

    View Slide



  14. Repositoryύλʔϯͱͷ
    ૬ੑ͕ඍົʁ

    View Slide

  15. 3FQPTJUPSZύλʔϯ


    ɾӬଓԽઌͱͷ΍ΓͱΓΛӅณ͢Δ

    View Slide



  16. View Slide



  17. View Slide



  18. ͑ͬ

    View Slide



  19. ɾ&MPRVFOUͰ%#ΞΫηε͕ग़དྷΔ͍ͤͰɺ
    ɹ3FQPTJUPSZͷ֎ͰΫΤϦΛॻ͍ͯ͠·͏
    &MPRVFOUʹผΕΛࠂ͛ΔΑΓ͸ɺίʔυϨ
    Ϗϡʔͱ͔ͰೝࣝΛ߹Θͤͨํ͕ྑͦ͞͏
    ɾ&MPRVFOUͷ͍ͤͱ͍͏͔ɺ࣮૷ऀͷ໰୊

    View Slide



  20. ϑΝοτʹͳΓ͕ͪ

    View Slide

  21. ΈΜͳ͕&MPRVFOUʹ΍Βͤͯ
    ͦ͏ͳ͜ͱ


    ɾ%#ͱͷ΍ΓͱΓ
    ɾଞͷ&MPRVFOUͱͷϦϨʔγϣϯ
    ɾυϝΠϯϞσϧͱͯ͠ͷৼΔ෣͍

    View Slide

  22. &MPRVFOUΛϑϧ׆༻ͯ͠Δਓ
    ͕΍ͬͯͦ͏ͳ͜ͱ


    ɾϓϩύςΟͷόϦσʔγϣϯ
    ɾϓϨθϯςʔγϣϯϩδοΫ

    View Slide



  23. ※Laravel Boilerplate -
    https://github.com/rappasoft/laravel-5-boilerplate/blob/master/app/
    Models/Auth/Traits/Attribute/UserAttribute.php
    ϓϩύςΟͷόϦσʔγϣϯ

    View Slide



  24. ※Laravel Boilerplate -
    https://github.com/rappasoft/laravel-5-boilerplate/blob/master/app/
    Models/Auth/Traits/Attribute/UserAttribute.php
    ϓϨθϯςʔγϣϯϩδοΫ

    View Slide



  25. ɾ&MPRVFOU͕ศར͗͢ΔͨΊʹɺ͋Ε΋͜
    Ε΋&MPRVFOUʹ࣮૷͢Δ͜ͱͰ'BUʹͳͬͯ
    ͠·͏͜ͱ͕͋Δ
    &MPRVFOUʹผΕΛࠂ͛ͳͯ͘΋ɺ੹຿͝ͱ
    ʹΫϥεΛ෼͚Ε͹ই͸༊͑Δ͸ͣ
    ɾ&MPRVFOUͷ͍ͤͱ͍͏͔ɺΫϥεઃܭͷ
    ໰୊

    View Slide



  26. ςʔϒϧߏ଄ͱҰக͠ͳ͍
    Ϟσϧ

    View Slide



  27. " # $ % &
    ςʔϒϧA ςʔϒϧB
    ޾ͤͳύλʔϯ
    Model A Model B

    View Slide



  28. " # $ % &
    ςʔϒϧA ςʔϒϧB
    ਏ͘ͳΔύλʔϯ
    Model A
    × ×

    View Slide

  29. ͳͥਏ͘ͳΔͷ͔


    ɾ"DUJWF3FDPSE͸ςʔϒϧɾϏϡʔͱର͕લ
    ఏͷσβΠϯύλʔϯ
    ɾKPJOલఏͷϝιου͕ଘࡏͨ͠Γ͢Δͱਏ͞ͷ
    ࢝·Γ
    ɾۀ຿ϩδοΫ͸ςʔϒϧߏ੒ͱ͸ແؔ܎ʹมԽ
    ͍ͯ͘͠
    ɾΦϒδΣΫτϑΝʔετͳઃܭͱ͸૬ੑ͕ѱ͍
    ɾ.Z42-ͷ7*&8͸*OEFYͷ໰୊ͱ͔͋ΔͷͰʜ

    View Slide



  30. ɾ࠷େͷϝϦοτͰ΋͋Δ%#ͱີ݁߹ͳ෦
    ෼͸ɺಉ࣌ʹ࠷େͷσϝϦοτʹ΋ͳΓ͑Δ
    ७ਮͳυϝΠϯϞσϧ͕ඞཁʹͳͬͨΒɺ
    &MPRVFOUͱ͓ผΕ͢Δ߹ਤͳͷ͔΋͠Εͳ
    ͍ ٽ

    ɾ͜Ε͸&MPRVFOUͷຊ࣭తͳ෦෼ͱͷ૬ੑ
    ͷѱ͞

    View Slide

  31. ·ͱΊ


    ɾ͍͍ͩͨͷਏ͞͸ɺ࣮૷ͷ޻෉ͰղܾͰ͖Δͱࢥ͏
    ɾ࣏҆ͷѱ͍ίʔυΛॻ͔ΕͨΒɺͪΌΜͱϨϏϡʔ
    Ͱ௚͍ͯ͜͠͏
    ɾΫΤϦͷ࠷దԽ͕͖͔ͭͬͨΒ͓ผΕʹͳΔ͔΋͠
    Εͳ͍͠ɺ·͊ͳΜͱ͔ͳΔ͔΋͠Εͳ͍
    ɾ७ਮͳυϝΠϯϞσϧ͕ཉ͘͠ͳͬͨΒɺଟ෼͓ผ
    Ε͠ͳ͖Ό͍͚ͳ͍

    View Slide

  32. ࢀߟࢿྉ


    ɾπΠολʔϥϯυͷΈͳ͞Μ
    ɹIUUQTUPHFUUFSDPNMJ
    ɾΤϯλʔϓϥΠζΞϓϦέʔγϣϯΞʔΩςΫνϟύλʔϯ
    ɹIUUQTXXXBNB[PODPKQEQ
    ɾ/&5ͷΤϯλʔϓϥΠζΞϓϦέʔγϣϯΞʔΩςΫνϟ
    ɹIUUQTXXXBNB[PODPKQEQ#;2;+/&
    ɾ-BSBWFM#PJMFSQMBUF
    ɹIUUQTHJUIVCDPNSBQQBTPGUMBSBWFMCPJMFSQMBUF

    View Slide