目の前に僕らの道がある

勉強会とか、技術的にはまったことのメモ

2009-07-01から1ヶ月間の記事一覧

テスト駆動開発入門をRubyで写経してみた。12

12章で実施したこと Expressionインタフェースの追加 +()メソッドの追加 Bankクラスの仮実装 money.rb 静的型付けであるJavaのコードから写経しているので、不自然な部分が多々あります。、 #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門12章 ついに…

テスト駆動開発入門をRubyで写経してみた。11

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…

BSCIに合格したよ。

CCNP2/4です。BCMSNは6月に取得済みなので、残すはONTとISCWの2つのみです。この2つはBSCIやBCMSNに比べればさほど難しくないらしいので、うまくいくと8月中にはCCNPホルダーになれるかもしれないと夢想しています。ネットワークエンジニアへキャリアチェン…

実はruby1.9を使っていた。

今までずっとruby1.8を使っていると思っていたのですが、ふとバージョンを調べてみたらruby1.9の方にパスが通っていてそっちを使っていたみたいです。 Windows PowerShell Copyright (C) 2006 Microsoft Corporation. All rights reserved. PS [RICHARD] >ru…

miniunitとTest::Unit

ruby1.9から標準のユニットテストのフレームワークはTest::Unitからminiunitに変更になっているみたいですね。特に仕事でRubyを使っている訳ではないので、1.8から1.9に移行するのは難しくはないのですが、この辺の細かい変更点は留意しておかないとね。

テスト駆動開発入門をRubyで写経してみた。10

10章で実施したこと *()メソッドをMoneyクラスに移動 結局Pythonの__repr__()メソッドに相当するメソッドが分かりませんでした。to_s()メソッドがクラスの文字列表現らしいのですが、うまく出力してくれませんでした。 money.rb #!/usr/bin/ruby #coding: ut…

テスト駆動開発入門をRubyで写経してみた。9

9章で実施したこと DollarクラスとFrancクラスのコンストラクタを共通化 通貨単位を返すcurrencyアクセサの実装 *()メソッド内でのファクトリメソッドの使用 money.rb #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門9章 生きている時(times) class Mo…

テスト駆動開発入門をRubyで写経してみた。8

8章で実施したこと ファクトリメソッドパターンを適用し、サブクラスへの参照を減少させた money.rb #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門8章 オブジェクトの生成 class Money attr_accessor :amount protected :amount def ==(other) retur…

テスト駆動開発入門をRubyで写経してみた。7

7章で実施したこと 同じ量のFrancとDollarを比較した際、同値と判断されないよう修正 money.rb #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門7章 りんごとみかん class Money attr_accessor :amount protected :amount def ==(other) return @amount…

テスト駆動開発入門をRubyで写経してみた。5

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 …

テスト駆動開発入門をRubyで写経してみた。6

6章で実施したこと Franc、Dollarの親クラスMoneyの追加 Franc、Dollarの*()メソッドをMoneyに移動 money.rb #!/usr/bin/ruby #coding: utf-8 # テスト駆動開発入門6章 再度、すべてに対する等価性 class Money attr_accessor :amount protected :amount def…

テスト駆動開発入門をpikzieで写経してみた。1

テスト駆動開発入門をPythonで写経してみた。1をpikzieでテストを書き直してみました。 money.py テスト駆動開発入門をPythonで写経してみた。1から少し書き換わっています。 #!/usr/bin/env python # coding: utf-8 """ テスト駆動開発入門1章 """ class Do…

pikzieのインストールに成功した。

前回はsyslogモジュールが見つからないため、インストールに失敗しましたが、trunkに置いてあるバージョンを試してみたらインストールできました。とりあえずいろいろ試してみます。

テスト駆動開発入門をRubyで写経してみた。 4

ちょっと再開します。 PythonよりRubyの方がすっきり書けて楽しいです。 4章で実施したこと amoutのプライベート化 今回はインスタンスメソッドとして呼び出しているので、可視性はprotectedになっています。 money.rb #!/usr/bin/ruby #coding: utf-8 # テ…

