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
0
250
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
320
Sheets API使ってみた
toshi0383
2
370
visionOSについてGlobeeが取り組んでいること
toshi0383
0
570
たのしいAirPlay
toshi0383
1
750
Profiling using Signpost
toshi0383
2
1k
AVPlayer周りの設計tips
toshi0383
6
900
cmdshelf::from("Swift")
toshi0383
3
910
AbemaTV iOSのダウンロード再生機能
toshi0383
4
1k
Other Decks in Programming
See All in Programming
Vibe codingでおすすめの言語と開発手法
uyuki234
0
210
Fragmented Architectures
denyspoltorak
0
140
公共交通オープンデータ × モバイルUX 複雑な運行情報を 『直感』に変換する技術
tinykitten
PRO
0
200
メルカリのリーダビリティチームが取り組む、AI時代のスケーラブルな品質文化
cloverrose
2
510
Grafana:建立系統全知視角的捷徑
blueswen
0
320
Pythonではじめるオープンデータ分析〜書籍の紹介と書籍で紹介しきれなかった事例の紹介〜
welliving
3
870
0→1 フロントエンド開発 Tips🚀 #レバテックMeetup
bengo4com
0
540
AI によるインシデント初動調査の自動化を行う AI インシデントコマンダーを作った話
azukiazusa1
1
660
AI時代のキャリアプラン「技術の引力」からの脱出と「問い」へのいざない / tech-gravity
minodriven
16
5.5k
インターン生でもAuth0で認証基盤刷新が出来るのか
taku271
0
190
AIフル活用時代だからこそ学んでおきたい働き方の心得
shinoyu
0
120
Oxlintはいいぞ
yug1224
5
1.2k
Featured
See All Featured
Scaling GitHub
holman
464
140k
Marketing to machines
jonoalderson
1
4.6k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
73
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Building Adaptive Systems
keathley
44
2.9k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
250
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2k
It's Worth the Effort
3n
188
29k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
110
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
ラッコキーワード サービス紹介資料
rakko
1
2.2M
The Language of Interfaces
destraynor
162
26k
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