SE(たぶん)の雑感記

一応SEやっている筆者の思ったことを書き連ねます。会計学もやってたので、両方を生かした記事を書きたいと考えています。 でもテーマが定まってない感がすごい。

CodeKataで遊ぶ Kata04:データマンジング

CodeKataやってみた記事、第四弾です。

今回は、Kata04: Data Mungingをやっていきます。

codekata.com

Data Mungingとは、

受け取ったデータのフォーマットをその他のフォーマットに変換する技法全般

のことを指すそうです。初耳です。(リンク

問題概要

Martin Fowler*1は、Kata02*2で苦しめられたとのこと。
理由は、「単機能で学術的」であることから。

それはその通りなので、趣向を変えた三問を用意。先読みせずに、一問ずつ答えましょう。

…という感じです。

なお、いずれの問題でも、とあるファイルを読み込んで利用します。元ファイルはKata04のサイトから各自取得してください。

問1:天気データ

2002年6月のモリスタウン気象情報のテキストファイルを読み込み、最高気温と最低気温の差が最も小さい日を出力。

1列目:日付 2列目:最高気温 3列目:最低気温

問2:サッカーの試合

2001年2月のイギリスプレミアリーグの結果のテキストファイルを読み込む。

「F(for)」の列には自身が取ったゴール数、「A(against)」の列には取られたゴール数が格納されている。
この差が一番小さいチームの、チーム名を表示する。

問3:DRY原則の適用(融合)

できる限り、二つのプログラムの重複を排除し、共通機能を作る。
二つのプログラムと、共通機能を作成する。

Kataとしての問

  • 元のプログラムを書くときにあなたが作った設計上の決定は、共通コードを除外することを容易にしたり、難しくしたりしましたか?

  • 二番目のプログラムは、最初のプログラムの影響を受けましたか?

  • 共通部分にプログラムを分解するのは、常に良いことですか?この要件のためにプログラムの可読性が損なわれましたか? メンテナンス性はどうですか?




いつものように、続きは一応隠します。(直接見ると隠れません)

*1:リファクタリングオーム社)』等の著者

*2:イナリサーチを、異なる方法で五回記述する問題。過去記事で解いているので、良ければ参照ください

続きを読む