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
サーバーレス時代にこそ 身につけたいTDD入門
Search
Hiroshi Maekawa (a.k.a. Posaune)
October 06, 2018
Technology
0
300
サーバーレス時代にこそ 身につけたいTDD入門
.NET Conf 2018 Kansai での発表資料です。
Hiroshi Maekawa (a.k.a. Posaune)
October 06, 2018
Tweet
Share
More Decks by Hiroshi Maekawa (a.k.a. Posaune)
See All by Hiroshi Maekawa (a.k.a. Posaune)
「カスタマイズ」から「標準化」へ。 CI as a Service の考え方を取り入れて DevOps を加速させよう!
posaunehm
1
500
大正Geek Night 2018-08-27
posaunehm
0
110
Other Decks in Technology
See All in Technology
TypeScript 7.0の現在地と備え方
uhyo
7
1.8k
20260321_エンベディングってなに?RAGってなに?エンベディングの説明とGemini Embedding 2 の紹介
tsho
0
100
「お金で解決」が全てではない!大規模WebアプリのCI高速化 #phperkaigi
stefafafan
3
910
Lambda Web AdapterでLambdaをWEBフレームワーク利用する
sahou909
0
180
プラットフォームエンジニアリングはAI時代の開発者をどう救うのか
jacopen
7
3.9k
身体を持ったパーソナルAIエージェントの 可能性を探る開発
yokomachi
1
130
2026年もソフトウェアサプライチェーンのリスクに立ち向かうために / Product Security Square #3
flatt_security
1
670
"作る"から"使われる"へ:Backstage 活用の現在地
sbtechnight
0
190
【Λ(らむだ)】最近のアプデ情報 / RPALT20260318
lambda
0
100
ReactのdangerouslySetInnerHTMLは“dangerously”だから危険 / Security.any #09 卒業したいセキュリティLT
flatt_security
0
320
A Casual Introduction to RISC-V
omasanori
0
400
社内レビューは機能しているのか
matsuba
0
150
Featured
See All Featured
Accessibility Awareness
sabderemane
0
82
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
320
How STYLIGHT went responsive
nonsquared
100
6k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
110
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.4k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
210
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
5.4k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.1k
It's Worth the Effort
3n
188
29k
Designing Powerful Visuals for Engaging Learning
tmiket
0
290
Statistics for Hackers
jakevdp
799
230k
What does AI have to do with Human Rights?
axbom
PRO
1
2k
Transcript
αʔόʔϨε࣌ʹͦ͜ ʹ͚͍ͭͨTDDೖ ΪϧυϫʔΫεגࣜձࣾ લ തࢤ
͡Ίʹ
ΪϧυϫʔΫεʹ͍ͭͯ
None
None
None
None
None
None
None
αʔόʔϨε࣌ʹͦ͜ ʹ͚͍ͭͨTDDೖ ΪϧυϫʔΫεגࣜձࣾ લ തࢤ
ࣗݾհ • ΪϧυϫʔΫεגࣜձࣾ ALMΤϯδχΞ • Application Lifecycle Management • ಘҙٕ
• ։ൃ • αʔόʔαΠυɿ Java • "OESPJE+BWB→,PUPMJO • iOS: Swift • Webϑϩϯτɿ Vuejs, Angular/Ionic • ͦͷଞɿ C# ͕Ұ൪͖͚ͩͲ࠷ۙॻ͍͍ͯͳ͍… • CI / CDͷඋ • ࠷ۙͬͺΒCircleCI
ͯ͞ɺຊɻ
None
ͦ͏Ͱͳ͍ ʢͱࢥͬͯ·͢ʣ
ͦͦαʔόʔϨεͬͯʁ • ໌ࣔతͳʮϚγϯʯΛҙࣝͤͣɺSaaSαʔϏεͷ Έ߹ΘͤʹΑͬͯػೳΛ࣮ݱ͢Δ • Πϯϑϥͷίετ͕ܶతʹԼ͕Δࣄ͕ଟ͍ • ·ͨɺSLAجຊΫϥυϕϯμʔͤʹͰ ͖ɺগͳ͘ͳΔʢNoOps ͱ͍ΘΕΔʣ
• …ྫ͑ɺ͜Μͳߏɻ
AWS ʹΑΔ αʔόʔϨεߏ CloudFront Cognito ϓϨθϯςʔγϣϯ ΞϓϦέʔγϣϯ σʔλετΞ ଓ ೝূαʔϏε
ήʔτΣΠ
̩ ̥ ̤ ʂ
Azure ʹΑΔαʔόʔϨεߏ ϓϨθϯςʔγϣϯ ΞϓϦέʔγϣϯ σʔλετΞ ଓ "[VSF"DUJWF%JSFDUPSZ "1*.BOBHFNFOU "[VSF4UPSBHF "[VSF$%/
"[VSF'VODUJPOT "[VSF$PTNPT%#
αʔόʔϨεͰࠔΔͱ͜Ζ • ։ൃڥͲ͏͢Δ͔ • ͦͦΫϥυαʔϏεʹϕολϦͳͷͰɺ ʮϩʔΧϧڥʯͱ͍͏֓೦͕ଘࡏ͠ͳ͍ • ٖࣅతʹϩʔΧϧʹڥΛ͑ΔΈଘࡏ͢Δ͕… • ಈ࡞֬ೝΛ͢ΔͨΊʹɺαʔόʔʹΞοϓϩʔυ
͢Δɺͱ͍͏೦ͳ݁Ռʹ…
Function as a Service ʹର͢Δςετ ΞϓϦέʔγϣϯ σʔλετΞ ଓ "[VSF"DUJWF%JSFDUPSZ "1*.BOBHFNFOU
"[VSF'VODUJPOT "[VSF$PTNPT%# Ҿ͑͞ἧ͑ΒΕΕγϛϡϨʔτՄೳ .PDLͰஔ͖͑Λߦ͏ ΠϯϓοτΞτϓοτΛఆٛͯ͠ ։ൃ͢Δ㱺5%%
TDD:ςετۦಈ։ൃ ͱ
ςετۦಈ։ൃ • ᶃ ࠷ॳʹςετΛॻ͘ • ᶄ ςετΛ࣮ߦ͠ɺࣦഊͤ͞Δ • ᶅ ςετ͕ޭ͢ΔΑ͏ʹίʔυΛमਖ਼͢Δ
• ᶆ ςετ͕௨ͬͨঢ়ଶΛอͪͳ͕ΒɺίʔυΛΑ Γݟ͘͢ɺϝϯςφϯε͘͢͠࡞Γม͑Δ • ᶃ ʙ ᶆΛ܁Γฦ͠ɺখ͞ͳεςοϓͰ ιϑτΣΞΛ࡞Γ্͍͛ͯ͘
TDDͷԫۚࡾ֯ܗ https://www.slideshare.net/t_wada/the-spirit-of-tdd
TDDʹ͋Γ͕ͪͳޡղ • TDDͬͯɺΊͬͪΌͰ͖ΔϓϩάϥϚʔ͕Δ ಛघٕೳͰ͠ΐʁ • ҧ͍·͢ɻΊͬͪΌͰ͖ΔϓϩάϥϚʔ TDD͠·ͤΜɻͰ͖ͳ͍ϓϩάϥϚʔͷͨΊͷ ϝιουͳͷͰ͢ɻ
TDDʹ͋Γ͕ͪͳޡղ • ͳΜͰΘ͟Θ͟ςετίʔυͳΜͯແବͳͷ ॻ͘ͷʁ͔͔࣌ؒΔ͚ͩ͡Όͳ͍ʁ • ͋ͳ͕ͨಈ࡞֬ೝͳ͠ͰɺҰൃͰਖ਼͍͠ίʔυ͕ ॻ͚ΔਓͳΒෆཁ͔͠Ε·ͤΜɻ ͦ͏Ͱͳ͍ͳΒɺςετίʔυ࠷খͷಈ࡞֬ೝ ڥΛ࡞͍ͬͯΔΜͰ͢ɻແବ͡Όͳ͍Ͱ͢ɻ
TDDʹ͋Γ͕ͪͳޡղ • TDDͰ։ൃͨ͠ΒςετཁΒͳ͍ΜͩΑͶʂʂ • ཁΓ·͢ɻ ʮ։ൃͷͨΊͷςετʯ͚ͩͰ࣭อূͱͯ͠ ෆेͰ͢ɻಛʹɺʮਖ਼͍͠ͷ͔ʯͱ͍͏ Validation ؍ܾఆతʹෆ͠·͢ɻ
TDDʹ͋Γ͕ͪͳޡղ • ܾ·ͬͨΓํͱ͔ͳ͍ΜͩΑͶʁ • ʮܕʯΛΓ·͠ΐ͏
ܕ - Kata - ʮܕʯͱɺϓϩάϥϚʔ͕࣮ફͱ෮Λ௨ͯ͠ ٕज़Λຏͨ͘Ίͷख๏Ͱ͋Δɻ
Bowling Game Kata • Programming Kata ͷҰͭ • ΈΜͳେ͖ ɺϘϒ͓͡͞Μ͜ͱBob
Martin͕ ࡞͍ͬͯ·͢
Bowling Game Kata http://butunclebob.com/ ArticleS.UncleBob.TheBowlingGameKata
۩ମతʹͲΜͳͷʁ
࣮ࡍʹͬͯΈΔ
·ͱΊ • αʔόʔϨεͷ͔࣌ͩΒͦ͜ɺ࡞Δखஈͱͯ͠ TDD͓͍͑ͯͨ΄͏͕͍͍ • TDD ͷΓํɺ͋ΔఔମͰ֮͑Δඞཁ͕͋ ΔɻͳͷͰɺʮܕʯΛΖ͏ • Bowling
Game Kata Θ͔Γ͘͢Φεεϝ
͞Βʹษڧ͍ͨ͠ਓͷͨΊʹ • ͦͦͲΜͳίʔυ͕͍͍ͱ͔Α͘Θ͔Βͳ͍Μ͚ͩͲ 㱺 Refactoring ୈೋ൛͕ग़Δ͔ΒͨΕΑʢӳޠ൛Ͱ͍͍͔Βങ͓͏ʣ • ͦͦίʔυ͕;Δͯͭ͘Β͍ 㱺 ʮϨΨγʔίʔυվળΨΠυʯಡΈ·͠ΐ͏
• UIपΓͷςετʁ 㱺 Selenium, Puppeteer, Katalon Studio ͋ͨΓΛνΣοΫ͢͠ • ଞͷܕͳ͍ͷʁ 㱺 ϥΠϑήʔϜʢGame of LifeʣΦεεϝ