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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
toshi0383
March 07, 2023
Programming
250
0
Share
agile20150512-150512055145-lva1-app6892.pdf
toshi0383
March 07, 2023
More Decks by toshi0383
See All by toshi0383
CoreDataはじめました
toshi0383
0
180
Swiftコードバトル必勝法
toshi0383
1
340
Sheets API使ってみた
toshi0383
2
390
visionOSについてGlobeeが取り組んでいること
toshi0383
0
590
たのしいAirPlay
toshi0383
1
770
Profiling using Signpost
toshi0383
2
1k
AVPlayer周りの設計tips
toshi0383
6
910
cmdshelf::from("Swift")
toshi0383
3
930
AbemaTV iOSのダウンロード再生機能
toshi0383
4
1k
Other Decks in Programming
See All in Programming
エラー処理の温故知新 / history of error handling technic
ryotanakaya
6
1.5k
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
240
Back to the roots of date
jinroq
0
440
mruby on C#: From VM Implementation to Game Scripting (RubyKaigi 2026)
hadashia
2
640
의존성 주입과 모듈화
fornewid
0
150
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
830
ルールルルルルRubyの中身の予備知識 ── RubyKaigiの前に予習しなイカ?
ydah
1
210
アクセシビリティ試験の"その後"を仕組み化する
yuuumiravy
1
170
(Re)make Regexp in Ruby: Democratizing internals for the JIT
makenowjust
3
650
SkillがSkillを生む:QA観点出しを自動化した
sontixyou
6
3.5k
Claude Code × Gemini × Ebitengine ゲーム制作素人WebエンジニアがGoでゲームを作った話
webzawa
0
160
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
4
1.1k
Featured
See All Featured
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.3k
Context Engineering - Making Every Token Count
addyosmani
9
840
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
110
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.4k
The Pragmatic Product Professional
lauravandoore
37
7.2k
Done Done
chrislema
186
16k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
The Curse of the Amulet
leimatthew05
1
12k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
220
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