Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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
190
agile20150512-150512055145-lva1-app6892.pdf
toshi0383
March 07, 2023
Tweet
Share
More Decks by toshi0383
See All by toshi0383
CoreDataはじめました
toshi0383
0
120
Swiftコードバトル必勝法
toshi0383
1
260
Sheets API使ってみた
toshi0383
2
310
visionOSについてGlobeeが取り組んでいること
toshi0383
0
490
たのしいAirPlay
toshi0383
1
690
Profiling using Signpost
toshi0383
2
930
AVPlayer周りの設計tips
toshi0383
6
860
cmdshelf::from("Swift")
toshi0383
3
860
AbemaTV iOSのダウンロード再生機能
toshi0383
4
960
Other Decks in Programming
See All in Programming
Preact、HooksとSignalsの両立 / Preact: Harmonizing Hooks and Signals
ssssota
1
1.5k
「影響が少ない」を自分の目でみてみる
o0h
PRO
2
1.1k
新しいPHP拡張モジュールインストール方法「PHP Installer for Extensions (PIE)」を使ってみよう!
cocoeyes02
0
380
Optimizing JRuby 10
headius
0
290
タイムゾーンの奥地は思ったよりも闇深いかもしれない
suguruooki
1
630
Make Parsers Compatible Using Automata Learning
makenowjust
1
4.5k
Code smarter, not harder - How AI Coding Tools Boost Your Productivity | Webinar 2025
danielsogl
0
120
スモールスタートで始めるためのLambda×モノリス(Lambdalith)
akihisaikeda
2
270
メモリウォールを超えて:キャッシュメモリ技術の進歩
kawayu
0
1.9k
Amazon CloudWatchの地味だけど強力な機能紹介!
itotsum
0
150
MCP調べてみました! / Exploring MCP
uhzz
2
2.3k
Agentic Applications with Symfony
el_stoffel
2
280
Featured
See All Featured
Automating Front-end Workflow
addyosmani
1369
200k
Code Review Best Practice
trishagee
67
18k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
[RailsConf 2023] Rails as a piece of cake
palkan
54
5.4k
How to Ace a Technical Interview
jacobian
276
23k
Site-Speed That Sticks
csswizardry
5
480
Making Projects Easy
brettharned
116
6.1k
Practical Orchestrator
shlominoach
186
10k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
31
1.1k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.4k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
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