Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
agile20150512-150512055145-lva1-app6892.pdf
Search
toshi0383
March 07, 2023
Programming
0
240
agile20150512-150512055145-lva1-app6892.pdf
toshi0383
March 07, 2023
Tweet
Share
More Decks by toshi0383
See All by toshi0383
CoreDataはじめました
toshi0383
0
170
Swiftコードバトル必勝法
toshi0383
1
310
Sheets API使ってみた
toshi0383
2
360
visionOSについてGlobeeが取り組んでいること
toshi0383
0
550
たのしいAirPlay
toshi0383
1
740
Profiling using Signpost
toshi0383
2
1k
AVPlayer周りの設計tips
toshi0383
6
900
cmdshelf::from("Swift")
toshi0383
3
910
AbemaTV iOSのダウンロード再生機能
toshi0383
4
990
Other Decks in Programming
See All in Programming
複数人でのCLI/Infrastructure as Codeの暮らしを良くする
shmokmt
5
2.2k
「コードは上から下へ読むのが一番」と思った時に、思い出してほしい話
panda728
PRO
37
25k
STYLE
koic
0
150
LLM Çağında Backend Olmak: 10 Milyon Prompt'u Milisaniyede Sorgulamak
selcukusta
0
110
LLMで複雑な検索条件アセットから脱却する!! 生成的検索インタフェースの設計論
po3rin
2
640
UIデザインに役立つ 2025年の最新CSS / The Latest CSS for UI Design 2025
clockmaker
18
7.2k
AIコーディングエージェント(NotebookLM)
kondai24
0
170
Integrating WordPress and Symfony
alexandresalome
0
140
ID管理機能開発の裏側 高速にSaaS連携を実現したチームのAI活用編
atzzcokek
0
210
Microservices rules: What good looks like
cer
PRO
0
1.1k
CSC305 Lecture 17
javiergs
PRO
0
340
sbt 2
xuwei_k
0
250
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Visualization
eitanlees
150
16k
The Language of Interfaces
destraynor
162
25k
Testing 201, or: Great Expectations
jmmastey
46
7.8k
For a Future-Friendly Web
brad_frost
180
10k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
GraphQLとの向き合い方2022年版
quramy
50
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.8k
Scaling GitHub
holman
464
140k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Transcript
@toshi0383 ΞδϟΠϧΞΧσϛʔ ͷݚमʹࢀՃͨ͠Α 1 2015/05/12
❖ ླɹढ़༟ ❖ δϟζɺυϥϜɺଡ଼༲͛ ❖ GWͣͬͱReact.js ৮ͬͯ·ͨ͠
3/5 Scrum Boot Camp(ଜਓ͞Μ) 3/6 Ϧʔμϒϧίʔυ(ਢ౻ޭฏ͞Μଞ) 3/10 TDD(t-wada͞Μଞ) ʹࢀՃ͠·ͨ͠ɻ
ࢀՃͷಈػ ❖ ͬͱ͍͍ࣄͷΓํΛֶΜ Ͱɺݱʹੜ͔͍ͨ͠ͱ͍͏ࢥ ͍ ❖ ७ਮʹ৮Εͯମײͯ͠Έ͔ͨͬ ͨ
ࠓ͢͜ͱ 5 ❖ εΫϥϜʹ͍ͭͯॴײ ❖ Ϧʔμϒϧίʔυͷ࣮ફํ๏ ❖ TDDͷෑډ͕Լ͕Δ
εΫϥϜʹ͍ͭ ͯॴײ
εΫϥϜͬͯʁ 7 ❖ ΞδϟΠϧʁ ❖ ΠςϨʔγϣϯΛճͯ͠ʁ ❖ ேձͱ͔ͬͯʁ ❖ ΈΜͳָͦ͠͏ɺΈ͍ͨͳʁ
ࢲ·ͩΑ͘Θ͔Βͳ͍ͷͰ͕͢ɺ ͋Γͷ··ͷ༷ࢠΛ͓͠͠·͢ɻ
ͱ͍͑ͬͨ͜ͱͱ͍͑ ຊͷදࢴ͕ϓϦϯτ͞ΕͨࢴΛ ΓࠁΜͰγϟοϑϧ ݩͲ͓ΓʹςʔϓͰ͚ͬͭ͘Δ Γࠁ·ͳ͚ΕΑ͔ͬͨͷʹͱ ޙչ͢Δ
ڭ܇ ❖ ࢁ͔ΒͲ͏ͬͯݟ͚ͭग़͔͢ʁ ❖ ςʔϓͰ͚ͬͭ͘Δͷ͕ҙ֎ͱ ͍͠ʢٕज़ྗඞཁʣ ❖ ྃͷఆٛʁ
ଞͷΞδϟΠϧͱͲ͏ҧ͏Μʁ
֮͑Δ͜ͱ͕গͳ͍ͷͰಋೖ͍ͬͯ͢͠ݴͬͯͨ ❖ ̏ͭͷϩʔϧʢׂʣ ❖ ̐ͭͷձٞମ ❖ ̏ͭͷՌ ❖ ͪΐͬͱͨ͠ઐ༻ޠ
ϫʔΫΛͬͯΈͯɺ͍͍ͱࢥͬͨ͜ͱ ❖ ৗʹϥετεύʔτ ❖ ϑΟʔυόοΫͷ࿈ଓ ❖ ݟੵΓͷਫ਼͕͕͋ͬͯΏ͘ ❖ ৼΓฦΓͷҙٛ
ৗʹϥετεύʔτ ❖ కΊΓ͕සൟʹͬͯ͘ΔͷͰɺຖ͕ϦϦʔεؒࡍ ͷςϯγϣϯɻ ❖ ΅ʔͬͱͯ͠ΔՋ͕ͳ͍ͷͰޮ্͕͕Δ + ୡײɻ
ϑΟʔυόοΫͷ࿈ଓ νʔϜֶ͕ͼΛಘΔΈ ❖ σΠϦʔεΫϥϜ aka ேձʢຖʣ ❖ ৼΓฦΓʢΠςϨʔγϣϯ͝ͱʣ
ݟੵΓͷਫ਼্͕͕͍ͬͯ ͘
Α͋͘Δͭ ػೳ1~5ͷ։ൃ νʔϜͷ࣮ྗ 2ϲ݄ઌͷకΊΓ ऴΘΔͱࢥͬͨΜ͚ͩͲɻɻ
εΫϥϜͩͱʂ ػೳ1 కΊ Γ ػೳ2 ػೳ3 కΊ Γ కΊ Γ
ͩΜͩΜݟੵΓ͕ਖ਼֬ʹͳΔʂʢΠϝʔδʣ ※ॳΊͯಋೖ͢Δ ߹ɺษڧظؒ વඞཁɻ
ৼΓฦΓͷҙٛ
ৼΓฦΓͷҙٛ ❖ ͍͍ͱ͜ΖΛͬͱ৳͢ ❖ ࣄͷΓํΛݟ͢
ৼΓฦΓͷҙٛ 0 25 50 75 100 n݄ n + 1
݄ n + 2 ݄ n + 3 ݄ ίʔυྔ ։ൃεϐʔυ ৼΓฦΓ
ͳΔ΄ͲɺεΫϥϜΔͱࣄ ͷΓํ͕վળͰ͖ͦ͏ͩͧ
Α͠ɺ໌͔ΒεΫϥϜΔ ͧʂ
ͳʹ͔Β͡ΊΕɻɻ
ಋೖͷোน ❖ εΫϥϜʹৄ͍͠ਓ͕͍ͳͯ͘ෆ҆ͳΜͰ͚͢Ͳɻɻ ❖ εϚϗνʔϜͱαʔόνʔϜ͕ผձࣾͳͷͰશ෦εΫϥ ϜͰͰ͖ͳ͍ؾ͕ɻɻ ৄ͍͠ਓʹ͓ئ͍ͯ͠དྷͯΒ͍·͠ΐ͏ εϚϗνʔϜ͚ͩεΫϥϜͰͰ͖ͳ͍͔ݕ౼͠·͠ΐ͏ ʢ͍ۤإʣ ࣮ࡍʹߨࢣʹฉ͍ͯΈ·ͨ͠ɻ
͖ͭͮ·ͯ͠ Ϧʔμϒϧίʔ υ࣮ફ
ͷ༷ࢠ ❖ Rubyͷίϛολͷํʑ͕ߨࢣ ❖ OSSͰͷ։ൃϦϞʔτͰͷΓͱΓ͕ ଟ͍ ❖ ࣗવͱͻͱͷίʔυΛಡΜͰҙਤΛΈ औΖ͏ͱ͢Δ ❖
ॻ͘ํಡ·ΕΔͱࢥ͏ͷͰಡΈ͍͢ Α͏ʹؾΛ͔ͭ͏ ❖ ଟ͘ͷݱͰɺͻͱͷίʔυΛಡΉ࣌ ͕ؒѹతʹΓ͍ͯͳ͍ʂͱ͍͏ ఏى ❖ ͳΔ΄Ͳ
ͬͨ͜ͱ ❖ ϨγϐΛग़ྗ͢ΔΞϓϦΛͦ ΕͧΕͰ࡞Δ ❖ ύʔτφʔͷϦϙδτϦΛ ϑΥʔΫ͢Δ ❖ ͍͍ͱࢥͬͨΛॻ͖ग़͢
͍͍ͱࢥͬͨ͜ͱ ❖ Checkstyle͍ΕͨΓɺίʔσΟ ϯάنΛઃ͚ͯపఈ͢ΔΑΓ ɺ֤ࣗͷؾ͖ͮΛੜΉจԽ ͷํ͕ΑͬΆͲେࣄʢࢦఠ͠ͳ ͯ͘ࡁΉํ͕ޮతͰ͢ΑͶʁ ͱ͍͏ߟ͑ํʣ ❖ 1ߦม͑ͨΒϓογϡ͢Δ(ࠩ
͕গͳ͍ํ͕ಡΉؾʹͳΔ) ❖ ͭ·Γɺ
ϦʔμϒϧͳΜͯͨΓલʹ Γ·͠ΐ͏Αͬͯ͜ͱɻ
ͱ͍͑ɺϞνϕʔγϣϯνʔ ϜϝϯόʔͦΕͧΕͰҧ͍·͢ΑͶ
ͳʹΛݴͬͯͻͲ͍ίʔυΛॻ͍ͯ͘Δνʔ Ϝϝϯόʔ͕͍Δʢͱͨ͠ΒʂʣɻͲ͏ͨ͠ Β͍͍ʁ
ϦʔμϒϧΛ࣮ફ͢Δํ๏ ❖ ·ͣɺΈΜͳ͕ίʔυΛಡΊΔΈΛ࡞Δͱ͜Ζ͔ ΒʢίϛοτΛϝʔϧνϟοτͷ௨ʣ ❖ ͪΐͬͱมߋͨ͠Β͙͢ίϛοτͯ͠ϓογϡΛపఈ͢Δ νʔϜΈΜͳ͕͓ޓ͍ͷίʔυΛಡΉश׳Λ͚ͭΔ ேձͰʮࠓͷϦʔμϒϧʯΛڞ༗͢Δ
͜͜·ͰͰͨ͜͠ͱ ❖ εΫϥϜΛΔͱࣄ͕͏·͘ճΓͦ͏ ❖ ϦʔμϒϧίʔυΛҙࣝ͢Δͱͳ͓ྑͦ͞͏
͖ͭͮ·ͯ͠ TDDͷෑډ͕Լ ͕Δ
TDDͱ ❖ ػೳͷςετΛॻ͘ ❖ ࠷ॳςετ͕ࣦഊ͢ΔͷͰϨο υʹͳΔ ❖ ػೳΛ࣮ͯ͠ςετΛάϦʔ ϯʹ͢Δ ❖
ϦϑΝΫλ͢Δ ❖ ͜ΕΛඇৗʹখ͍͞୯ҐͰ͙ Δ͙Δճ͍ͯ͘͠։ൃख๏
Ҏલ͚ࣗͩͰͬͯΈͨTDDͲ͖ ❖ ςετͱػೳΛҰؾʹ࣮͢Δ ❖ ςετ௨ΒΜʂʢෳՕॴʣ ❖ ςετ͕௨ΔΑ͏ʹ࣮Λ͢ ❖ ςετ௨Δ ❖
ςετͷؒҧ͍ʹؾͮ͘ ❖ ςετͱ࣮ΛҰॹʹ͢ ͜ͷςετେৎ͔ͳɻɻ ͳΜ͔ςετॻ͘ํʹ͔ͬ Γ࣌ؒऔΒΕͯΔؾ͕͢Δɻɻ ❖ ͋ɺͬͺΓ͜ͷػೳ͍ΒΜ͔ͬͨΘ orz ❖ ͋ʔ͏ΞϓϦ࡞ͬͯΔͷ͔ςετ࡞ͬͯΔͷ͔ɻɻTDDͱ͔͠ΒΜΘʔ
ݚमͰͬͨTDD ❖ ςετΛॻ͘ʢ࣮ελϒʣ ❖ ςετ͕͚͜Δ ❖ ࣮Λͯ͠άϦʔϯʹ͢Δʢ࠷ڑʣ ❖ ϦϑΝΫλϦϯά ❖
ςετΛॻ͘ ❖ ࠷ڑͷ࣮ͳͷͰͪΐͬͱͻͶ͚ͬͨͩͰςετ͕͚͜Δ ❖ ࣮Λͯ͠άϦʔϯʹ͢Δʢ࠷ڑʣ ❖ ϦϑΝΫλϦϯά ❖ ςετΛॻ͘ ❖ ࠷ڑͷ࣮ͳͷͰͪΐͬͱͻͶ͚ͬͨͩͰςετ͕͚͜Δ
ϙΠϯτ ❖ Test Firstʢ1αΠΫϧ5Ҏʹ݁ͤ͞Δʣ ❖ ෆ҆ͳ͜ͱςετʹͯ͠ղফ ❖ ςετࣗମϦϑΝΫλϦϯάͷର ❖ TDDͰॻ͍ͨςετ
≠ ୯ମςετ
demo ❖ ϝτϩϊʔϜΞϓϦ ❖ TODO ❖ ςϯϙΛද͢ΫϥεΛ࡞Δ ❖ ςϯϙͷ࠷খͰϓϩάϥϜΛѻ͏ςϯϙΛ੍ݶ͢Δ ❖
ςϯϙͷ࠷େͰϓϩάϥϜΛѻ͏ςϯϙΛ੍ݶ͢Δ
TDDͰ͍͍ͱࢥͬͨ ❖ ҆৺ײ ❖ ϦϑΝΫλϦϯά͕ḿΔˠϦʔμϒϧʹͳΔʂ ❖ ͠ΐʔͳ͍όάݮΓͦ͏
ͱ͍͏͜ͱʂ
TDDʹ͍ͭͯ·ͱΊ ❖ εΫϥϜ ❖ Ϧʔμϒϧίʔυ࣮ફ ❖ TDD ❖ ࣮ફ͢Είʔυ៉ྷͰೲظकΕͯόάग़ͳ͘ͳΔʂ ❖
ເʹ·Ͱݟͨཧڷ͏͋ͳͨͷखͷதɻ
ͱɺࢥ͏ͩΖʁ
TDDͷݒ೦ ❖ ։ൃίετ૿ ❖ ςετͷϝϯςίετ૿ ❖ DB,ωοτϫʔΫͷࢼݧͷͨΊʹελϒͱ͔μϛʔσʔ λͱ͔࡞ͬͯϝϯς͢Δͷμϧ͍ ❖ UIΛTDDͰ࡞Δͷ͋·ΓϝϦοτ͕ͳ͍ͬͯt-wada
͞Μ͕ݴͬͯͨ
εΫϥϜͷݒ೦ ❖ ಋೖίετͲ͏͢Δʁ ❖ εΫϥϜ͢Δ͜ͱ͕తʹͳΓͦ͏
૯ׅʢTDDʣ ❖ ෆ׳Εͳٕज़Λѻ͏ͱ͖ʹ͍͍ͯΔ ❖ ͔͔࣌ؒΓ͗͢ΔͷͰ։ൃͯ͢ΛTDDͰΖ͏ͱ͠ ͳ͍ํ͕Α͛͞ ❖ ϖΞϓϩɺෆ׳ΕͳίʔυΛमਖ਼͢Δͱ͖ͱ͔ɺ৽ ਓΛڭҭΛѻ͏࣌ʹ༗ޮ
૯ׅʢϦʔμϒϧʣ ʮಡΉਓ͕ ɹɹɹಡΈ͚͢Ε ɹɹɹɹɹɹϦʔμϒϧʯߨࢣ ϝϯς͚͢͠ΕͦΕͰΑ͠ɻ ࠓ͔Β࣮ફ͠·͠ΐ͏ɻ
૯ׅʢεΫϥϜʣ ❖ εΫϥϜɺνʔϜͷࣄ͕͏·͘ճΔ͜ͱΛอূ͢Δ Έ ❖ ͋͘·Ͱ1ͭͷख๏ͳͷͰɺಋೖ͢ΕඞͣޮՌ͕ग़Δ ͱ͍͏ͷͰͳ͍ ❖ ͍͍ͷΛ࡞͍ͬͯ͜͏ɺ͍͍ࣄΛ͠Α͏ɺͱ͍͏จ ԽΛৢ͢ΔͨΊͷΈͱߟ͑ͨ΄͏͕͍͍͔
Ұ࿈ͷݚमʹࢀՃͯ͠Έͯࡶײ ❖ ༗ྉݚमͬͯߴ͍ͳʔͱࢥ͍·͕ͨ͠ɺແྉΑΓ༗ྉͷ ݚमͷํ͕ʮ͓ۚͬͨΜ͔ͩΒઈରʹ͚ͭͯΔʯ ͱ͍͏ؾʹͳΔͱࢥͬͨɻ ❖ ߨࢣͷํ͕ͦͷಓͷୈҰਓऀ͔ΓͩͬͨͷͰɺୡਓ͔ ΒͰԞٛΛत͔ͬͨؾʹͳΓ͓ಘͳମݧͩͬͨɻ ❖ εΫϥϜͬͯΈͨ͘ͳͬͨ
❖ Keynote͑
thank you