質問: C++やPythonなどで、自分が使いやすいようにクラス化しているのですが、 時間がたつと、どんなものを作ったのか忘れてしまい、車輪の再発明をしてしまいます。 皆さまは、自作したクラスや関数などをどのように管理されているでしょうか? 漠然とした質問で大変申し訳ありませんが、ご助言いただけると幸いです。 よろしくお願いいたします。
回答: 基本的なアルゴリズムであれば、よいライブラリがあるので、それを使います。 よいライブラリがない言語は使わないことにしています。 そうでないものについては、うまいベストプラクティスがないケースなので、 その都度書き直してたりします。 数ヶ月後にコードを忘れていることもありますが、 別のよい書き方を思いついていたりするので、 書き直したほうがより簡潔で速度も早いコードになってたりします。 そして数カ月後に更に... 最近だと数カ月後にライブラリのバージョンアップに伴って互換性もなくなるので... あまりクラスをカスタマイズしない方がよい気がします。 特定の問題が簡単に扱えるようにカスタマイズするとその分汎用性は落ちますので。 ライブラリの実装がどうしても気に入らなく、より優れた実装があると信じているのなら、 オープンソースの場合直接コミュニティに参加してコミットするとよいと思われます。 大規模なプログラムを設計する際はもっとがんばりますが、 全体の設計は固定しても、個々の実装は変更が容易なはずです。 というよりそのようにがんばって設計します。