Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
テスト駆動開発のススメ
Search
Yumihiki
August 19, 2021
Programming
22k
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
81
ノリと勢いで勉強会を共同主催しはじめた話
nibuno
1
490
LTってなんなん?
nibuno
0
180
【初心者向け】ググらずに!? ターミナル上で Pythonオブジェクトを調べよう
nibuno
0
570
勇気出してアウトプットしたらコメントをもらえて自分の理解が深まった良い話🤩
nibuno
0
220
目標を決めるにあたって 新年の抱負 超LT会- vol.2
nibuno
0
410
パーフェクトPHPのススメ
nibuno
1
1.2k
Other Decks in Programming
See All in Programming
数年滞っていたダークモード対応をおよそ2週間で完了させる
chigichan24
0
700
【高い買い物LT会】初任給で話題の国産フィジカルAIを買った話
akagami
PRO
0
130
Seeing Through Serverless: Observability for AWS Lambda with ADOT and CloudWatch Application Signals
seike460
PRO
1
130
高専キャリア LT 発表内容
crysta1221
6
5.6k
Laravelのアプリケーションをどこにデプロイするか #ツナギメオフライン.9
akase244
0
120
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
490
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
260
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
150
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
130
市販E-Readerを乗っ取れ 〜Embedded Swiftで電子ペーパーガジェットを制御する〜
trickart
0
160
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
130
Webの地図
yosuke_furukawa
PRO
5
3.9k
Featured
See All Featured
Typedesign – Prime Four
hannesfritz
42
3.2k
Darren the Foodie - Storyboard
khoart
PRO
3
3.9k
How to Talk to Developers About Accessibility
jct
2
540
Speed Design
sergeychernyshev
33
2.1k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
310
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Prompt Engineering for Job Search
mfonobong
0
450
Paper Plane (Part 1)
katiecoart
PRO
1
11k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
WCS-LA-2024
lcolladotor
0
820
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
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 開催だそうです!
改めて ご視聴ありがとう ございました