お知らせ(と執筆のきっかけ)
Qiitaに「【短命に終わった】国民の祝日.csvをパースして変換するRubyプログラムとコード解説動画」という記事を書きました。
「国民の祝日.csv」って何?という方はこちらをご覧ください。
このCSVファイル、プログラマにとっては非常に扱いづらい形式のため、あちこちから「ひどい」「最悪」と非難を受けていたかわいそうなCSVファイルです。
「休日が一覧できるCSV作ったよー」があんなにアホなのは、コードを書かない人が意思決定をするからと推測され、プログラム教育の必要性自体は感じるのだが、子供の方ではなく意思決定する年配の人の方が先に学ばないと、今後30年くらいの期間、ネ申Excel的な問題が続くと思われる。 pic.twitter.com/C6bfzuH95I
— 未識@🐠🏭技術書典2 お-03 (@mishiki) 2017年2月22日
僕は直接仕事で使ったりする要件はなかったのですが、単純に「このファイルをプログラム内できれいに読み込む処理を書いたら面白そう」と思い、Rubyでそんなプログラムを書きました。
国民の祝日.csvをパースするプログラム、とりあえずコードは書いた。https://t.co/2e54pF0eRl
— Junichi Ito (伊藤淳一) (@jnchito) 2017年3月1日
ところがその数時間後、突然何の前触れもなく「国民の祝日.csv」の形式が変わりました。
生まれ変わったCSVファイルは何の変哲も無い普通のCSVファイルになっています。。。
ちょっと、今さっき「国民の祝日.csv」をダウンロードしてみたら、形式が変わってる!!(CSVらしいCSVになった!!)https://t.co/WTKV2O9deg pic.twitter.com/JyJbHbycx9
— Junichi Ito (伊藤淳一) (@jnchito) 2017年3月1日
なので、僕が書いた「国民の祝日.csvをパースするプログラム」は実用性の面では価値ゼロになってしまいました😂
とはいえ、純粋なプログラミング問題として見れば、これはなかなか面白い問題です。
というわけで、Qiitaで僕の書いたコードを紹介することにしたのでした。
Qiita記事のポイント
このQiita記事は「コードを見せておしまい」ではなく、「プログラムを設計する際の考え方」や「テスト駆動開発(TDD)の方法」等も含めて解説しています。
また、コードのロジックについては文章でなく、動画を使って説明しています。
【短命に終わった】国民の祝日.csvをパースして変換するRubyプログラムとコード解説
プログラミング初心者の方や、Rubyを初めて間もない人にとっては「なるほど、そんな考え方やテクニックがあるのか」といろいろ参考になるところがあると思います。
また、プログラミング問題の難易度としても「簡単な方だが、簡単すぎるわけでもないレベル」なので、プログラマの入社試験や新人研修のプログラミング課題として使うとなかなかいいんじゃないかな~と思います。
余談:リツイート数が1000を超えると通知欄はこうなる
「形式が変わってる!!」とツイートしたら、どんどん拡散されて1日で1000を超えました。
ツイッターの通知欄もなかなか激しいことになっています。
長年ツイッターをやってきましたが、リツイート数が1000を超えたのは初めてです。
普段は伸びてもせいぜい数十ぐらいなので、興味深い体験ができました。
まとめ
というわけで、このエントリではQiitaに書いた「【短命に終わった】国民の祝日.csvをパースして変換するRubyプログラムとコード解説動画」という記事を紹介しました。
みなさんも興味があればぜひ「自分なりの変換プログラム」にチャレンジしてみてください!