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

新規システムのためのLaravel導入とユースケース駆動開発の話

 新規システムのためのLaravel導入とユースケース駆動開発の話

以下で登壇した際のスライドです。
https://supporterz-seminar.connpass.com/event/67955/

Taketo Nakasuji

October 11, 2017
Tweet

More Decks by Taketo Nakasuji

Other Decks in Technology

Transcript

  1. ৽نγεςϜͷͨΊͷ
    Laravelಋೖͱ
    Ϣʔεέʔεۦಈ։ൃͷ࿩
    αϙʔλʔζCoLabษڧձ
    גࣜձࣾϥΠϑελΠϧσβΠϯ (LaFabricӡӦձࣾ)
    CTO தےৎਓ

    View full-size slide

  2. தے ৎਓ
    גࣜձࣾϥΠϑελΠϧσβΠϯ CTO
    ུྺ
    - ཮্ࣗӴୂ ॏഭܸ๒෭๒ख
    - SIer Πϯϑϥߏங/ۀ຿γεςϜ։ൃͳͲ
    - MSP αʔϏεاը/ΠϯϑϥΤϯδχΞ
    - Amazon Distribution Center ΤϯδχΞ
    - ݱ৬
    ࣗݾ঺հ
    !UBLFOBLBTVKJ

    View full-size slide

  3. LaFabricͱ͸ʁ
    εʔπɾγϟπΛओ࣠ͱͨ͠ΧελϜΦʔμʔͷϝϯζΞύϨϧECαʔϏεɻ

    ମͷαΠζΛొ࿥͢Δ͜ͱͰɺ͋ͳ͚ͨͩͷ̍ணΛΦϯϥΠϯͰߪೖ͢Δ͜ͱ͕Ͱ͖·͢ɻ
    ޻৔΍ϝʔΧʔͱ͓٬͞·ΛμΠϨΫτʹͭͳ͙͜ͱͰɺதؒྲྀ௨Λഉআͨ͠దਖ਼Ձ֨Ͱ͝ఏڙ͍ͯ͠·͢ɻ

    View full-size slide

  4. Technology Stack
    • PHP 5.6ܥ and 7.1ܥ
    • CakePHP 2.xܥ
    • Laravel 5.4ܥ
    ServerSide
    FrontEnd
    • Vue.js 2.xܥ
    • React 15.xܥ
    • jQuery
    etc
    • AWS
    • Github
    • CD
    Tools
    • Slack
    • Backlog
    • etc

    View full-size slide

  5. ຊ೔ͷ಺༰
    • ࿩͢͜ͱ
    • ৽نγεςϜʹ͓͚ΔϑϨʔϜϫʔΫͷબఆ
    • ཁ݅ΛͲͷΑ͏ʹ·ͱΊͯͲ͏࡞Δ͔

    • ࿩͞ͳ͍͜ͱ
    • DDDͷ࿩
    • Ϣʔεέʔεਤͷ࡞Γํ΍ϩόωετ෼ੳͷख๏

    View full-size slide

  6. ࠓճ࡞ͬͨγεςϜ
    ๓੡
    ޻৔
    ৫Γ
    ϝʔΧʔ
    ෺ྲྀ
    ड஫ ੍࡞
    ൃ஫
    ݕ඼ɾग़ՙ
    ൃૹ
    -B'BCSJDͱ޻৔ɺϝʔΧʔɺϩδεςΟΫεΛ࿈ܞ͢Δੜ࢈؅ཧγεςϜ
    ϨΨγʔͳۀք׳श͔Βͷ୤٫Λ໨తʹ։ൃ
    ੜ࢈؅ཧ
    γεςϜ

    View full-size slide

  7. Laravelબఆͷഎܠͱͦͷཧ༝

    View full-size slide

  8. എܠ
    • ਓһతଆ໘
    • ͜Ε·Ͱ͸CakePHP2.xܥ͕ϝΠϯ
    • ౰વPHPerͳϝϯόʔߏ੒
    • ٕज़తଆ໘
    • CakePHP2.xܥ͸ऴᖼ(LTS͕ग़Δͱ͍͏࿩΋…)
    • ϑΝοτίϯτϩʔϥɺϑΝοτϞσϧΛഉআ͍ͨ͠
    • ࣄۀతଆ໘
    • ௕ظతʹར༻͍ͨ͠
    • ࣄۀϑΣʔζʹݟ߹ͬͨ౤ࢿͳͷ͔
    • όʔϯϨʔτɾϥϯ΢ΣΠͱͷݟ߹͍

    View full-size slide

  9. νΣοΫͨ͠఺
    • Github ελʔ਺
    • Google Trends
    • Model Directory͕ͳ͍
    • Model΍ϏδωεϩδοΫͱ޲͖߹͏
    • ։ൃεϐʔυ
    • SQLΛ࿈૝͠΍͍͢ORM
    • पғʹLaravelΛར༻͍ͯ͠Δاۀ͕ଟ͔ͬͨ
    • ࣄྫ΍ϋϚΓͲ͜ΖͳͲฉ͚Δ

    View full-size slide

  10. ಋೖલͷݒ೦ͱରࡦ
    • ݸਓར༻͸Ҏલ͔Β͍͕ͯͨ͠ɺଞͷϝϯόʔ͸Ͳ͏͔

    ὎αϯϓϧΞϓϦΛ࡞Γॻ͖ຯΛνΣοΫ
    • ࣗ༝౓ͱن໿ͷόϥϯε

    ὎GithubͰ͓खຊʹͳΔLaravelΞϓϦΛख़ಡ͠ϝϯόʔؒͰධ࿦

    ὎l5-repositoryͷಋೖ(ϦϙδτϦύλʔϯͷಋೖ)

    View full-size slide

  11. ΞʔΩςΫνϟ
    6TFDBTFT
    #VTJOFTT-PHJD

    3FQPTJUPSZ
    %BUB4PVSDF
    %#

    $POUSPMMFS
    7JFX
    "1*

    3FRVFTU
    3FTQPOTF
    ֤ϨΠϠʔͷ੹຿ͷ໌֬ԽɺҰํ޲ͳॲཧϑϩʔɺϨΠϠʔލ͗ͷېࢭ

    View full-size slide

  12. Ϣʔεέʔεۦಈ։ൃ
    ͳͥϑϨʔϜϫʔΫͷ࿩ͷ͋ͱʹϢʔεέʔεͳͷ͔ʁ

    View full-size slide

  13. Ϣʔεέʔεۦಈ։ൃͱ͸
    ϢʔεέʔεΛى఺ͱͯ͠γεςϜͷཱͪৼΔ෣͍΍ཁ݅Λఆٛͯ͠
    ։ൃΛਐΊΔख๏ɻ
    Ϣʔεέʔε͸ɺΞΫλʔ(Ϣʔβʔ΍֎෦γεςϜ)Λ໌֬ʹ͠ɺΞ
    Ϋλʔͷৼ෣(ૢ࡞)Λఆٛ͢ΔɻʮͩΕ͕ʯʮͳʹΛ͢Δʯͱ͍͏γ
    ϯϓϧͳॻ͖ํͰʮΞΫλʔࢹ఺ͰγεςϜͷৼ෣Λදݱ͢Δʯ͜
    ͱɻڞ௨Խ͞Εͨίϛϡχέʔγϣϯखஈͱଊ͑Δ͜ͱ΋Ͱ͖Δɻ

    View full-size slide

  14. ΞʔΩςΫνϟ͓͞Β͍
    6TFDBTFT
    #VTJOFTT-PHJD

    3FQPTJUPSZ
    %BUB4PVSDF
    %#

    $POUSPMMFS
    7JFX
    "1*

    3FRVFTU
    3FTQPOTF
    Ӭଓతʹݟ௨͕͠ྑ͍ίʔυΛҡ࣋͠ɺϝϯςφϒϧͳγεςϜͰ͋Γଓ͚
    Δʹ͸Ϣʔεέʔε͕؊৺

    View full-size slide

  15. ϒϥϯίͷ࿩Λ͠Α͏

    View full-size slide

  16. ͳͥ͜͏ͳΔͷ͔ʁ

    View full-size slide

  17. ͋Γ͕ͪͳ͜ͱ
    • ͍ͭͷؒʹ͔ग़དྷ্͕ͬͨಠࣗ༻ޠ
    • ಠࣗ༻ޠࣗମ͸ѱͰ͸ͳ͍
    • ίϯςΫετͷڞ༗ͷ೉͠͞
    • ංେԽ͢Δཁٻ
    • ΤϯδχΞͷཁ݅ఆٛ͸ઐ໳తͰΘ͔ΓͮΒ͍
    • ఻͍͑ͨ͜ͱ͕ݴޠԽͰ͖͍ͯͳ͍
    • ΤϯδχΞʹͲ͏఻͑ͨΒ͍͍͔Θ͔Βͳ͍
    ͦͷଟ͘͸ϢʔεέʔεͷఆٛͰղܾͰ͖Δ

    View full-size slide

  18. ྫɿࣗಈൢചػͷ։ൃ
    • ͓ۚΛೖΕͨΒߪೖͰ͖ΔΑ͏ʹ͍ͨ͠
    • ྫྷ͍ͨҿΈ෺ͱԹ͔͍ҿΈ෺Λൢച͍ͨ͠
    • ͓ۚ͸1ԁۄͱ5ԁۄҎ֎શͯΛѻ͍͍ͨ
    • ߗ՟͕౤ೖ͞ΕΔͱfunction x͕ݺͼग़͞Εɺͦͷߗ՟ͷछྨΛ൑
    ผͨ͠ޙʹfunction yΛ(ry

    View full-size slide

  19. मਖ਼ɿࣗಈൢചػͷ։ൃ
    • ސ٬͸͓ۚΛ౤ೖ͢Δ
    • ސ٬͸ߪೖ͢Δ঎඼ͷϘλϯΛԡ͢
    • ࣗಈൢചػ͸ސ٬͕બ୒ͨ͠঎඼Λഉग़͢Δ
    ˞ͩΕ͕ΛᐆດʹͤͣΞΫλʔΛ༻͍ͯදݱ͢Δ
    ˞ϢʔβʔͳͲᐆດͳΞΫλʔ໊Λ࢖༻͠ͳ͍ ิॆһ΋ϢʔβͩͬͨΓ

    ˞ΞΫλʔࢹ఺Ͱͷৼ෣Ͱهड़͢Δ
    ʮ͓ۚΛೖΕͨΒߪೖͰ͖ΔΑ͏ʹ͍ͨ͠ʯ
    ᐆດͳදݱ΍είʔϓΛϢʔεέʔεΛ༻͍ͯ෼ղ͢Δ

    View full-size slide

  20. Ϣʔεέʔε͕ᐆດͳϓϩάϥϜ
    function dischargeDrink() {
    // do something
    }
    υϦϯΫΛഉग़͢ΔػೳΛ૝ఆ
    ഉग़ʁʁ
    ސ٬͕ߪೖͨ͠ΒυϦϯΫ͸ഉग़͞ΕΔ͕ɺ঎඼ೖΕସ͑࣌ʹิॆһ͕ഉग़
    ͢Δ͜ͱ΋͋ΔͷͰ͸ ࣮ࡍ͸ػցతͳૢ࡞͔΋

    ͍ͣΕʹͤΑɺ͜ͷػೳ͕ͩΕʹͳʹΛఏڙ͍ͯ͠Δͷ͔Θ͔Βͳ͍ɻ

    View full-size slide

  21. ΞʔΩςΫνϟ࠶ܝ
    6TFDBTFT
    #VTJOFTT-PHJD

    3FQPTJUPSZ
    %BUB4PVSDF
    %#

    $POUSPMMFS
    7JFX
    "1*

    3FRVFTU
    3FTQPOTF
    ఆٛͨ͠ϢʔεέʔεΛγεςϜ্ͷϢʔεέʔεʹམͱ͠ࠐΉɻ
    ϢʔεέʔεγφϦΦϓϩάϥϜ্ͷϢʔεέʔε
    ˞γεςϜن໛ʹԠͯ͡Ϣʔεέʔεਤ΍ϩόωετ෼ੳ΋༻͍Δ

    View full-size slide

  22. ·ͱΊ
    • ٕज़ͦͷ΋ͷͷධՁ΋େࣄ͕ͩͦΕΛѻ͏ΤϯδχΞʹ΋ண໨͢
    Δ
    • ڞ௨Խ͞ΕͨίϛϡχέʔγϣϯͰ൵͠Έͷͳ͍։ൃΛ
    • ϒϥϯίͷ࿩Λࢥ͍ग़ͨ͠ΒԿ͔͕ͣΕ͍ͯΔ࣌ɻҰ౓ཱͪฦΔ
    ͱྑ͍͔΋

    View full-size slide

  23. ৄ͘͠͸ͪ͜Β
    http://lifestyledesign.co.jp/jobs/
    We’re Hiring
    • αʔόʔαΠυΤϯδχΞ
    • ϑϩϯτΤϯυΤϯδχΞ
    • σβΠφʔ
    ٕज़Λۦ࢖ͯ͠ΞύϨϧۀքʹֵ໋Λى͍ͨ͜͠ํɺઈࢍืूதʂ

    View full-size slide