5

私の C プロジェクトには、かなり大きな utils.c ファイルがあります。それは本当にさまざまな種類の多くのユーティリティでいっぱいです. そこにいろいろな機能を詰め込むだけでちょっとエッチな気分になります。たとえば、lowercase() 関数などの低レベルのものに関連するいくつかのユーティリティがあり、さまざまなカラー フォーマットとの間の変換などの非常に洗練されたユーティリティもいくつかあります。

私の質問は、さまざまな種類のユーティリティが含まれるこのような大きな utils.c を使用するのは非常に悪いことですか? さまざまな種類のユーティリティ ファイルに分割する必要がありますか? graphics_utils.c などどう思いますか?

4

9 に答える 9

9

カテゴリ (グラフィックス、文字列など) に基づいてファイルを個別のファイルに分割すると、編成が改善され、1 つの大きなファイルではなく小さなファイルを使用して、特定のコードを簡単に見つけることができます。

于 2009-08-18T03:27:45.110 に答える
7

組織的な理由だけでなく、このファイルに依存する他の多くのファイルが必要になるため、分割する必要があります。すべてがこのファイルに依存するため、この 1 つのファイルを変更するのが難しくなります。

http://ifacethoughts.net/2006/04/15/stable-dependencies-principle/

于 2009-08-18T03:50:23.010 に答える
6

ものを維持するのがあなただけである場合、それは複雑さがいつあなたが物事を探していることに気付くかの問題です. それは、リファクタリングと再編成を行うときです (再編成しないとコストがかかるのと同じように、再編成するにはコストがかかります)。

他の誰かがあなたのユーティリティを含むプロジェクトを維持する可能性がある場合は、いつ再編成するかを決定する際に彼らの問題点を考慮する必要があります。彼らのものはあなたのものよりもはるかに低いです。

于 2009-08-18T03:37:16.467 に答える
6

あなたが言うように(graphics_utils)、適切になると、それらをさまざまなサブユーティリティに分割する傾向があります。

于 2009-08-18T03:25:27.987 に答える
3

それを壊します。ものを見つけやすく、再利用しやすく、リファクタリングしやすく、単体テストをしやすくなります。最近、ISO-8601 の日付処理メソッドのセットを静的メソッドの膨大な Java ユーティリティ クラスから取得する必要がありましたが、必要なコードの 5% を見つけるのは非常に困難でした。

于 2009-08-18T03:30:26.620 に答える
2

別のポイント: コードを整理する必要があります。つまり、コードを小さなモジュールに分割して分類する必要があります。ある時点で、同じことに対して 2 番目と 3 番目の関数を作成することになるためです。そこにあることは知っていたが、その名前を覚えていない関数。

私はそのようなモジュールを含む(かなり大きな)プロジェクトを持っており、(同じことのために)最大5〜6の実装があるプログラミングロジックがあります。

于 2010-03-24T16:30:18.790 に答える
2

ファイルを個別に分割することによるもう 1 つの利点は、ファイルをソース管理下に置くと、よりきめ細かい管理ができることです。これは、頻繁に調整/拡張/特殊化されるビットと、比較的安定している他のビットがある場合に非常に役立ちます。

于 2010-03-24T16:07:14.317 に答える
2

あなたのコードを次にやってくる人は、どこで何かを探すべきかわからないので、それは間違いなくコーシャではありません. 機能別に分類すると、同僚から感謝されるでしょう。

于 2009-08-18T03:29:01.660 に答える
0

他のみんなと同じように、私は彼らを解散させます。しかし、私は現在、拡張メソッドを使用する傾向があるため、拡張されるクラスごとに 1 つのクラス (および 1 つのファイル) を使用します (例:StringExtensionsなどSqlDataReaderExtensions)。これにより、ユーティリティメソッドがうまく分割される傾向があることがわかりました。

于 2009-08-18T03:36:10.153 に答える