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

テストは書かないと宣言していたアプリの現在 #yjbonfire/bonfire_5

fromkk
March 26, 2019

テストは書かないと宣言していたアプリの現在 #yjbonfire/bonfire_5

Bonfire #5 で発表した内容です。
https://yj-meetup.connpass.com/event/113035/

弊社のアプリは2014年から運用していますが、5年の間にアプリにはテストを書かないと社内に宣言した事がありました。
そんなアプリも人が入れ替わり立ち代りして、現在どうなったのかをお話ししました。

fromkk

March 26, 2019
Tweet

More Decks by fromkk

Other Decks in Programming

Transcript

  1. ςετ͸ॻ͔ͳ͍ͱએݴ
    ͍ͯͨ͠ΞϓϦͷݱࡏ
    #POpSFJ04ZKCPOpSF
    !1

    View Slide

  2. 1SPpMF
    struct Profile {
    let name = "Kazuya Ueoka"
    let twitter = "@fromkk"
    let github = "fromkk"
    let qiita = "fromkk"
    let company = "Timers Inc."
    }

    !2

    View Slide

  3. ৼΓฦΓ
    !3

    View Slide

  4. ৼΓฦΓ
    !4
    ౓ॏͳΔ൑அϛε
    w ϦχϡʔΞϧΛ0CKFDUJWF$Ͱ΍ͬͯ͠·ͬͨ
    w .7$Ͱಥ͖ਐΜͰ͠·ͬͨ IUUQTUFDICMPHUJNFST
    JODDPNFOUSZOPU@NPEFSO@BSDIJUFDUVSF

    w ςετ͸ॻ͔ͳ͍ͱએݴͯ͠͠·ͬͨ
    w ͳͲ༷ʑʜ

    View Slide

  5. ৼΓฦΓ
    !5
    ౓ॏͳΔ൑அϛε
    w ϦχϡʔΞϧΛ0CKFDUJWF$Ͱ΍ͬͯ͠·ͬͨ
    w .7$Ͱಥ͖ਐΜͰ͠·ͬͨ IUUQTUFDICMPHUJNFST
    JODDPNFOUSZOPU@NPEFSO@BSDIJUFDUVSF

    w ςετ͸ॻ͔ͳ͍ͱએݴͯ͠͠·ͬͨ
    w ͳͲ༷ʑʜ
    4XJGUʹ͍ͯͨ͠Β

    View Slide

  6. ৼΓฦΓ
    !6
    ౓ॏͳΔ൑அϛε
    4XJGUʹ͍ͯͨ͠Β
    ૄ݁߹ͳΞʔΩςΫνϟʹ͍ͯͨ͠Β
    w ϦχϡʔΞϧΛ0CKFDUJWF$Ͱ΍ͬͯ͠·ͬͨ
    w .7$Ͱಥ͖ਐΜͰ͠·ͬͨ IUUQTUFDICMPHUJNFST
    JODDPNFOUSZOPU@NPEFSO@BSDIJUFDUVSF

    w ςετ͸ॻ͔ͳ͍ͱએݴͯ͠͠·ͬͨ
    w ͳͲ༷ʑʜ

    View Slide

  7. ৼΓฦΓ
    !7
    ౓ॏͳΔ൑அϛε
    4XJGUʹ͍ͯͨ͠Β
    ૄ݁߹ͳΞʔΩςΫνϟʹ͍ͯͨ͠Β
    ςετΛॻ͍͍ͯͨΒ
    w ϦχϡʔΞϧΛ0CKFDUJWF$Ͱ΍ͬͯ͠·ͬͨ
    w .7$Ͱಥ͖ਐΜͰ͠·ͬͨ IUUQTUFDICMPHUJNFST
    JODDPNFOUSZOPU@NPEFSO@BSDIJUFDUVSF

    w ςετ͸ॻ͔ͳ͍ͱએݴͯ͠͠·ͬͨ
    w ͳͲ༷ʑʜ

    View Slide

  8. ׬શʹϛεͬͨ
    !8

    View Slide

  9. ΍ͬͨࣄ
    !9

    View Slide

  10. 7*1&3
    w 7JFX *OUFSBDUPS 1SFTFOUFS &OUJUZ 3PVUFSͷ಄จࣈ
    w ֤ϨΠϠʔΛ*OUFSGBDF 1SPUPDPM
    Ͱܨ͙ࣄͰૄ݁߹ʹ
    w %*ͰΦϒδΣΫτΛࠩ͠ସ͑ΔࣄͰςετΛՄೳʹ
    !10

    View Slide

  11. νΣοΩϯά
    !11
    νΣοΩϯάʢνΣοΫ͢Δ͜ͱʣͱ͸ɺ͢Ͱʹ͋Δ৴೦Λ֬ೝ͢Δͱ͍͏ಈػ͔Β࣮
    ࢪ͢Δ΋ͷͰ͢ɻνΣοΩϯά͸֬ೝɺݕূɺଥ౰ੑ֬ೝͱ͍͏ϓϩηεʹͳΓ·͢ɻ
    ͢ͰʹͦΕ͕ਖ਼͍͠ͱ৴͍ͯ͡Δͱ͖ʹɺνΣοΩϯάʹΑͬͯͦͷ৴೦Λ֬ೝ͠·
    ͢ɻίʔυΛมߋͯ͠΋͜Ε·Ͱಉ͡Α͏ʹ͢΂ͯಈ࡞͢Δ͜ͱΛ͔֬Ί͍ͨͱ͖ʹɺ
    ࢲͨͪ͸νΣοΫ͠·͢ɻ
    ςεςΟϯάʢςετ͢Δ͜ͱʣͱ͸ɺ৽͍͠৘ใΛݟ͚ͭΔͱ͍͏ಈػ͔Β࣮ࢪ͢Δ
    ΋ͷͰ͢ɻςεςΟϯά͸୳ࡧɺൃݟɺڀ໌ɺֶशͱ͍͏ϓϩηεʹͳΓ·͢ɻධՁ͢
    Δͭ΋ΓͰɺ͋Δ͍͸૝ఆ֎ͷ໰୊Λݟ͚ͭΔͭ΋ΓͰɺ੡඼Λઃఆͯ͠ɺಈ͔͠ɺ؍
    ࡯͢Δͱ͖ʹɺࢲͨͪ͸ςετ͠·͢ɻ
    IUUQTXXXJOGPRDPNKQOFXTUFTUJOHPSDIFDLJOH

    View Slide

  12. 4XJGU.PDL(FOFSBUPS9DPEF4PVSDF&EJUPS&YUFOTJPO
    4UVC4QZͷ࣮૷Λࣗಈੜ੒ͯ͘͠ΕΔ
    !12
    IUUQTHJUIVCDPNTFBOIFOSZ4XJGU.PDL(FOFSBUPS'PS9DPEF

    View Slide

  13. νΣοΩϯάͷαϯϓϧ1U
    !13

    View Slide

  14. νΣοΩϯάͷαϯϓϧ1U
    !14
    EFMFHBUFύλʔϯͷςετ
    DMPTVSFͷςετ

    View Slide

  15. λεΫσʔ
    w ೥݄ݱࡏ
    िؒεϓϦϯτ
    w िؒͷ಺೔Λ69΍όάमਖ਼ɺϦϑΝΫλϦϯάɺٕज़తෛ
    ࠴ͷฦࡁͳͲͷҝʹ࢖͏࣌ؒ
    !15

    View Slide

  16. ݁Ռ
    !16
    w ςετΛॻ͍͍ͯͨΒ
    w ૄ݁߹ͳΞʔΩςΫνϟʹ͍ͯͨ͠Β
    w 4XJGUʹ͍ͯͨ͠Β

    View Slide

  17. ݁Ռ
    !17
    w ςετΛॻ͍͍ͯͨΒ
    w ૄ݁߹ͳΞʔΩςΫνϟʹ͍ͯͨ͠Β
    w 4XJGUʹ͍ͯͨ͠Β

    View Slide

  18. ݁Ռ
    !18
    ˠ৽ػೳ͸7*1&3ʹͳͬͨ
    w ςετΛॻ͍͍ͯͨΒ
    w ૄ݁߹ͳΞʔΩςΫνϟʹ͍ͯͨ͠Β
    w 4XJGUʹ͍ͯͨ͠Β

    View Slide

  19. ݁Ռ
    !19
    ˠ࠷ۙͷίʔυʹ͸΄ͱΜͲςετΛॻ͍͍ͯΔ
    w ςετΛॻ͍͍ͯͨΒ
    w ૄ݁߹ͳΞʔΩςΫνϟʹ͍ͯͨ͠Β
    w 4XJGUʹ͍ͯͨ͠Β
    ˠ৽ػೳ͸7*1&3ʹͳͬͨ

    View Slide


  20. !20

    View Slide

  21. !21
    ະղܾ՝୊
    w ·ͩ0CKFDUJWF$ͷίʔυ͕Ұ෦࢒͍ͬͯΔ
    w ݹ͍ίʔυʹ͸΄ͱΜͲςετ͕ແ͍ͷͰΞϯλονϟϒϧ

    View Slide

  22. ࠓޙ
    w ඼࣭޲্ҕһձͷൃ଍த
    w &&ςετͷج൫Λߏங͢Δ༧ఆ
    w কདྷతʹ͸2"ͷਓͨͪ Ұൠͷओ්
    Ͱ΋&&ςετ͕ॻ͚Δ༷
    ʹ͍ͨ͠
    !22

    View Slide

  23. ·ͱΊ
    w ౓ʑ൑அϛε΋͕͋ͬͨɺλεΫσʔͳͲΛར༻ͯ͠ண࣮ʹෛ
    ࠴Λฦࡁத
    w ςετΛॻ͘ҝʹૄ݁߹ʹग़དྷΔΞʔΩςΫνϟΛબఆ
    w ςετ͸νΣοΩϯάΛްΊʹॻ͘ɻςετͷ಺༰ΑΓ΋ςε
    τ͕ॻ͚͍ͯΔࣄ͕ॏཁɻ
    !23

    View Slide

  24. ҎԼ࣌ؒ͋Ε͹
    !24

    View Slide

  25. $*$%
    !25

    View Slide

  26. $*$%
    !26
    w ೥·Ͱ+FOLJOTϏϧυˍಠࣗ഑৴αʔόʔΛߏங
    w ೥ʙ#JUSJTF

    View Slide

  27. w J04"OESPJEʹಛԽͨ͠$*$%αʔϏε
    w ϫʔΫϑϩʔ͕(6*Ͱ؆୯ʹߏஙՄೳ
    w ฐࣾͰͷݱࡏͷϓϥϯ͸&-*5&NP
    !27

    View Slide

  28. 8FCIPPL
    w 1VTI#SBODI"SDIJWF%FQMPZ #JUSJTF%FQMPZ(BUF

    w 1VMM3FRVFTUϢχοτςετ%BOHFSΛ࣮ߦ
    w SFMFBTFϒϥϯν͕QVTI͞Εͨ৔߹͸"QQ4UPSF$POOFDU
    ʹΞοϓϩʔυ
    !28

    View Slide

  29. w ίʔυྔνΣοΫ
    w λΠϙνΣοΫ DTQFMM

    w 9DPEFTVNNBSZ
    w 4XJGUMJOU
    w -(5.
    !29

    View Slide

  30. 6*ςετ
    w ֻ͕͔࣌ؒΔˍΑ͘ίέΔ ݪҼ͸༷ʑ

    w ࠓ͸ఆظతʹ࣮ߦ͢Δ("4Λ࡞੒ͯ͠ɺਂ໷ʹൃՐ͢ΔτϦΨʔ
    Λ࡞੒
    w ϩάΛ4ʹΞοϓϩʔυ
    !30

    View Slide

  31. 5FTU4VNNBSJFT
    w J04%$Ͱൃදͨ͠6*ςετͷεΫγϣΛ·ͱΊΔπʔϧ
    w #JUSJTF্Ͱಈ࡞ͤͯ͞ੜ੒ͨ͠ը૾Λ4ʹΞοϓϩʔυ
    !31

    View Slide

  32. 13
    !32

    View Slide

  33. • αʔόʔαΠυΤϯδχΞ (PHP, Golang, AWS)
    • AndroidΤϯδχΞ (Kotlin)
    • iOSΤϯδχΞ (Swift)
    TimersͰ͸ݱࡏΤϯδχΞશ৬छ࠾༻தʂ

    ৄ͘͠͸”Timers”Ͱݕࡧ

    View Slide

  34. w Ր
    ʹ88%$΍पลΠϕϯτʹࢀՃ͢Δਓ޲͚ͷΠϕϯτΛ։࠵
    ͠·͢
    w ݄ʙ೔ʹΞϝϦΧʹߦ͘༧ఆͷํ͕͍·ͨ͠Βੋඇ͝ࢀՃ͍ͩ͘͞ʂ
    !34
    IUUQTUJNFSTDPOOQBTTDPNFWFOU

    View Slide

  35. ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠#
    !35

    View Slide