Entries from 2012-01-01 to 1 year

書籍:実践テスト駆動開発

実践テスト駆動開発 (Object Oriented SELECTION)作者: Steve Freeman,Nat Pryce,和智右桂,高木正弘出版社/メーカー: 翔泳社発売日: 2012/09/14メディア: 大型本購入: 4人 クリック: 262回この商品を含むブログ (31件) を見る実は、ちょっと不満がある。だた…

書籍「意味がわかれば数学の風景が見えてくる」

意味がわかれば数学の風景が見えてくる作者: 野崎昭弘,伊藤潤一,小沢健一,何森仁出版社/メーカー: ベレ出版発売日: 2011/09/15メディア: 単行本購入: 3人 クリック: 39回この商品を含むブログ (5件) を見るときどき、ぱらぱらと読んでいる。DDD、関数型を学…

書籍「いかにして超感覚的世界の認識を獲得するか」

いかにして超感覚的世界の認識を獲得するか (ちくま学芸文庫)作者: ルドルフシュタイナー,Rudolf Steiner,高橋巌出版社/メーカー: 筑摩書房発売日: 2001/10/01メディア: 文庫購入: 12人 クリック: 113回この商品を含むブログ (21件) を見るシュタイナーを意…

知恵の樹

知恵の樹―生きている世界はどのようにして生まれるのか (ちくま学芸文庫)作者: ウンベルトマトゥラーナ,フランシスコバレーラ,Humberto Maturana R.,Francisco Varela G.,管啓次郎出版社/メーカー: 筑摩書房発売日: 1997/12/01メディア: 文庫購入: 4人 クリ…

fat model になってしまったコード。本来は何処に配置すべきか?

デザインパターンを読んだときは、場合ごとに振る舞いを切り出し委譲してしまう方法、オブジェクト群にアクセスする方法とアクセスして**するを分離する方法、オブジェクト同士の仲介役を用意する方法、などなどを知った。DDDを読んだときは、サービスやエン…

素振り

経路探索。途中まで解いていた # encoding: utf-8 class RouteMap def initialize(&block) @links = [] block.call(self) if block_given? end def link(station_a, station_b, time_cost=0) @links << Link.new(station_a, station_b, time_cost) end def r…

楽観的すぎるスケジュール

ラピッドデベロップメント―効率的な開発を目指して (MicrosoftPRESS)作者: Steve McConnell,日立インフォメーションアカデミー出版社/メーカー: アスキー発売日: 1998/05メディア: 単行本購入: 2人 クリック: 34回この商品を含むブログ (14件) を見るまた読…

Hard-to-Test Code

テストが書きにくい場合の例1 あるテスト対象オブジェクト(ドメイン)に不純物が混ざっている場合。時間の概念に関するもの、IO系と連携に関するもの、(外部)システムとの連携に関するもの、などなどが混在していると、テストを書くのが難しく傾向になる…

Test Smells

どっからテストの不吉な臭いを感じとるのかなぁ。 プログラマーが体験する順序がおおまかにあるなともったのでメモ。 Developers Not Writing Tests まずは、書いている状態が良い状態だ、書かないことがまずい状況にいるんだ、やばい! と感じるところから…

@Theory, @DataPoints

import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.junit.Assert.assertThat; import static org.junit.matchers.JUnitMatchers.hasItems; import java.util.List; import org.junit.Before; im…

Enclosed

import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.not; import static org.junit.Assert.assertThat; import static org.junit.matchers.JUnitMatchers.hasItems; import java.util.List; import org.junit.Before; im…

経験主義とTDD

