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
テスト駆動開発のススメ
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Yumihiki
August 19, 2021
Programming
21k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
テスト駆動開発のススメ
https://rakus.connpass.com/event/218578/
Yumihiki
August 19, 2021
More Decks by Yumihiki
See All by Yumihiki
pathlibのススメ
nibuno
0
75
ノリと勢いで勉強会を共同主催しはじめた話
nibuno
1
470
LTってなんなん?
nibuno
0
170
【初心者向け】ググらずに!? ターミナル上で Pythonオブジェクトを調べよう
nibuno
0
550
勇気出してアウトプットしたらコメントをもらえて自分の理解が深まった良い話🤩
nibuno
0
210
目標を決めるにあたって 新年の抱負 超LT会- vol.2
nibuno
0
400
パーフェクトPHPのススメ
nibuno
1
1.2k
Other Decks in Programming
See All in Programming
act1-costs.pdf
sumedhbala
0
150
Lessons from Spec-Driven Development
simas
PRO
0
240
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
430
エンジニア向け会社紹介/Findy Company Profile
findyinc
6
360k
代数的データ型って何が嬉しいの? #frontend_phpcon_do
kajitack
8
3.9k
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
190
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
140
AIキャラアプリkaiwaの低遅延音声通話基盤をどう作ったか - AWS Gravitonで支える低遅延・低コストAI Agent基盤
mogamit
0
150
これからAgentCoreを触る方へトレンドはGatewayです
har1101
6
450
Semantic Version 単位で戦略を柔軟に変えて、パッケージアップデートを自動化する
daitasu
1
330
Strategic Design in the Frontend: Moduliths & Micro Frontends @DDDEurope
manfredsteyer
PRO
0
140
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
160
Featured
See All Featured
Information Architects: The Missing Link in Design Systems
soysaucechin
0
990
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Limits of Empathy - UXLibs8
cassininazir
1
380
The Curious Case for Waylosing
cassininazir
1
420
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
250
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Deep Space Network (abreviated)
tonyrice
0
220
Six Lessons from altMBA
skipperchong
29
4.3k
エンジニアに許された特別な時間の終わり
watany
107
250k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
250
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Transcript
テスト駆動開発のススメ おすすめの技術書 LT会 - vol.2 #itbookslt 2021/08/19
自己紹介 君の名は?
自己紹介 Yumihiki / Tatsuya Nibuno Twitter: Yumihiki(@nibupro) エセ関西人 パーソルテクノロジースタッフ株式会社 実務未経験から転職/エンジニア歴約1年半
目次 何話すん?
目次 • 結論・前置き • テスト駆動開発とは • テスト駆動開発(書籍)の良いところ • 勉強するきっかけ?(時間の都合上発表しない つもりですが、公開するスライドには掲載します)
結論・前置き はじめに
結論・前置き • テスト駆動開発未経験の人にオススメ ◦ テストコードを書くことのメリットがよくわかる ◦ ビギナーの開発系エンジニアさんにもおすすめ ◦ 「テスト駆動開発って何か難しそう・・・」と 身構えていませんか?
• この本を読むと、テスト駆動開発がしたくなる! ◦ 所謂テスト駆動開発のことだけでなく デザインパターンや良い振る舞いなど色々学べます!
テスト駆動開発とは? そもそも
テスト駆動開発とは? • 「プロダクトのコードより先にテストコードを書き、実装していく」開発手法と して一般的には認知されている(と思っています) • テスト駆動開発(書籍)では次のように解説されている > TDDはテスト技法ではない(Cunningham の考案)。TDDは分析技法であり、設計技法 であり、実際には開発の全てのアクティビティを構造化する技法なのだ。
> 本書『テスト駆動開発』で書かれているような本来のTDDは、プログラマが自分自身で 不安を制御するための補助輪のような役割を果たす小さなプラクティスでした。 テスト駆動開発(2017年 第1版)Kent Beck著 和田卓人訳 オーム社 P278, P300
テスト駆動開発(書籍)の 良いところ 本題!
テスト駆動開発(書籍)の良いところ1 • コツコツとコードを良くする過程を学ぶことができる • 汚いコードから洗練されたコードへ ◦ 最初から動作するきれいなコードはなかなか書けない ◦ だから、最初は「動くコード」を書いて、「TDD」を実践し
動作するきれいなコードへ書き換えていく ◦ 最初から動作するきれいなコードを書こうとして変なところで詰まる 経験がたくさんあったので目から鱗でした・・・!
• 章が短いので、少しずつ進めていくのも容易 ◦ 毎日1章ずつ進めていくことができる程度の規模感 • ソースを少しずつ書いていくので間違えにくい ◦ 章ごとに終了時点のコードを確認できるから間違いが少ない ◦ コードをたくさん書いてデプロイして、エラーが出る
◦ 学習のトラウマの1つ(と勝手に思っています) ◦ そういうのが起こりにくい気がしています ◦ 訳者の和田卓人さんによる訳注や解説もとても素敵! テスト駆動開発(書籍)の良いところ2
テスト駆動開発(書籍)の良いところ3 • 優れたエンジニアの振る舞い、思考を学べる ◦ テスト駆動開発を(仕事で)実践できなくても学びになる ◦ TODOリストを書いて、消していく ◦
小さな改修でコツコツと成功しているかどうか確認する振る舞い ◦ デザインパターンの解説も出てくる ◦ メソッドのインライン化といったリファクタリング手法(?) ◦ ある種ペアプロをやっているような感覚 (例題の進め方はペアプロをイメージして書いた、との記述あり) ◦ 章が終わる際にはふりかえり
テスト駆動開発(書籍)の良いところ4 • そして、テストコードがあると安心なんだと実感できた ◦ コードを直して、開発環境にデプロイして、 画面操作してバッチ実行... ではなくIDE上でユニットテストを実行すること で、確認できる ◦ 全てがテストコードで解決できるわけではないとのことですが、 それでも段違いな気がする・・・!
◦ リファクタリングして改善するには、必須の技法だと感じた • テスト駆動開発に対する認識を変えてくれた良著!
ご静聴ありがとう ございました
勉強するきっかけ? 脱線ちゃう? ※本章は時間の都合上、 発表資料から省きました。
テスト駆動開発とは? 勉強するきっかけ1 • 有名な書籍やアジャイル系の本にはテスト駆動開発のことがよく挙げられている > 「どうやったらそんなにわかりやすくて見通しのよい、綺麗なコードが書けるんだい?」 > 「簡単だよ」彼は答えた。「テストを先に書いているんだ」
著者:Jonathan Rasmusson 訳者:近藤修平・角掛拓未 (オーム社、2011年) 「アジャイルサムライー達人開発者への道 」P261 > 私にとって、レガシーコードとは、単にテストのないコードです。この定義については疑問もあ りました。コードの良し悪しとテストに何の関係があるのでしょう。私にとってその答えは簡単で す。そしてこれが、本書を通じて詳しく述べていきたい革新です。 著者:マイケル・C・フェザーズ 訳者:平澤章・越智典子・稲葉信之・田村友彦・小堀真義(翔泳社 ・2009年)「レガシーコード改善ガイド」 vi
テスト駆動開発とは? 勉強するきっかけ2 • 日々の労働の疲れを癒すために2021年6月25日に開催された PHPTechCafeへ参加 • タイトル:PHPerのための「PHPUnit について語り合う」 • https://rakus.connpass.com/event/213508/
• 題材はPHPUnitだけど、テスト駆動の考え方など何か勉強になるかなと • TDD Boot Camp 2020 Online#1 基調講演/ライブコーディングの紹介 • https://www.youtube.com/watch?v=Q-FJ3XmFlT8 • この動画をきっかけとして、テスト駆動開発を学ぶようになりました (eclipseでのユニットテストの実行方法はこの動画を参考にしました) • 来週2021年8月23日に PHP8.1 の新機能について語り合う PHP TechCafe 開催だそうです!
改めて ご視聴ありがとう ございました