2009-07-01から1ヶ月間の記事一覧
12章で実施したこと Expressionインタフェースの追加 +()メソッドの追加 Bankクラスの仮実装 money.rb 静的型付けであるJavaのコードから写経しているので、不自然な部分が多々あります。、 #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門12章 ついに…
11章で実施したこと Dollarクラス、Francクラスの削除 money.rb #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門11章 諸悪の根源 class Money attr_accessor :amount, :currency protected :amount def initialize(amount, currency) @amount = amount…
CCNP2/4です。BCMSNは6月に取得済みなので、残すはONTとISCWの2つのみです。この2つはBSCIやBCMSNに比べればさほど難しくないらしいので、うまくいくと8月中にはCCNPホルダーになれるかもしれないと夢想しています。ネットワークエンジニアへキャリアチェン…
今までずっとruby1.8を使っていると思っていたのですが、ふとバージョンを調べてみたらruby1.9の方にパスが通っていてそっちを使っていたみたいです。 Windows PowerShell Copyright (C) 2006 Microsoft Corporation. All rights reserved. PS [RICHARD] >ru…
ruby1.9から標準のユニットテストのフレームワークはTest::Unitからminiunitに変更になっているみたいですね。特に仕事でRubyを使っている訳ではないので、1.8から1.9に移行するのは難しくはないのですが、この辺の細かい変更点は留意しておかないとね。
10章で実施したこと *()メソッドをMoneyクラスに移動 結局Pythonの__repr__()メソッドに相当するメソッドが分かりませんでした。to_s()メソッドがクラスの文字列表現らしいのですが、うまく出力してくれませんでした。 money.rb #!/usr/bin/ruby #coding: ut…
9章で実施したこと DollarクラスとFrancクラスのコンストラクタを共通化 通貨単位を返すcurrencyアクセサの実装 *()メソッド内でのファクトリメソッドの使用 money.rb #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門9章 生きている時(times) class Mo…
8章で実施したこと ファクトリメソッドパターンを適用し、サブクラスへの参照を減少させた money.rb #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門8章 オブジェクトの生成 class Money attr_accessor :amount protected :amount def ==(other) retur…
7章で実施したこと 同じ量のFrancとDollarを比較した際、同値と判断されないよう修正 money.rb #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門7章 りんごとみかん class Money attr_accessor :amount protected :amount def ==(other) return @amount…
5章で実施したこと Francクラスの追加 ただし一番汚い形で。 money.rb #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門5章 「フランク」に話す class Dollar attr_accessor :amount protected :amount def initialize(amount) @amount = amount end def …
6章で実施したこと Franc、Dollarの親クラスMoneyの追加 Franc、Dollarの*()メソッドをMoneyに移動 money.rb #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門6章 再度、すべてに対する等価性 class Money attr_accessor :amount protected :amount def…
テスト駆動開発入門をPythonで写経してみた。1をpikzieでテストを書き直してみました。 money.py テスト駆動開発入門をPythonで写経してみた。1から少し書き換わっています。 #!/usr/bin/env python # coding: utf-8 """ テスト駆動開発入門1章 """ class Do…
前回はsyslogモジュールが見つからないため、インストールに失敗しましたが、trunkに置いてあるバージョンを試してみたらインストールできました。とりあえずいろいろ試してみます。
ちょっと再開します。 PythonよりRubyの方がすっきり書けて楽しいです。 4章で実施したこと amoutのプライベート化 今回はインスタンスメソッドとして呼び出しているので、可視性はprotectedになっています。 money.rb #!/usr/bin/ruby #coding: utf-8 # テ…
RubyのTest::Unit::Testクラスにおけるassert_equal()メソッドでは第一引数がexpected、第二引数がactualってなっています。確かJUnitと同じだったと思います。 http://www.ruby-lang.org/ja/man/html/Test_Unit.htmlPythonのTestCaseクラスのassertEqual()…
12章で実施したこと Bankクラスの仮実装 MoneyクラスをExpressionクラスから継承(実装)するよう変更 __add__()メソッドの追加 だんだん元のコードの意図が分かりづらくなってきました。Moneyの和はExpression(式)になるという発想自体が私には出てきません。…
pikzieっていうPythonのユニットテストフレームワークがあります。 http://pikzie.sourceforge.net/index.html.jaこれのアサーションがPyUnitよりPythonぽくてよさげ*1なのでちょいと試してみようかとしたのですが、見事にインストール失敗しました。syslog…
TracLightningではプロジェクトを作成するときは、バッチファイルを実行すればいいけど、プロジェクトを削除するにはどうしたらいいんだろう。ググってみたら、該当するディレクトリを削除すればいいって書いてあったけど、どう考えてもゴミが残りそうで厭だ…
11章で実施したこと DollarクラスおよびFrancクラスの削除 冗長なテストの見直し 不必要なテストを削除しています。 money.py #!/usr/bin/env python # coding: utf-8 """テスト駆動開発入門 11章 諸悪の根源 """ class Money(object): def __init__(self, a…
10章のソースコードがどこを探しても見つからなかったので、やり直しました。その際、前回から気になっていた場所も修正しました。 10章で実施したこと __mul__()メソッドをMoneyクラスに移動 デバッグ用の__str__()メソッドの定義 JavaでいうtoString()メソ…
最近参加させていただいたイベントをつらつらと書き連ねてみました。 2009/6/16 Python Code Reading 10 2009/7/2 ソフトウェアインスペクション・ワークショップ 2009 2009/7/7 オブジェクト倶楽部2009 夏イベント 2009/7/9-10 Janog24 Meeting ホストおよ…
9章で実施したこと DollarクラスとFrancクラスのコンストラクタを共通化 通貨単位を返すcurrency()メソッドの実装 times()メソッド内でのファクトリメソッドの使用 times()メソッドが気持ち悪いです。Python的には__mul__()メソッドを定義して*演算子をオー…
8章で実施したこと ファクトリメソッドパターンを適用し、サブクラスへの参照を減少させた times()メソッドをMoneyクラスで抽象メソッドとして宣言 Python2.5には抽象クラスが無いので、times()メソッドでNotImplementedErrorを発生させています。 money.py …
7章で実施したこと 同じ量のFrancとDollarを比較した際、同値と判断されないよう修正 __class__アトリビュートが同じかどうかで判定するようにしました。ただ直接__class__アトリビュートを見ているのが気持ち悪いです。ほかにいい方法はないかな。 money.py…
ちょっとずつ書いていきます。 6章で実施したこと Franc、Dollarの親クラスMoneyの追加 Franc、Dollarの__eq__()メソッドをMoneyに移動 本筋とは関係ないが実施したこと 意味をなしていないequals()メソッドの削除。__eq__()メソッドへの統合 前回も書きまし…
とりあえずコードだけ。原書は相変わらず会社に置きっぱなしなので記憶を頼りに解説を書こうかと思っていましたが、かなり昔に書いたコードなので思い出せませんでした。タイプスタンプを見る限りでは3ヶ月くらい前でした。やりっぱなしじゃ勉強した意味がな…
とりあえずコードだけ。 money.py #!/usr/bin/env python # coding: utf-8 """テスト駆動開発入門 15章 通貨の混合 """ class Expression(object): def reduce(self, bank, currency_to): raise NotImplementedError def __add__(self, addend): raise NotIm…
とりあえずコードだけ。 money.py #!/usr/bin/env python # coding: utf-8 """テスト駆動開発入門 14章 変化 """ class Expression(object): def reduce(self, bank, currency_to): raise NotImplementedError class Money(Expression): def __init__(self, …
とりあえずコードだけ。 money.py #!/usr/bin/env python # coding: utf-8 """テスト駆動開発入門 13章 動作 """ class Expression(object): def reduce(self, currency_to): pass class Money(Expression): def __init__(self, amount, currency): self._am…