読者です 読者をやめる 読者になる 読者になる

Screaming Loud

研究・プログラミングなど気づいたことをメモをしています

CodeKata 4:データマンジング

今日はCodeKata: Kata Four: Data Mungingを訳します。

タイトルの「マンジング」(munge)は、あるデータを見慣れないものに変換するということらしいです。
mungeの意味 - 英和辞典 Weblio辞書


Martin FowlerはKata2という難しい問題を出してくれたが、Yet anotherな関数であるし、勉強っぽい練習だとグチをこぼしていた。まぁどっちもそうだね。ってことで、今週は問題を少し混ぜてみよう。
現実の世界のデータを使って3つの練習問題を作った。頑張って先に読むんじゃなくて順番に解いていこう!

パート1:天気データ

weather.dat にNJのMorristownの2002年6月の日別天気のデータが入ってる。このテキストファイルをダウンロードしてから、最低気温の日(1列目)を出力するプログラムを書こう。(最高気温は2列目、最低気温は3列目)

パート2:サッカーリーグのデータ

soccer.datには、2001年のイングランド・プレミアリーグの結果が入っている。その列は「F」と「A」でラベルがつけられ、これは対戦チーム同士の各総ゴール数を表している。(だから、アーセナルは敵に対して79得点36失点となる)
このデータから得失点差が最小のチームを判別するプログラムを書こう。

パート3:DRY Fusion

上で書いた2つのプログラムを出来る限り一般的な形に分解してみて、2つのより小さなプログラムへ直して共通の関数を作ってみよう。

Kataの質問

  • 最初に書こうと決定したコードの構成を分解するのはどれくらい簡単だったか?
  • 1回目に書いたコードは2番目に書いたコードに影響を与えたか?
  • 毎回汎用性のあるコードを書こうとすることはいいことか?汎用性をコードに求めることによってプログラムの信頼性は落ちたか?デバッグはどうだったか?