Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

学習において『車輪の再発明』は『追体験』だ

車輪の再発明とは

車輪の再発明ってのは、それがすでにあるにもかかわらず、同じものを自分で作るって感じの意味。
ソフトウェア業界においては、たとえばライブラリやフレームワークを使えば実現できるのに、同じようなものを作っちゃうってこと。
そういうライブラリやフレームワークがあるってことを知らずに作っちゃうって場合もあるし、オープンソースは使っちゃダメみたいな会社だと再発明だね。

学習においては車輪の再発明をしよう

なので、車輪の再発明は無駄な作業ってことになる。
だけど、これはあくまでシステム開発の作業としてって意味を含んでる。
個人の学習を考えた場合、車輪の再発明はむしろ一番勉強になる。
たとえば、Strutsを使ったWebアプリケーションしか作ったことがない場合。
Servletまで戻ってStrutsみたいなプレゼンテーションフレームワークを作ってみるってのは、とても勉強になる。

追体験とは

もちろんStrutsの機能をすべて作る必要はないけれど、リクエストからBeanに値を詰めてみたりとか。
難しければStrutsが依存するライブラリは使っていいとか、自分に合わせて。
悩んだらStrutsのソースを読んでみるのもいい。
こういうのはけっして無駄な作業じゃないし、あんまり車輪の再発明って言いたくないから『追体験』にした。


僕の同期も、枯れたフレームワークとライブラリしか使っちゃダメってプロジェクトでいろいろグルーコード書いてたけど、ホント勉強になったって言ってた。
ただ、くれぐれもプロジェクトで再発明はなしで。
フレームワークとかにバグが多いと実装は進まないから。