CodeKataやってみた記事、第四弾です。
今回は、Kata04: Data Munging
をやっていきます。
Data Munging
とは、
受け取ったデータのフォーマットをその他のフォーマットに変換する技法全般
のことを指すそうです。初耳です。(リンク)
問題概要
Martin Fowler*1は、Kata02*2で苦しめられたとのこと。
理由は、「単機能で学術的」であることから。
それはその通りなので、趣向を変えた三問を用意。先読みせずに、一問ずつ答えましょう。
…という感じです。
なお、いずれの問題でも、とあるファイルを読み込んで利用します。元ファイルはKata04
のサイトから各自取得してください。
問1:天気データ
2002年6月のモリスタウン気象情報のテキストファイルを読み込み、最高気温と最低気温の差が最も小さい日を出力。
1列目:日付 2列目:最高気温 3列目:最低気温
問2:サッカーの試合
2001年2月のイギリスプレミアリーグの結果のテキストファイルを読み込む。
「F(for)」の列には自身が取ったゴール数、「A(against)」の列には取られたゴール数が格納されている。
この差が一番小さいチームの、チーム名を表示する。
問3:DRY原則の適用(融合)
できる限り、二つのプログラムの重複を排除し、共通機能を作る。
二つのプログラムと、共通機能を作成する。
Kataとしての問
元のプログラムを書くときにあなたが作った設計上の決定は、共通コードを除外することを容易にしたり、難しくしたりしましたか?
二番目のプログラムは、最初のプログラムの影響を受けましたか?
共通部分にプログラムを分解するのは、常に良いことですか?この要件のためにプログラムの可読性が損なわれましたか? メンテナンス性はどうですか?
いつものように、続きは一応隠します。(直接見ると隠れません)
続きを読む