Entries from 2010-11-01 to 1 month

素振り take2

もっと静的に # -*- encoding: UTF-8 -*- describe "Accounting Transactionパターンの素振り" do before do AccountingTransaction.clear @sato = Account.new do |a| a.name = "佐藤" a.entries = [Entry.new(101), Entry.new(200), Entry.new(-100)] end …

素振り

読みどころは、 SendMoneyContext.new do |c| c.from_account = Account["佐藤"].extend FromRole c.to_account = Account["田中"].extend ToRole c.amount = move_amount end.run かな。 # -*- encoding: UTF-8 -*- describe "Accounting Transactionパター…

メタボリック ドメイン

DCIの説明を受けた際に、関連して考えていた、DCIが嫌っている状況と考えられるものを不吉な臭いとして 言葉に記述しておく。 メタボリック ドメインの 症状 1つのEntityの中にたくさんのメソッドがある。そのメソッドがいつどこで(どのストーリーを実現さ…

メモ

DCIを積極的に採用しない場合でも、使用言語がRuby、Entityの肥大化で困ってる場合、振る舞いを Entity から あるmodule に移動させ、実行コンテキストで そのモジュール と Entityを extendsを使って 動的紐付けにする リファクタリングは、選択としてあり…

DSLs Chapter10を 読んだ

Domain-Specific Languages (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Professional発売日: 2010/09/23メディア: ハードカバー購入: 1人 クリック: 55回この商品を含むブログ (10件) を見るA Zoo of D…

Java のオブジェクト組み立て

public class Person { private String name; private int age; public String name() { return name; } public void name(String name) { this.name = name; } public int age() { return age; } public void age(int age) { this.age = age; } public stat…

On Dialogue の necessity

『necessity』 は On Dialogue を理解する上で、重要な言葉だ。 これを理解するヒントをマンガのハンターハンター の中に書いてあった。書き出しておく その人を知りたければ その人が何に対して怒りを感じるかを知れ クラピカ と レオリオ が互いの主義、主…

togetter ”言語内 DSL を考える” を 読んだ

http://togetter.com/li/62167を読んだ. DSLs 3.7, 6 を連想させる内容だった。マクロを例にして話が進む。ちょっと想像が出来なかった。個人的には、内部の構造がちらついても良いんだが DSLの記述層の何処に間違いがあるかが分かってほしいのは確か。Inter…

メタプログラミング Ruby 3章を読んだ。

ブロックの章。2-3回読んだ気がする。 タイトルで想像していたものより,内容の深いものであった。 ブロックで、変数のスコープをうまくコントロールする妙技がこの章のキーの一つになる。さわりだけ解説。 times = 3 [1, 2, 3].map{ |n| n * times } timesが…

容器のメタファ。 タイムボックスとKanbanの相違について

頭に浮かんだのでメモっておく。タイムボックスは、容器とその容器につめる物体のメタファーを利用している。 容器が、あるイテレーション期間内の時間の長さ 容器に入れる物体が、フィーチャーやストーリ に対応づけられる。 容器を固定にして、つめる物体…

DSLs Chapter4 を読んだ

Domain-Specific Languages (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Professional発売日: 2010/09/23メディア: ハードカバー購入: 1人 クリック: 55回この商品を含むブログ (10件) を見るInternal D…

Money 素振りめも

Moneyを素振りして気づいたんだが、パタンやイディオムが、いろいろ隠れている。 Nested Closure(DSLs) describe "Money" do ... context "比較演算" do it "" do ... end end ... end この種の構造化、業務系ドメインの Production Code でデザインしてみた…

memo money

# -*- encoding: UTF-8 -*- describe "Money" do it "3000.yen で Moneyオブジェクトが生成できること" do 3000.yen.should == Money.create(3000, :yen) end describe "比較演算" do it " == できること " do (1000.yen == 1000.yen).should be_true (1000.…

DSLs Chapter3

を読んだ。Domain-Specific Languages (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Professional発売日: 2010/09/23メディア: ハードカバー購入: 1人 クリック: 55回この商品を含むブログ (10件) を見る…

memo Ruby

書いてみたが、まずい。今イチ class Part attr_accessor :name attr_reader :parts def initialize name @name = name @parts = {} end def add child @parts[child.name] = child self.instance_eval(%{ def #{child.name} @parts["#{child.name}"] end}) …