TDDの特徴の1つは、プログラマーの身体を通じた知覚を重視している点にある。コードがクリーンかどうかを判断する標本のいくつかは外部参照はできるものの、重要判断ポイントは 「【私が(他人が)】心地よく読めるか?」の問いにどう答えるかにある。 (可…

ダイアローグ

6章を読み返していた。怒り嘆きなど負の感情の濁りを感じたときは、 時々読み返し、心の洗濯に使っている。 お風呂を沸かすかな。ダイアローグ――対立から共生へ、議論から対話へ作者: デヴィッド・ボーム,ピーター M センゲ,金井真弓出版社/メーカー: 英治…

ユーザーストーリーと詳細の仕様

ユーザーストーリーには、ユースケースのような詳細の仕様記述はない。 代わりになるのは、顧客と開発者で交わされる会話と具体例による仕様(受入れテスト、振る舞い)であろう。 Given When Then や 表などが、ビジネスサイドにも解りやすい道具が好まれる…

ユーザーストーリーとシンプルな解の探求

ユーザーストーリーでは、 Why、Who、What を 明らかにする会話が、顧客と開発チームの間で交わされる。 各々の機能の仕様が早期にFIXされすぎて、開発者が代替案提示する余地がまったくないでは、プロジェクトの運営が難しくなる。 ユーザーストーリーには…

ユーザーストーリーの「I want to ....」

As a I want to so that ユーザーストーリーの記述フォーマット。 日本語だと、I want to の 私は 〇〇したい の<私>主語が、よく省略される。ただ口でしゃべるときは、省略せず、ロールになりきって「〇〇として、【私は】」 をはっきり言った方が感情移…

「TDDは プログラマーが主体で行うテストだ、どちらかといえばビジネスとテクノロジーだとどちらかといえば後者だ。」の説明。相対的にはずしてはいない説明なんだけど、私は少し不満がある。DDDでは、 開発者が、対象ドメインを知りたい、理解したい、ドメ…

ライフゲーム、テストケースで対象ドメインに対する理解をテストケースでうまく囲い込んでいくと、 Wikipediaの ライフゲームのルールを記載してような内容が、プロダクションコード内で圧縮して表現できるところに到達する。(個人的には、全体のボードでは…

Unit Test内の外側のテスト、内側のテスト

単体テストケースにも、ドメインの期待する期待する振る舞いを明確にしていくテストケースと、外側だけではジャッンプし過ぎなので、補助問題設定し、ドメインの構造を一歩づつ確実にクリアにしていくテストケースをよく分けて考えている。 (補助問題を考え…

ソフトウェアづくりにおける対話についての考察

インセプションデッキ、User Stories, BDD, DDD, ペアプログラミング、デモ、ふりかえり。これらの活動ですべてに共通して重要視していることは、対話である。対話(dialogue)の語源をたどると [人々の間を通って流れている「意味の流れ」という映像やイメ…

間主観性の現象学

間主観性の現象学 その方法 (ちくま学芸文庫)作者: エトムントフッサール,Edmund Husserl,浜渦辰二,山口一郎出版社/メーカー: 筑摩書房発売日: 2012/05/01メディア: 文庫購入: 2人 クリック: 16回この商品を含むブログ (11件) を見る難しい。読み切った。理…

関係の質 → 会話の質 → ユーザーストーリーの質 → 仕様の具体例の質 → コードの質 → 成果の質 → 関係の質 の好循環サイクル

ダイアローグ

ダイアローグ――対立から共生へ、議論から対話へ作者: デヴィッド・ボーム,ピーター M センゲ,金井真弓出版社/メーカー: 英治出版発売日: 2007/10/02メディア: 単行本購入: 10人 クリック: 107回この商品を含むブログ (42件) を見る断片と全体作者: デヴィッ…

ユーザーストーリー

1日体験の講師をやった。エクストリームプログラミングの理解度が上がった気がする。研修中にぽーけーと考えていた事。 ユーザーストーリーは、要件定義のシーンのみで使われるものではなく(ジョナサンの言葉を借りれば「要件定義」という言葉自体に懐疑的…

ライフゲーム

スッキリしてない。が基本APIは気に入っている。宇宙をエンティティではなく、バリューオブジェクトと見なし、 時間が経過するごとに、過去の宇宙をもとに 未来の宇宙を産出しつづける世界観を Code で表現したつもり。 var space = space.nextTime(); DDDの…

ボウリングゲーム

https://gist.github.com/2714258数ヶ月かけて、解いた。すっきりした。問題文は、ちと変種。ストライクのときも 2投目は、0は省略せずのタイプ。数列 を 下記のように変換していく方針 [5,4,0,0,10,0,9,1,6,3,7,0,6,2,10,0,10,0,1,9,5] [[5, 4], [0, 0], […

ファウスト

新訳決定版 ファウスト 第一部 (集英社文庫ヘリテージシリーズ)作者: ゲーテ,池内紀出版社/メーカー: 集英社発売日: 2004/05/20メディア: 文庫購入: 14人 クリック: 80回この商品を含むブログ (39件) を見る2部になると、登場人物が多数出てきて、読みにく…

身ぶりと言葉

身ぶりと言葉 (ちくま学芸文庫)作者: アンドレルロワ=グーラン,Andr´e Leroi‐Gourhan,荒木亨出版社/メーカー: 筑摩書房発売日: 2012/01/01メディア: 文庫購入: 3人 クリック: 15回この商品を含むブログ (17件) を見る独特の技術観、言語観、人間観、社会観、…

パイの計算

class Pai < Hash def initialize(params) params.keys.each do |key| self[key] = params[key] end end def +(other) keys = (self.keys + other.keys).uniq keys.inject(Pai.new({})) do |result, key| result[key] = (self[key] || 0) + (other[key] || 0…

銃・病原菌・鉄

文庫 銃・病原菌・鉄 (上) 1万3000年にわたる人類史の謎 (草思社文庫)作者: ジャレド・ダイアモンド,倉骨彰出版社/メーカー: 草思社発売日: 2012/02/02メディア: 文庫購入: 27人 クリック: 421回この商品を含むブログ (196件) を見る上を読んだ。タイトル…