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

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

考えました。

01e1fde913d3dee6c3fd5a67d54bc0d4?s=128

y_ahiru

May 22, 2019
Tweet

Transcript

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

  2. ࣗݾ঺հ   ٢ా͋ͻΔ !TUSUZVV τΡΪϟολʔגࣜձࣾ 4PGUXBSF&OHJOFFS

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

  4. &MPRVFOU   Active Record Domain Model ORM × ×

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

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

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

  8. &MPRVFOUͷྑ͍ॴ   ɾߴػೳʂ ɾָʹ։ൃ͕Ͱ͖Δʂ ɾศརͳϥΠϒϥϦ΋ͨ͘͞Μʂ

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

  10.   ΫΤϦͷ࠷దԽ

  11.   4&-&$5  '30.AQPTUTA 8)&3&AQPTUTAAJEA -*.*5 4&-&$5  '30.ADPNNFOUTA

    8)&3& ADPNNFOUTAAQPTU@JEA  "/%ADPNNFOUTAAQPTU@JEA*4/05/6--
  12.   4&-&$5  '30.AVTFSTA 8)&3&&9*454  4&-&$5  '30.AQPTUTA

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

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

  15. 3FQPTJUPSZύλʔϯ   ɾӬଓԽઌͱͷ΍ΓͱΓΛӅณ͢Δ

  16.  

  17.  

  18.   ͑ͬ

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

  20.   ϑΝοτʹͳΓ͕ͪ

  21. ΈΜͳ͕&MPRVFOUʹ΍Βͤͯ ͦ͏ͳ͜ͱ   ɾ%#ͱͷ΍ΓͱΓ ɾଞͷ&MPRVFOUͱͷϦϨʔγϣϯ ɾυϝΠϯϞσϧͱͯ͠ͷৼΔ෣͍

  22. &MPRVFOUΛϑϧ׆༻ͯ͠Δਓ ͕΍ͬͯͦ͏ͳ͜ͱ   ɾϓϩύςΟͷόϦσʔγϣϯ ɾϓϨθϯςʔγϣϯϩδοΫ

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

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

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

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

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

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

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

    ɾ.Z42-ͷ7*&8͸*OEFYͷ໰୊ͱ͔͋ΔͷͰʜ
  30.   ɾ࠷େͷϝϦοτͰ΋͋Δ%#ͱີ݁߹ͳ෦ ෼͸ɺಉ࣌ʹ࠷େͷσϝϦοτʹ΋ͳΓ͑Δ ७ਮͳυϝΠϯϞσϧ͕ඞཁʹͳͬͨΒɺ &MPRVFOUͱ͓ผΕ͢Δ߹ਤͳͷ͔΋͠Εͳ ͍ ٽ ɾ͜Ε͸&MPRVFOUͷຊ࣭తͳ෦෼ͱͷ૬ੑ ͷѱ͞

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

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

    ɹIUUQTHJUIVCDPNSBQQBTPGUMBSBWFMCPJMFSQMBUF