2010-05-01から1ヶ月間の記事一覧
遡及日記なので勉強会で得られた気づきだけ列挙します。(2010/05/31記) プラクティスを教科書通りに単純に導入してもだめ 何で導入したのか、そもそも問題が何であったのかを明確化、共有化する 意図が分からないプロダクトオーナの行動はメンバの不信感を生…
今回は設定に関してです。ここまで分かれば簡単なアプリケーションは作れるかな。後はデプロイに関しても調べなきゃいけないとは思うのですが、外部公開とかしない限りは組み込みスタンドアロンサーバで十分なのでしばらく放置します。テストに関しては時間…
ほとんどPODに書いてあるような内容です。ほぼ備忘録です。 ルートパスのワイルドカードマッチ ルートパスにはワイルドカード'*'を含むことができます。それぞれのワイルドカードに一致した内容はsplatを通して取得することができます。下記の例の場合、最初…
自分用Catalystの備忘録です。いつものごとく他の人には役に立ちそうにないです。 インストール Perl5.8のActivePerlレポジトリにしかパッケージが無いっぽいです。少なくとも5.10.1には無かったです。 ppm install Catalyst::Devel スケルトン作成 ※Perl\bi…
備忘録です。Perlベストプラクティスを読んで、ちょっと実験。前の会社のコードは基本方針全部破っていたなあとかふと思った。PerlのFile I/Oに関する基本方針 ファイルハンドルに裸のワードを使用しない 3項のopenを使用する open,closeエラー時は例外を発…
キユーピー3分インフラクッキング -初心者にも優しいインフラ勉強会第一回に行ってきました。emobileの端末を忘れたので、Twitterでは静かにしていましたが会場にはいました。 今回は初開催ということで、ちょっと会場運営大変そうでした。私自身バリバリの…
ついに加法 やったこと Bankクラスの仮実装 plusメソッドの追加 RubyとPythonでやったときはExpressionインタフェースを作ったのですが、今回今のところインタフェースが必要とは思えないので、作ってません。 lib/Money.pm package Money; use strict; use …
遅くなったけど、メモ的なものを残しておきます。少し前のことなので、だいぶ忘れています。こういうのはすぐまとめないとだめですね。Problemとして残しておきます。いくつか勉強会に行ってきましたけれども、PFPが一番場の雰囲気が良くて面白いと思ってい…
諸悪の根源 やったこと DollarクラスおよびFrancクラスの削除 冗長なテストの見直し 不要なコードを削除したのですっきりしました。 lib/Money.pm package Money; use strict; use warnings; use Carp; use version; our $VERSION = qv('0.0.3'); use overlo…
興味深い時 (times) やったこと times()メソッドをMoneyクラスに移動 等値性の評価をクラスではなく、通貨で行うようにした。 サブクラスはコンストラクタだけなので次回以降、取り除いていきます。 lib/Money.pm package Money; use strict; use warnings; …
生きている時(times) DollarクラスとFrancクラスのコンストラクタを共通化 通貨単位を返すcurrency()メソッドの実装 times()メソッド内でのファクトリメソッドの使用 DollarクラスとFrancクラスでスーパークラスのコンストラクタを呼んでいますが、この処理…
オブジェクトの生成 今回は、クライアントコード側でDollarクラスやFrancクラスの内部実装を意識させないためにファクトリメソッドを定義しました。Moneyクラスのfranc()メソッドおよびdollar()メソッドがそれに当たります。原書ではMoneyクラスを抽象メソッ…
りんごとみかん FrancオブジェクトとDollarオブジェクトを比較した際に単位が同じでも等値と判断されないように修正します。今回は、refを使用してクラス名を取得し、通貨を判定するようにしています。 lib/Money.pm package Money; use strict; use warning…
再度、すべてに対する等価性 今回やったこと DollarクラスおよびFrancクラスの基底クラスMoneyを作成 equals()メソッドおよび関連メソッドを基底クラスに移動 クラス間の重複を取り除いたので大分すっきりしました。あとはコンストラクタとtimesメソッドの重…
「フランク」に話す DollarクラスをコピペしてFrancクラスを追加しました。本来ならやっちゃいけない変更です。特筆すべきことはないです。 package Money; use strict; use warnings; use version; our $VERSION = qv('0.0.3'); 1; package Dollar; use stric…
今回はインスタンス変数を直接アクセスせずに比較できるように変更しています。ただ、インスタンス変数amountのプライベート化をどうすれば実現できる分からなかったので、運用回避という形をとっています。やろうと思えばアクセスできてしまいます。Perlの…
今回はequals()メソッドを定義してDollarオブジェクト同士の等値性を比較できるようにしています。あと、書き忘れていましたが1回目でis()のactualとexpectedが逆だったので合わせて修正しました。 lib/Money.pm package Money; use strict; use warnings; u…
今回は大した変更をしていません。 lib/Money.pm timesメソッドでDollarクラスを返すよう変更しました。 package Money; use strict; use warnings; use version; our $VERSION = qv('0.0.3'); 1; package Dollar; use strict; use warnings; sub new { my (…
xUnitチックにテストが書けるTest::Classなるものがあることを技評の記事*1で知ったので、試してみました。 どうせ試してみるなら、『テスト駆動開発入門』の写経がいいかなと思いやってみました。Ruby、PythonはやったけどPerlは写経していなかったし、それ…