Kata 4: データマンジング - hamamatsu-rb/hamamatsu-rb.github.com GitHub Wiki

原文:"Kata Four: Data Munging" http://codekata.pragprog.com/2007/01/kata_four_data_.html

Martin Fowler gave me a hard time for KataTwo, complaining that it was yet another single-function, academic exercise. Which, or course, it was. So this week let’s mix things up a bit. (訳者諦:KataTwo:KarateChop、二分探索のやつが、単機能でアカデミックで机上論っぽくて不満だとかなんとか?)

ここに現実世界のデータを扱う3つのエクササイズがある。各パートを1ステップずつ、先読みせずに、やってみて欲しい。

Part 1: 気象データ

weather.dat には、ニュージャージー州モリスタウンでの、2002年6月の毎日の気象データが入っている。このテキストファイルをダウンロードし、温度差が最も小さかった日の日付を出力するプログラムを書け。日付が1列、最大気温が2列目、最低気温が3列目だ。

Part 2: サッカーリーグテーブル

football.dat には、2001年2月のイングランドプレミアリーグの試合結果が含まれている。'F'と'A'の列はそれぞれ、の得点(For)と失点(Against)の合計値だ(例えばArsenalは79得点、36失点だ)。得失点差が最も小さいチーム名を出力するプログラムを書け。(訳求:the smallest difference in ‘for’ and ‘against’ goals. って得失点差でいいの? 差の絶対値ではない?)

Part 3: DRY Fusion

今書いた2つのコードの共通部分を可能な限り括り出し、2つの小さなプログラムと1つの共通部分のみになるようにせよ。

Kataからの問い

  • 最初のプログラムを書いたとき、共通部分を括り出すのを簡単 or 難しくする設計上の決定をどの程度行った?
  • 2つ目のプログラムを書く方法は、1つ目を書いたことに影響されたか? (Was the way you wrote the second program influenced by writing the first?)
  • 共通部分を可能な限り括り出すのは常に良い事か? この要件によりプログラムの可読性は低下したか? 保守性はどうか?