336 Views
June 28, 19
スライド概要
新卒の頃、TDD完全に理解したと勘違いしながら作りました。
TDD完全に理解した @akariwtnk
Table of contents Whatʼs TDD? TDDのルール TDDがもたらす影響 勇気や不安の話 参考⽂献 @akariwtnk
Whatʼs TDD? @akariwtnk
Whatʼs TDD? テスト駆動開発(Test-Driven Development) @akariwtnk
Whatʼs TDD? TDDのゴール:「動作するきれいなコード」 - 「動作するきれいなコード」のメリット 1. 開発が予測可能になる。完成したかどうかが分かり、バグが残っているかを⼼配する必要もない。 2. コードが伝えようとしていることを余すところなく受け取れる。 3. あなたが作るソフトウェアのユーザを快適にする。 4. チームメイトはあなたを信頼し、チームメイトもまたあなたを信頼する。 5. 書いていて気持ちが良い。 @akariwtnk
TDDのルール @akariwtnk
TDDのルール 1. 2. @akariwtnk ⾃動化されたテストが失敗したときのみ、新しいコードを書く。 重複を除去する。
TDDのルール TDDにおける作業の順序 1. 2. 3. @akariwtnk レッド:動作しない。恐らく最初のうちはコンパイルも通らないテストを1つ書く。 グリーン:そのテストを迅速に動作させる。このステップでは罪を犯してもよい。 リファクタリング:テストを通すために発⽣した重複をすべて除去する。
TDDがもたらす影響 @akariwtnk
TDDがもたらす影響 TDDが個⼈とグループにもたらす技術的影響 - @akariwtnk 有機的に設計を進められるようになる。 ⾃分たちでテストを書くようになる。 ⼩さな変更に迅速に応答する開発環境を備えなくてはならなくなる。 凝集度が⾼く結合度が低いたくさんの部品で構成された設計をおこなうようになる。
TDDがもたらす影響 TDDが周囲の⼈びととの関係にもたらす影響 - ⽋陥率を下げられる→品質保証担当者は先⼿を打って仕事ができる。 悪い知らせを⼗分に減らせる→PMは正確な⾒積もりができる。 技術的な議論の対象の明確化→エンジニアは週や⽇ではなく分単位のコミュニケーションができる。 ⽋陥率を下げられる→新しい機能を伴うソフトウェアを毎⽇リリースできる。→顧客との新たな関係が作れる。 @akariwtnk
勇気や不安の話 @akariwtnk
勇気や不安の話 - @akariwtnk テスト駆動開発は、プログラミング中の不安をコントロールする⼿法。 不安は「気をつけろ」というサイン。
勇気や不安の話 - - @akariwtnk 不安には悪い効果もある。 - 不安はためらいを⽣む。 - 不安はコミュニケーションを減らす。 - 不安はフィードバックから逃げ腰にさせる。 - 不安はいらいらさせる。 上記は全て、プログラミングを妨げる要因になる。難しい問題と対峙しているときはなおさら。
勇気や不安の話 - @akariwtnk 問題は、どのように難しい局⾯と対峙するか、に変わる。 - 躊躇いがちになるのではなく、可能な限り素早く着実に学び始めること。 - 黙り込むのではなく、はっきりとコミュニケーションをとること。 - フィードバックを避けるのではなく、具体的で有⽤なフィードバックを探し出すこと。 - (⾃分のイライラは⾃分で対処しなければならない)
TDDについての本 KentBeck著、和⽥卓⼈訳『テスト駆動開発』オーム社、2017。 - @akariwtnk 訳者の和⽥卓⼈さんは、TDDのスペシャリスト。 『SQLアンチパターン』の訳者でもある。 「テスト書いてないとかお前それt- wadaの前でも同じこと⾔えんの?」の⼈ スライドこちら https://www.slideshare.net/t_wada
TDDについての本 『テスト駆動開発』の構成 1. 他国通貨:TDDで書かれた典型的なモデルのコードを例⽰。 2. xUnit:⾃動テストのフレームワークを実際に開発しながら、 より複雑なロジックを学ぶ。 3. テスト駆動開発のパターン:どのようなテストを書くかの判断についてのパターン、 xUnitを使⽤したテストのパターン、 選りすぐりのデザインパターンとリファクタリング @akariwtnk
参考⽂献 KentBeck著、和⽥卓⼈訳『テスト駆動開発』オーム社、2017。 @akariwtnk