今日で株式会社ソフリットが設立されて1年です。また「会社を作って1年たったまとめ」を書こうかとも思ったんですが、あんまり面白くならなかったので、今年覚えたことのうちでいちばん重要そうなことをまとめようと思います。それは「Makefile.PLを書こう」ということ。
ではさっそく、これからHoge.pmというperlモジュールを書くとしましょう。
ここでおもむろにMakefile.PLを書き始めます。
とりあえずこれだけ書いて保存します。そしてperl Makefile.PLとして実行します。
なんとびっくり。これだけでMakefileができます。ということは、makeできますね。
make して make testしてみると、テストがないよー、と言われます。テストしようとはしてくれるんですね。じゃぁ、テストを作ってみましょう。テストはtというディレクトリを作って、その中に.tという拡張子で書いていきます。
これでTest::Moreを使ってHogeモジュールをuseできるかどうかのテストできます。Test::Moreが必要になったので、Makefile.PLを修正します。ついでにさっきperl Makefile.PLしたときに出てた名前とライセンスに関するワーニングに対応します。ここではperlライセンスにしました。
こうしてもう一度perl Makefile.PLします。
今度は何も言われずにできたみたいですね。ではもう一度make; make testしてみましょう。
こんどはテストが実行されて、Hogeモジュールが見つかんないよ!と言われました。大成功ですね。では、Hogeモジュールを書きましょう。モジュールはlibディレクトリに作ります。
かけたので、make; make testしてみると
おお。いけましたね。
では、なんか機能を付けていきましょうか。例えば、こう使うとしましょう。
というスクリプトexample.plを書いたとして、実行すると
こうなる感じ。ということはインターフェイスとしては
- new
- hoge
の二つがあることになりますね。ではテストを書いておきましょう。
テストがかけました。Hogeをnewしたら$hogeという変数にHogeのインスタンスができます。ちゃんとできてますか?というのが1個目のテスト「isa_ok」です。二個目のテスト「is」は$hogeにfugaというメソッドを実行させて、かえってきた値が”fuga\n”となっていてほしいので、それを確認しています。テストの数が2つなので、「tests => 2」と書いています。
テストがかけたので、テストしてみましょう。
Hogeにnewがないよー、と言われました。書きます。
かけたらまたテストです。
今度はfugaってメソッドがないよー、と言われます。ということは、一個目のテスト
は通ったようです。前進しましたね。ではfugaも実装しましょう。
もう一度テストすると、
通りました!
と言ったような流れでperlって書くんだよ、そんでまずはMakefile.PLを書くんだよ、というのが今年一番のお勉強でした。ということでそろそろおれもpmsetup書いてもいい時期。
あ、一年お世話になりました!2年目もよろしくです!あと、添削もよろしくです!