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

実践テスト駆動開発 in iOS/TDD_in_iOS

実践テスト駆動開発 in iOS/TDD_in_iOS

俺コン Vol.1 / Day. 2

Yusuke Hosonuma

October 03, 2017
Tweet

More Decks by Yusuke Hosonuma

Other Decks in Technology

Transcript

  1. Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    Զίϯ Vol.1 Day. 2
    2017/10/03 (Tue)

    ࡉপ ༞հ@DeNA
    ࣮ફςετۦಈ։ൃJOJ04
    1

    View Slide

  2. ˙:VTVLF)PTPOVNBʢ!UPCJʣ
    • ॴଐ
    ⁃ %F/"48&5άϧʔϓςετج൫νʔϜ
    • 'BWPSJUF

    • ۙگ
    ⁃ J04%$Ͱ-5ొஃ
    ⁃ 'BTUMBOFʹॳ$POUSJCVUJPO
    ⁃ 5XJUUFSΞΠίϯΛม͑ͨ
    ⁃ 4UBDL0WFSqPXͰॳճ౴
    ⁃ ԶίϯEBZͰॳ࢘ձ
    ࣗݾ঺հ
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    2

    View Slide

  3. ࠓ೔ɺ࿩͢͜ͱ
    3
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  4. J04ΞϓϦ։ൃͰ
    ςετࣗಈԽɾ5%%Λ
    Ͳ͏ద༻͢Δ͔ʁ
    4
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    ࢲͷߟ͑Λ࿩͠·͢

    View Slide

  5. ΞδΣϯμ
    5
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • 5%%ͷ෮श
    • J04ΞϓϦ։ൃʹ͓͚Δ
    • ࣗಈςετͷ՝୊
    • 5%%
    • ϥΠϒίʔσΟϯά
    • ·ͱΊ

    View Slide

  6. ςετۦಈ։ൃʢ5%%ʣͱ͸
    6
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  7. ςετۦಈ։ൃʢTDDʣͱ͸
    7
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • ςετΛઌʹॻ͘ελΠϧͷʮ։ൃख๏ʯ
    • 3&%ˠ(SFFOˠ3FGBDUPS
    • ,FOU#FDL͕ఏএ

    View Slide

  8. ςετۦಈ։ൃʢTDDʣͱ͸
    8
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    RED
    Green
    Refactor
    ςετΛॻ͘
    ࠷௿ݶͷ࣮૷
    ॏෳΛऔΓআ͘

    View Slide

  9. 5%%ͷ
    ϝϦοτɾσϝϦοτ
    9
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  10. TDD ͷϝϦοτ
    10
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • ઌʹςετΛॻ͘͜ͱͰΰʔϧ͕໌֬ʹ
    • ςετ͠΍͍͢ઃܭʹͳΔ
    • Ұ౓ʹҰͭͷ͜ͱ͚ͩ΍Δ͜ͱͰूத
    • ෆ҆ΛݮΒͤΔ

    View Slide

  11. TDD ͷσϝϦοτ
    11
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • εΩϧ͕ඞཁ
    • ա৒ͳઃܭʹͳΔ͜ͱ΋
    • 5%%JT%FBE
    • ద༻ͮ͠Β͍ྖҬ΋
    • ηΩϡϦςΟιϑτ

    View Slide

  12. J04ΞϓϦ։ൃͰ͸
    Ͳ͏ͳͷ͔ʁ
    12
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  13. ͦͷલʹʜ
    13
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  14. υΩυΩೋ୒ΫΠζ
    "ɺ#ɺͲͪΒ͕ਖ਼͍͠ʁ
    14
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  15. ୈ̍໰
    15
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  16. ɹɹ"ςετͷͳ͍ίʔυ
    ɹɹ#ςετͷ͋Δίʔυ
    16
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  17. ɹɹ"ςετͷͳ͍ίʔυ
    ɹɹ#ςετͷ͋Δίʔυ
    17
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  18. ୈ̎໰
    18
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  19. ɹɹ"Ձ஋ΛੜΉ͚Ͳɺόάͷ͋Δίʔυ
    ɹɹ#όά͕ແ͍͚ͲɺՁ஋Λੜ·ͳ͍ίʔυ
    19
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  20. ɹɹ"Ձ஋ΛੜΉ͚Ͳɺόάͷ͋Δίʔυ
    ɹɹ#όά͕ແ͍͚ͲɺՁ஋Λੜ·ͳ͍ίʔυ
    20
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  21. ୈ໰
    21
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  22. ɹɹ"Ձ஋ΛੜΉ͕ɺςετͷͳ͍ίʔυ
    ɹɹ#ςετ͕͋Δ͕ɺՁ஋Λੜ·ͳ͍ίʔυ
    22
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  23. ɹɹ"Ձ஋ΛੜΉ͕ɺςετͷͳ͍ίʔυ
    ɹɹ#ςετ͕͋Δ͕ɺՁ஋Λੜ·ͳ͍ίʔυ
    23
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  24. ࠷ॳͷ໰୊
    24
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  25. ɹɹ"ςετͷͳ͍ίʔυ
    ɹɹ#ςετͷ͋Δίʔυ
    25
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  26. ɹɹ"ςετͷͳ͍ίʔυ
    ɹɹ#ςετͷ͋Δίʔυ
    26
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    ͲͪΒ͕ਖ਼͍͔͠͸৔߹ʹΑΔ
    ௜໧ʜͦΕ͕౴͑ͩ

    View Slide

  27. ςετΛॻ͘͜ͱ͕
    ৗʹਖ਼͍͠Θ͚Ͱ͸ͳ͍
    27
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  28. J04ΞϓϦʹ͓͚Δ
    ςετࣗಈԽͷ՝୊
    28
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  29. ςετࣗಈԽͷ՝୊
    29
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • εΩϧ͕ඞཁ
    • ࣮૷ίετ
    • ϝϯςφϯείετ
    • ࣮ߦʹ͕͔͔࣌ؒΔ

    View Slide

  30. ςετࣗಈԽͷ՝୊
    30
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • εΩϧ͕ඞཁ
    • ࣮૷ίετ
    • ϝϯςφϯείετ
    • ࣮ߦʹ͕͔͔࣌ؒΔ
    ͜Ε͕ຊ౰ͷ՝୊ʁ

    View Slide

  31. Ұ൪ͷ՝୊
    31
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  32. τϨʔυΦϑͷݟۃΊ
    32
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  33. τϨʔυΦϑͷݟۃΊ
    33
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • Ͳ͜·ͰࣗಈςετΛద༻͢Δͷ͔ʁ
    • ΧόϨοδ
    • ୭͕ϝϯςφϯεΛ͢Δʁ
    • ͭ·Δͱ͜ΖɺͲ͜ʹՁ஋Λஔ͖͍ͨʁ

    View Slide

  34. τϨʔυΦϑͷݟۃΊ
    34
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • Ͳ͜·ͰࣗಈςετΛద༻͢Δͷ͔ʁ
    • ΧόϨοδ
    • ୭͕ϝϯςφϯεΛ͢Δʁ
    • ͭ·Δͱ͜ΖɺͲ͜ʹՁ஋Λஔ͖͍ͨʁ
    ͔ͬ͠Γߟ͑ͳ͍ͱɺςετΛ࡞Δ͜ͱ
    ͕໨తʹͳΓɺ࠷ޙ͸ࣺͯΒΕΔ

    View Slide

  35. खڧ͍࣭໰
    35
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  36. खڧ͍࣭໰
    36
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • ԿͷͨΊʹςετΛࣗಈԽ͢Δͷʁ
    • νʔϜશһ͕ೲಘ͍ͯ͠Δʁ
    • ଞͷ1+ͷ੒ޭࣄྫΛͦͷ··ద༻ͯ͠ͳ͍ʁ
    • Ձ஋Λੜ·ͳ͍ςετʹ߆ͬͯͳ͍ʁ
    • ͦ΋ͦ΋ࣗಈԽ͢Δඞཁ͋Δͷʁ

    View Slide

  37. खڧ͍࣭໰
    37
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • ԿͷͨΊʹςετΛࣗಈԽ͢Δͷʁ
    • νʔϜશһ͕ೲಘ͍ͯ͠Δʁ
    • ଞͷ1+ͷ੒ޭࣄྫΛͦͷ··ద༻ͯ͠ͳ͍ʁ
    • Ձ஋Λੜ·ͳ͍ςετʹ߆ͬͯͳ͍ʁ
    • ͦ΋ͦ΋ࣗಈԽ͢Δඞཁ͋Δͷʁ
    ςετٕ๏͸੔͖͕ͬͯͨɺࣗ෼͕ͨͪ
    ඞཁͳ΋ͷΛऔࣺબ୒͢Δ͜ͱ͕ॏཁ

    View Slide

  38. ͍ͭςετࣗಈԽʹ
    औΓ૊Ή͔ʁ
    38
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  39. ͍ͭςετࣗಈԽʹऔΓ૊Ή͔ʁ
    39
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    ϏδωεతʹՁ஋ΛੜΉͱݟࠐΊͨ࣌
    ࢢ৔ͰՁ஋ΛੜΉ͔Θ͔Βͳ͍ஈ֊Ͱɺ
    ςετΛࣗಈԽ͢ΔՁ஋͸ബ͍
    ϓϩάϥϚ͕࣮૷࣌ʹෆ҆Λײ͡Δ෦෼
    ωΨςΟϒͳײ৘͸ɺ
    ଟ͘ͷ࡞ۀʹϚΠφεͳӨڹΛ༩͕͑ͪ

    View Slide

  40. J04ΞϓϦ։ൃʹ͓͚Δ
    ςετۦಈ։ൃʢ5%%ʣ
    40
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  41. iOSΞϓϦ։ൃʹ͓͚ΔTDD
    41
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • 6*ςετ
    ɹ⭕ࣗ৴Λײͯ͡ɺ಺෦ઃܭͷվળ͕͠΍͘͢
    ɹ❌࣮૷ʹ͸͕͔͔࣌ؒΔ
    • ୯ମςετ
    ɹ⭕ςετ͠΍͍͢ઃܭʹͳΔ
    ɹ⭕҆શωοτ͕ுΓ८Β͞ΕΔ

    View Slide

  42. ϥΠϒίʔσΟϯά
    42
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  43. ࡞Δ΋ͷ
    43
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    λοϓͨ͠Βϝοηʔδ͕දࣔ

    View Slide

  44. ϥΠϒίʔσΟϯά
    Λऴ͑ͯ
    44
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  45. ϥΠϒίʔσΟϯάΛऴ͑ͯ
    45
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • Ұͭͷ͜ͱʹूதͰָ͖͍ͯ͠
    • Ͱ΋γϛϡϨʔλىಈʹ͸͔͔࣌ؒΔͳ
    • ϦϑΝΫλϦϯά͸΍͸Γྑ͍श׳ͩ
    • ϝοηʔδ͕มΘͬͨΒमਖ਼͠ͳ͍͔ɾɾɾ
    • ॏཁͳέʔε͸ྑ͍͚Ͳ͜ͷςετ͸ա৒͔ͳ
    • ୯ମϨϕϧͩͬͨΒ5%%Ͱྑ͍͔΋ʁ

    View Slide

  46. ϥΠϒίʔσΟϯάΛऴ͑ͯ
    46
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • Ұͭͷ͜ͱʹूதͰָ͖͍ͯ͠
    • Ͱ΋γϛϡϨʔλىಈʹ͸͔͔࣌ؒΔͳ
    • ϦϑΝΫλϦϯά͸΍͸Γྑ͍श׳ͩ
    • ϝοηʔδ͕มΘͬͨΒमਖ਼͠ͳ͍͔ɾɾɾ
    • ॏཁͳέʔε͸ྑ͍͚Ͳ͜ͷςετ͸ա৒͔ͳ
    • ୯ମϨϕϧͩͬͨΒ5%%Ͱྑ͍͔΋ʁ
    ײ৘ɾؾ͖ͮΛେ੾ʹ͠Α͏ʂ

    View Slide

  47. ·ͱΊ
    47
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  48. ·ͱΊ
    48
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.
    • େ੾ͳͷ͸Ձ஋ͷݟۃΊ
    • ܧଓతʹτϨʔυΦϑΛݟۃΊ͍ͯ͘
    • ϝϯόʔͷ੠Λௌ͘
    • ςετͷ੠Λௌ͘
    • J04Ͱ΋5%%͸׆༻Ͱ͖Δ
    • ײ৘ͷϑΟʔυόοΫΛେ੾ʹ͠Α͏
    • ۜͷ஄ؙ͸ͳ͍

    View Slide

  49. %F/"5FTUJOH#MPH
    1VCMJTIFE
    IUUQTXFUEFOBDPN
    49
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide

  50. &OKPZ%FWFMPQNFOU
    XJUI5%%
    50
    Copyright (C) DeNA Co.,Ltd. All Rights Reserved.

    View Slide