PyUnitのassertEqual()メソッドのactualとexpected

RubyのTest::Unit::Testクラスにおけるassert_equal()メソッドでは第一引数がexpected、第二引数がactualってなっています。確かJUnitと同じだったと思います。 http://www.ruby-lang.org/ja/man/html/Test_Unit.htmlPythonのTestCaseクラスのassertEqual()…

テスト駆動開発入門をPythonで写経してみた。12

12章で実施したこと Bankクラスの仮実装 MoneyクラスをExpressionクラスから継承(実装)するよう変更 __add__()メソッドの追加 だんだん元のコードの意図が分かりづらくなってきました。Moneyの和はExpression(式)になるという発想自体が私には出てきません。…

pikzieのインストールに失敗

pikzieっていうPythonのユニットテストフレームワークがあります。 http://pikzie.sourceforge.net/index.html.jaこれのアサーションがPyUnitよりPythonぽくてよさげ*1なのでちょいと試してみようかとしたのですが、見事にインストール失敗しました。syslog…

プロジェクトの削除

TracLightningではプロジェクトを作成するときは、バッチファイルを実行すればいいけど、プロジェクトを削除するにはどうしたらいいんだろう。ググってみたら、該当するディレクトリを削除すればいいって書いてあったけど、どう考えてもゴミが残りそうで厭だ…

テスト駆動開発入門をPythonで写経してみた。11

11章で実施したこと DollarクラスおよびFrancクラスの削除 冗長なテストの見直し 不必要なテストを削除しています。 money.py #!/usr/bin/env python # coding: utf-8 """テスト駆動開発入門 11章 諸悪の根源 """ class Money(object): def __init__(self, a…

テスト駆動開発入門をPythonで写経してみた。10

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 ホストおよ…

テスト駆動開発入門をPythonで写経してみた。9

9章で実施したこと DollarクラスとFrancクラスのコンストラクタを共通化 通貨単位を返すcurrency()メソッドの実装 times()メソッド内でのファクトリメソッドの使用 times()メソッドが気持ち悪いです。Python的には__mul__()メソッドを定義して*演算子をオー…

テスト駆動開発入門をPythonで写経してみた。8

8章で実施したこと ファクトリメソッドパターンを適用し、サブクラスへの参照を減少させた times()メソッドをMoneyクラスで抽象メソッドとして宣言 Python2.5には抽象クラスが無いので、times()メソッドでNotImplementedErrorを発生させています。 money.py …

テスト駆動開発入門をPythonで写経してみた。7

7章で実施したこと 同じ量のFrancとDollarを比較した際、同値と判断されないよう修正 __class__アトリビュートが同じかどうかで判定するようにしました。ただ直接__class__アトリビュートを見ているのが気持ち悪いです。ほかにいい方法はないかな。 money.py…

テスト駆動開発入門をPythonで写経してみた。6

ちょっとずつ書いていきます。 6章で実施したこと Franc、Dollarの親クラスMoneyの追加 Franc、Dollarの__eq__()メソッドをMoneyに移動 本筋とは関係ないが実施したこと 意味をなしていないequals()メソッドの削除。__eq__()メソッドへの統合 前回も書きまし…

テスト駆動開発入門をPythonで写経してみた。16

とりあえずコードだけ。原書は相変わらず会社に置きっぱなしなので記憶を頼りに解説を書こうかと思っていましたが、かなり昔に書いたコードなので思い出せませんでした。タイプスタンプを見る限りでは3ヶ月くらい前でした。やりっぱなしじゃ勉強した意味がな…

テスト駆動開発入門をPythonで写経してみた。15

とりあえずコードだけ。 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…

テスト駆動開発入門をPythonで写経してみた。14

とりあえずコードだけ。 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, …

テスト駆動開発入門をPythonで写経してみた。13

とりあえずコードだけ。 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…