Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。257件1クローズされました。この質問では現在、回答を受け付けていません。質問を更新、この投稿を編集して事実と引用で回答されるようにしてください。時間がたつと、どんなものを作ったのか忘れてしまい、車輪の再発明をしてしまいます。皆さまは、自作したクラスや関数などをどのように管理されているでしょうか?漠然とした質問で大変申し訳ありませんが、ご助言いただけると幸いです。15:372「コードの内容を忘れる」なのか「ファイルの存在自体を忘れる」なのかによっても管理方法が異なってくる気がします。8:06コメントをありがとうございます。ファイルの存在自体を忘れることが多いです。今は、visualstudioを使って開発をしているのですが、ソリューションごとに管理をしており、ソリューションの中身(クラスなど)は管理ができていません。後々見返すと、ソリューションの中に、使える部品があったなぁというのがよくあります。今の時点で「閉じる」に3票入っていますね。これが「ソースコードの再利用性を上げるテクニックにはどんなものがありますか」だったら良かったのかもしれません。どのレベルの話をしているでしょうか?標準ライブラリにある関数と同じ機能を再実装した?広く知られている効率よいアルゴリズムを再実装した?あなたのプログラム専用の機能を再実装した?前者2つは可能な限り避けたいです。これは知識と経験で避けられるでしょう。以下、最後の1つであるとして人間は忘れるものですから「忘れること」自体は当たり前です。同じコードを再利用する/できる、という案件も稀です(組み込み系ではコストダウンのため使用するチップが変更になるなど普通の話)。再利用するのは「仕様」いや、むしろそういう仕様を採用した「根拠」(同じ仕様を採用する根拠にも、仕様変更する根拠にも使える)です。本来そういうのはソースコードに書くのではなくて仕様書ないしはノウハウ書に書くべきもの。プログラマは仕様書よりソースコードを読みたがるものなので、あえてソースコード上にそこまで書いておくのもありです。タグ的なものが良い)最初にコード書く際に「仕様がきっちり検索できる」ようコメント書いておくそういう仕様にした根拠、判断理由なども別ドキュメントやコメントの形で残しておく仕様は再利用してもソースコード自体は再利用しないことも多々あります。自分の技量を向上させるためにも以前のものより良い「コードを書く」ないし「仕様を決める」のは無駄ではないです。そのためには以前のコードや仕様を見つけることができなきゃ話になりません。上記はそのための工夫。洗練された高速で小さいコードが書けるようになればよいです。ためらわずに新しいコードを書きましょう。ご指摘ありがとうございます。車輪の再実装であれば意味があるんですね。12:09「車輪の再発明」と言う用語はオイラのコメントで言うところの前者、ライブラリ関数とか広く知られているアルゴリズムとか、に対して使われるのが普通なので、やはり「車輪」レベルでは再実装しないべきです。自分が独自に開発したある機能があるとき、そういうのは「車輪」ではなくて、「車のもっと重要な部品」なわけです。当時の技量より今はレベルアップしているような場合に「重要な部品」としてより良いコード・仕様が作れるようなら、そのときはためらわずに再実装=グレードアップしましょう。|2私の場合、管理は特に何もしていません。「以前こんな感じのものを作ったな」と覚えていることもありますが、それでも仕様は覚えていません。以前に作ったものと同じようなクラスが必要になった時、以前のコードを参考にすることはあっても、そのまま使うことは私はまずありません。多くの人に使ってもらうようなライブラリを目指すなら、多くの人が使えるようにいろいろな機能があって、いつでも使えるようなものになるのでしょうが、自分で作って自分で使う程度のものなら、「今作りたいプログラムに合ったクラス仕様」の方が良いと思います。管理もせず、ドキュメントも書かず、以前のコードを参考にする程度としています。「車輪の再発明」はそれほど悪い/避けるべきことだとは私は思っていません。「車輪の再発明」という部分が心に引っかかっている、ということであれば、もう少し気楽に再発明されてはいかがでしょうか。個の銅バッジコメントをありがとうございます。以前のコードを参考にして洗練されていくのであれば、無駄ではないかもしれませんね。ご意見ありがとうございます。タグが付いた他の質問を参照するか、自分で質問をする。開催しました!🎉コメントで回答する理由を教えてください関連する質問3メンバ関数からクラスの名前を取得する方法1プログラミング(javaのクラス)について質問があります。6クラス内からしか呼び出さないメソッドを明示する方法はないでしょうか?1ネットワーク上のノードを表すオブジェクトにメソッド呼び出しでアクセスしたい1リストが表示されない原因を教えてください。