タグ

ブックマーク / yattom.hatenablog.com (5)

  • TDDは死んだ。テスティングよ栄えよ。 by DHH | 2014-04-24 - やっとむでぽん

    DHHの"TDD is dead. Long live testing."を、訳してみました。 翻訳 やっとむ By David Heinemeier Hansson on April 23, 2014 著 David Heinemeier Hansson 2014年4月23日 Test-first fundamentalism is like abstinence-only sex ed: An unrealistic, ineffective morality campaign for self-loathing and shaming. テストファースト原理主義は禁欲のみを唱えた性教育のようなものだ。つまり、自己嫌悪に陥っている人に向けた、非現実的で効果のない、道徳教育のようなものだ。 It didn't start out like that. When I first disco

    TDDは死んだ。テスティングよ栄えよ。 by DHH | 2014-04-24 - やっとむでぽん
  • Red-Green-Refactor - やっとむでぽん

    よく「ほんとに最初にRedにするんですか?毎回必ず絶対に?」と聞かれます。ひとことで答えるなら、 すみませんたまに飛ばしちゃいます 三ことぐらいですかね。だけど、ほとんど毎回Redを経由するようにしているのも、当です。 なぜ最初にRedにするのか。理由はわりとくだらなくて、書いたテストがちゃんと実行されないと困るからです。JUnitなら@Testアノテーションを忘れるとか、Pythonならテストメソッド名を重複させて上書きしてしまっているとか。昔々はTestSuiteに追加し忘れとかもあったな。実は最近のツール群であればもうそんなこと起きないのかもしれませんが、昔はよくはまった(ほんとによくはまったなあ)ので、自分の規律として(ないし条件付けられて?)まずはRedを見るようにしています。 Redが必要な理由はこれだけでも十分なんですが、他にもメリットはあると感じます。Redにせず最初から

    Red-Green-Refactor - やっとむでぽん
  • テストをリファクタリングするとき気をつけること - やっとむでぽん

    TDDのサイクルはRed-Green-Refactoringです。このリファクタリングは、プロダクトコードはもちろんですが、テストにも適用されます。しかしテストのリファクタリングには、プロダクトコードのリファクタリングと違うところもあります。 プロダクトコードのリファクタリングは、一言で言えば後で変更するときのためにやるものです。プロダクトコードを変更するのは、機能追加や変更、問題の修正のためです。つまり、将来プロダクトコードの価値を高めるためにリファクタリングをします。 テストのリファクタリングも、もちろん変更のためですが、テストコードの変更はプロダクトコードの変更に追随して発生します。テスト内容を変更するためにテストコードを直すことは稀です。したがって、プロダクトコードを変更しやすくするために、テストをリファクタリングする。 通常の(つまりプロダクトコードの)リファクタリングは、まさに

    テストをリファクタリングするとき気をつけること - やっとむでぽん
  • やっとむでぽん

    日は「ボードゲーム・パズルプログラミング Advent Calendar 2022 - Adventar」アドベントカレンダーへのエントリーです。 asobannについて 新型コロナの影響でワークショップなどに人が集まれないようになってきた2020年から、オンラインのボードゲームサービスhttps://games.yattom.jp/asobannasobann(遊盤)を開発しています。 asobannはボードゲームを遊ぶ環境として、一種の物理エンジン的なアプローチをしています。つまり、ゲーム固有の動きやルールを実装するのではなく、汎用的なカードを並べたり、手札にしたり、ボードを置いてそこにコマを自由に配置したりでき、逆にそれしかできません。同じ頃に活用を始めた、オンラインホワイトボードのMiroなどにも影響を受けています。 ボードゲームを遊ぶだけでなく、自作ゲームを実験したり人に遊んで

    やっとむでぽん
  • 事前設計とTDD - 2012-12-16 - やっとむでぽん

    実はモデリングが大好きです。元々はオブジェクト指向プログラミングを勉強しているところからUMLに(自然に)興味が向き、そこからオブジェクト指向設計とかオブジェクト指向分析とかそういう脇道にそれ(脇道とか言ったら怒られる!)、仕様も設計もこれからはオブジェクト指向だ!というありがちな若気の至りもありました。デザインパターンにも転んだし、責務!ロール!コラボレーション!ってのもやったし、重厚長大なフレームワークとかもなかなか楽しいですよねえ。ねえ? 今でも概念モデルとか大好物で、上の話を聞きながらうっかりとこんなオブジェクトモデリングをしてしまったりします。 そんなわけで、プログラミングする対象の仕様を理解しながら頭の中でモデリングして設計を進めてしまうのはやむを得ません。多かれ少なかれ、なにかしらの設計が浮かんできてしまいます。 でもTDDはテストを書きながら設計をします。先行して設計してし

    事前設計とTDD - 2012-12-16 - やっとむでぽん
  • 1