手を動かして気付けた/知った問題に遭遇した時、どう行動するか

Share on:

s_2015013001490054cae30cda5a8

ここ数日(1週間?)、
「90万件用意したデータを処理させたけど出力件数が合わない」
というので悩んでいたらしく、先週のゼミでその「合わない」というだけの報告と、今週のゼミで「どうやら出力時に改行コードがミスってるように見える箇所がある」という報告が。という感じで週1回の報告でその粒度でその詳細度じゃ良く分からないので「見せて」となるわけですが、それでも良く分からず。直接自分でやってみることに。

入力したデータ件数と同じ件数の出力が得られるはずだというなら、そう出力させれば良いよねということでTSV形式で「読み込んだ数¥t入力データ¥t出力データ」と出力すると、実は出力されないケースがあることが判明。ちぇっ、どういう状況で変なコードが出力されるのか確認するためのスクリプトも組んじゃったのに必要なかったじゃないか。

という具合に、何かしら問題に遭遇したらそれにどう対応するか、という技術というか判断なりは大切なんだけど、そういうのっていろんなシーンに遭遇してその都度多種多様な対応策を考えてみたり、策毎のメリット・デメリット考えたり、実際に試してみたりするしかない。いや、HwoTo本みたいなものでもある程度得られる知識はあるんだろうけど、それを活用できるかどうかは別問題だし。

他にも「1秒あたりの処理件数が約20件ぐらい? って90万件まるまる逐次処理させてたら3日もかかるとか待ってられん。リソース(Cores, Memori)はまだ十分余ってるからデータ分割して並列処理させるか。」とか。結局6時間ぐらいで終わったし。こういうのは「そもそも問題と気付く/判断するかどうか」だよな。