Sat 02/16, 2008

JPUG北海道支部/Ruby札幌合同セミナー [Computer and Networking ]

PostgreSQL Water午前中、「JPUG北海道支部 / Ruby札幌合同セミナー」に出かけてきた。実は Ruby は使っていないし、PostgreSQL を使っていたのも名前が変わる前なんだけれど、たまにはこうして刺激を受けないことにはダメになってしまいそうだ。セミナーの詳細は 日本PostgreSQLユーザ会案内ページ、またはRuby 札幌案内ページで。なお Ustream によるビデオ中継は http://ruby-sapporo.org/live/、IRC は chat1.ustream.tv:6667 #rubysapporo (UTF-8) で実施されているが、上記の案内ページには書かれていないようだ。

最初のセッションは角谷さんの「RSpec によるテスト駆動開発」。既にご当人によるレポートが上がっている。プログラマであれば意識しているか否かに拠らず、このようなテストと実行の繰り返しを実践してはいる筈だが、それを徹底してしまう手法だ。あえて特定のケースにしか当てはまらないコードを書いてはリファクタリングを繰り返すというのは、ある意味で作業を機械的に進めることができるのかも知れない。会場に流れていた IRC のログにもあったが、作業を繰り返して終了したと思った頃にやってくるのが仕様変更・追加ってヤツなのだ。これが日常的になると、プログラマは効率よりも柔軟性を重視したコードを書くようになる(*)。また、"code-kata" と称して基本的なプログラミングの課題を繰り返し解くことを紹介していた。"kata" とは「型」で、武道などにおけるそれを意識した命名らしい。

次は大垣靖男さんによる「PostgreSQL 8.3 におけるパフォーマンスについて」。主に以前の版の PostgreSQL や MySQL との比較。デフォルトの設定は駄目ダメで、チューニングで大幅に性能が改善することを紹介。チューニングの重要性は DBMS の種類を問わない。チューニングは難しいが、InterBase/FireBird のようにチューニングの余地が少ないものはある程度以上の性能を求めにくい。今日のネタとは関係ないけれど、InterBase/FireBird はそれ以外でもミドルウェアや互換性云々から、採用に関しては微妙だ。

三番目は再び Ruby。谷口文威さんによる「Ruby について」。DB 操作や HTTP/HTML 操作などの紹介。最初に書いたように私自身は Ruby を使っていない。ついでに Java も使っていない。C(C++) と Perl を主に使っていて、それで間に合っている。もちろん、必要に迫ればそれ以外を使用することにやぶさかではないが、これまでの仕事をこなすには Ruby より Perl が手っ取り早かったのだ。今現在、白紙の状態で選択するならやはり Java や Ruby なのかも知れないが、Java はどうにも中途半端な感じがするのだ。Perl はなんといっても CPAN の存在が大きいが、Ruby ではどうなのだろう。

[追記]
現場ですぐに修正できるようにコンパイラは避けてインタプリタを使う。C/C++ のプロトタイプを Perl で書いてみて、別に Perl のままでいいじゃないかと思う。Hash や動的配列が欲しくなって STL を覚える。コード中に宣言するような定数でも、外部の設定ファイルに置いて実行時に読み込む。SQL は SQL::Library などを使って、これもコードと分離する。Text::Template は友達だ。
現場でのシステムテスト時に仕様変更するとか、さらっと仕様書の修正を連絡してくるとかは勘弁して欲しいが、柔軟に対応できることがバレると当たり前のように次から次と要求されてしまう。仕様が変わればこれまでのテストは意味を失う。これって「アジャイル」開発? 仕様書は永遠に未完成のままだ。こんな状況で品質を問われるのはとても苦しい。つぎはぎのコードになって、挙句に汚いとか遅いとか言われた日にはxxしそうになる。いけない、愚痴になってしまった。「事前に分かっている変化は、変化のうちに入らない」のだそうだ。「事前に予測できる障害は障害のうちに入らない」というのもある。

Posted by masato at 03:27 PM
このエントリーのトラックバックURL: http://bird.dip.jp/cgi-bin/mt/mt-tb.cgi/1524
コメントする

おそらく携帯電話等からは投稿できません。日本語文字列を含まないコメントやトラックバック、および当サイトへの言及を含まないトラックバックは御遠慮いただいております。また、90日以上経過した記事へのコメントはできません。










名前、アドレスを登録しますか?