問題タブ [code-organization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - C# コードをファイルに整理するにはどうすればよいですか?
C# では、どの型を作成するか、どのようなメンバーが必要か、どの名前空間がそれらを保持する必要があるかという問題は、OO 設計の問題です。それらは私がここで興味を持っている質問ではありません。
代わりに、これらをディスク アーティファクトにどのように保存するかお聞きしたいと思います。ルールの例を次に示します。
アセンブリのすべての型を 1 つのソース ファイルに入れます。これを行った友人の 1 人は、「ファイルは古風なコード整理ツールです。現在、クラスビューと定義の縮小を使用してコードを参照しています」と述べています。
すべてのコードを 1 つのアセンブリに入れます。展開とバージョン管理がより簡単になります。
ディレクトリ構造はネームスペース構造を反映しています。
各名前空間は独自のアセンブリを取得します。
各タイプは独自のアセンブリに入ります。(極端な例として記載しています。)
各タイプは独自のソース ファイルを取得します。
各メンバーは独自のファイルを取得します。各タイプは独自のディレクトリを取得します。(極端な例として記載しています。)
c - Cでのconst値の定義
すべてのコードが*.c
/*.h
ファイルのペアで編成されているCプロジェクトがあり、1つのファイルで定数値を定義する必要がありますが、他のファイルでも使用されます。この値をどのように宣言して定義する必要がありますか?
static const ...
それはファイルのようにすべき*.h
ですか?ファイルのようextern const ...
に、*.h
ファイルで定義されてい*.c
ますか?int
値がプリミティブデータ型( 、、double
など)ではなく、achar *
またはaであるかどうかは、どのように重要struct
ですか?(私の場合はですがdouble
。)
ファイル内のものを定義すること*.h
は、一般的には良い考えとは思えません。ファイルで物事を宣言する必要があり*.h
ますが、ファイルでそれらを定義し*.c
ます。ただし、extern const ...
コンパイラは値をインライン化できないため、このアプローチは非効率的であるように見えます。代わりに、常にそのアドレスを介してアクセスする必要があります。
この質問の本質は次のとおりです。複数の場所で値を使用するには、Cのファイルでstatic const ...
値を定義する必要がありますか?*.h
java - Swing アプリケーションでのアクションの編成?
私の現在のアプリケーションには、約 15 個のアクションが JFrame 内のフィールドとして格納されている JFrame があります。各アクションは匿名クラスであり、一部はかなり長いものです。
おそらくアクションと呼ばれるサブパッケージ内で、アクションを独自のクラスに分割することは一般的ですか?
そうでない場合、この複雑さは通常どのように緩和されているのでしょうか?
ありがとう
c++ - 多くの関数を1つのファイルに入れる必要がありますか?または、多かれ少なかれ、ファイルごとに1つの関数ですか?
私はコードを整理するのが大好きなので、理想的にはファイルごとに1つのクラスが必要です。メンバー以外の関数がある場合は、ファイルごとに1つの関数が必要です。
理由は次のとおりです。
コードを読むと、特定の関数またはクラスを見つける必要があるファイルが常にわかります。
ヘッダーファイルごとに1つのクラスまたは1つの非メンバー関数である場合
include
、ヘッダーファイルのときに混乱全体をインクルードすることはありません。関数に小さな変更を加えると、その関数だけを再コンパイルする必要があります。
ただし、すべてを多くのヘッダーと多くの実装ファイルに分割すると、コンパイルが大幅に遅くなる可能性があります。私のプロジェクトでは、ほとんどの関数が特定の数のテンプレート化された他のライブラリ関数にアクセスします。そのため、コードは実装ファイルごとに1回ずつ、何度もコンパイルされます。プロジェクト全体のコンパイルには、現在1台のマシンで45分ほどかかります。約50個のオブジェクトファイルがあり、それぞれが同じコンパイルコストの高いヘッダーを使用します。
たぶん、ヘッダーファイルごとに1つのクラス(または非メンバー関数)を持つことは許容されますが、次の例のように、これらの関数の多くまたはすべての実装を1つの実装ファイルに入れますか?
繰り返しになりますが、foo関数のみまたはbar関数のみを含めることができ、1つのファイルであるため、foobar.cpp
プロジェクト全体のコンパイルが高速になるという利点があります。テンプレート化された構造をコンパイルする)をコンパイルする必要があるのは1回だけですが、とを別々にコンパイルした場合は2回コンパイルする必要があります。もちろん、上記の私の理由(3)は、このシナリオには当てはまりません。foo(){...}を変更した後、大きな可能性のあるファイル全体を再コンパイルする必要があります。std::vector<int>
foo.cpp
bar.cpp
foobar.cpp
私はあなたの意見が何であるか興味があります!
version-control - すべてのコード、データ、スクリプト、タスクなどを整理するにはどうすればよいですか?
整理された状態を維持するために、「1人のチーム」にどのようなツールまたはアプローチをお勧めしますか?
私は多くのコーディングを含む研究を行っており、何百もの使い捨てのperlスクリプト、より良いアプローチが見つかるまで使用されるC ++バイナリ、さまざまな方法で前処理される大量のデータ、新しい前処理によって古い方法は廃止されました-古い方法の方が実際に優れていることがわかるまで、などです。多くのことを試さなければならないので、私の仕事は本質的に動く目標であり、多くの場合、完璧なものはありません。
完全に混沌とした状況ではありませんが、完璧にはほど遠いです。そのような状況であなたが推奨する一般的なアプローチはありますか?私はSVN
自分のコードに使用していますが、データのバージョンが大きくなりすぎるため、異なるバージョンには使用していません。すべてのスクリプトとバイナリを追跡するのは難しいので、私は常にそれらにコメントし、それらをどのように実行したかなどを書き留めます。しかし、いくつかの追加のアイデアがあるかどうか興味があります。
(私はLinuxシステムで作業しています。)
c++ - C++ ヘッダーの順序
ヘッダー/cppファイルでヘッダーを宣言する順序は? 明らかに、後続のヘッダーで必要とされるものはより早くする必要があり、クラス固有のヘッダーはヘッダー スコープではなく cpp スコープ内にある必要がありますが、設定された順序規則/ベスト プラクティスはありますか?
c++ - ヘッダー ファイルのみで C++ .lib をコンパイルしますか?
私は C++ スタティック ライブラリをコンパイルしています。すべてのクラスがテンプレート化されているため、クラスの定義と実装はすべてヘッダー ファイルにあります。その結果、(Visual Studio 2005 では) ライブラリに正しくコンパイルするために、他のすべてのヘッダー ファイルを含む .cpp ファイルを作成する必要があるようです。
どうしてこれなの?