これは常にトレードオフです。
初心者プログラマーとして、コードの再利用とスクエアホイールの再発明を検討する際には、次の2つの質問を自問する必要があります。
- ゼロからすべてを記述するか、問題の領域に焦点を合わせ、関心のある問題にとって重要ではない複雑さを脇に置くことで、解決したい問題についてさらに学習しますか?
- 手元の問題を解決することは私にとってより重要ですか、それとも基本的な概念を理解することがより重要ですか?
プロジェクトを終了する必要がない場合は、他の人がすでに解決している複雑な問題について車輪を回しても大丈夫です。何かを学ぶからです。しかし、おそらく「完成」する前に他の何かに進むでしょう。それはあなたにとって重要かもしれないし、そうでないかもしれません。他のプロジェクトは、自分で解決しようとするまで単純に見える複雑なドメインに頭を突っ込むと、すぐに輝いて見えます。
他の誰かの考え方に遅れをとっているので、制御を放棄することに執着しないでください。あなたが達成しようとしていることにもっと集中してください。
パーサーがどのように機能するかを理解するためにHTMLパーサーを作成することが目標である場合は、それを試してください。ユーザー入力をサニタイズしたり、HTMLのランダムなビットを変換したりするためにHTMLパーサーを作成することが目標の場合は、おそらく解析自体よりも解析のアプリケーションに関心があるため、間違ったことに集中している可能性があります。他の人のライブラリを理解するのに時間をかけたくないためにHTMLパーサーを書きたいと思うなら、おそらくあなたは時間を無駄にしているでしょう。少なくともこの場合、私は他の人があなたが持っているよりもこの問題を効果的に解決するために。本当にささいなケースでは、コードを再利用しないことで時間を節約できますが、使用するライブラリがひどい場合や、ドキュメントやコードサンプルを読む能力がひどい場合を除いて、
一方、使用することになったとしても、他のドメインに適用できる転送可能な基本的なアルゴリズムとデータ構造により重点を置くため、独自のグラフライブラリを作成する価値があると言えます。あなたがそれらの問題に取り組むとき、他の誰かのライブラリ。