(それぞれ継承したクラスを)自分で実装する事でようやく気付く事ができました.実際に俺俺ライブラリ作ってる身としては、自分でライブラリ設計して実装してみるってのは、車輪の再発明であったとしても勉強になると思うんだが。ソースコードを読もうとすると物によっては挫折するのですが,既存のソースコードを読んで理解すると言う作業は,自分で(取りあえず)実装してみるよりもはるかに多様な知識を要求されます(その言語自身への理解,アルゴリズム,エラー,etc).この要因の一つに,既存のコードには「核となるアルゴリズム」と「様々なケースに対応するためのエラーチェック」が同時に含まれているから,と言うものがあります.結局のところ、自分で実装してないときには万能に見えるアルゴリズムも、自分で実装してみれば欠点がたくさんあることに気づきます。そこで、自分で実装していれば、その欠点との折り合いのつけ方、用途が決まったときに機能を限定することでの欠点の解消、別のアルゴリズムの開発へのモチベーションと、「次」へ続いていきます。個人的な経験ですが,既存のコードよりも優れたものを再実装できるケースは稀であると思います.多くの場合は,まず始めに「核となるアルゴリズム」を実装してみて,その結果発生した問題へ順次対応していった結果,既存のコードと同じ形に終息したという例が多いように感じます.しかし,この過程を踏む事によって,そのコードにおいて「どこが核となる部分か」を理解する事ができます.もちろん,既存のコードを読んでそれらを理解できれば文句ないのですが,覚えたての頃ではそれは至難の業です.「車輪の再実装」は,これらの一連の作業を段階を追って少しずつ理解できると言う利点があります.「俺のソースだから」の話、自前で作っちゃうのは状況にもよるけどそれなりに理にかなってると思うんだけどなぁ。STLみたいなものって実は自分で同様のものを作ってみた経験がないとまともに使うのってかなり難しいだろうし。「車輪の再実装」を行うときに最も重要なのは,自分が車輪の再実装をしている事をきちんと認識している事だと思います.「車輪の再発明」という言葉は、目の前を車がぶーぶー走っているのに「俺車輪なんてすごい仕掛け思いついちゃった。天才じゃね?」と言っているアホに投げつけるべき言葉じゃないのかと。「既存の実装には何かしらの意味があるはず」という意識を持つ事プログラミングを理解する上でまずい事の一つに,自分の理解の及ばないコードに遭遇した際にそのコードを「ダメなもの」と決めつけてしまう,と言うものがあります.加えて「C++ってこういうところが糞だよね」っていう事が多く、それは理由があってそうなっているんだよね、ということを理解しない。多くの場合、全ての言語機能には「理由」があるのだが、それに対して「なぜ」ではなく「糞」と片付けてしまう。「自分が使って不都合だと感じたらその機能は糞」なのだ。他の理由があってそうなっているとしても。ソフトウェアを開発しています。0.5.5βこのブログのこれまでとこれから注目記事スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。