Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
490
大正Geek Night 2018-08-27
posaunehm
0
110
Other Decks in Technology
See All in Technology
AIプラットフォームにおけるMLflowの利用について
lycorptech_jp
PRO
1
170
100以上の新規コネクタ提供を可能にしたアーキテクチャ
ooyukioo
0
150
AWSを使う上で最低限知っておきたいセキュリティ研修を社内で実施した話 ~みんなでやるセキュリティ~
maimyyym
2
1.8k
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
120
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
230
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
360
Amazon Bedrock Knowledge Bases × メタデータ活用で実現する検証可能な RAG 設計
tomoaki25
6
1.4k
AIエージェント開発と活用を加速するワークフロー自動生成への挑戦
shibuiwilliam
4
560
AI との良い付き合い方を僕らは誰も知らない
asei
0
170
AIの長期記憶と短期記憶の違いについてAgentCoreを例に深掘ってみた
yakumo
4
460
AWS Security Agentの紹介/introducing-aws-security-agent
tomoki10
0
340
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
290
Featured
See All Featured
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
286
14k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
Claude Code のすすめ
schroneko
65
200k
Producing Creativity
orderedlist
PRO
348
40k
Agile that works and the tools we love
rasmusluckow
331
21k
Building Applications with DynamoDB
mza
96
6.8k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
25
The Spectacular Lies of Maps
axbom
PRO
1
390
Un-Boring Meetings
codingconduct
0
160
Navigating Team Friction
lara
191
16k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
120
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ʣΦεεϝ