2009-07-04 8 views
2

私はちょうどこのサイトの関連する質問リストを見ていて、それは私に考えさせてくれました。なぜそんなに深刻なの?

    私のパッケージにXYZを配備するか、他のパスへの参照を追加する必要がありますか?
  • 私のユニットテストを実行するには、どのようにnant/cruisecontrol/etc ..を設定しますか?私はXYZのセットアップ
  • などでユニットテストのための私の設定ファイルを維持する必要があり
  • ...今

、私は(.NETおよびVisual Studioを使用)を開発する場合、私は非常に特定のディレクトリ構造を選択してください:

  • DOC:すべてdocumetnation
  • libが含まれています。コンパイル依存関係
  • SRCが含まれています。すべてのプログラムソースと依存関係のソースが含まれています
  • など:プロジェクト
  • ビンに関連するその他のファイル:コンパイルされたプログラムの出力

一般的に言って、何かがそのディレクトリ構造内で実行することができないならば、私は単にそれをしません。これには、単体テスト、継続的な統合などが含まれます。同じように、私のプログラム全体はOSやネットワーク参照を除いてbinディレクトリから使い果たされます。私は自分のプログラムのルートディレクトリに存在しないファイルシステムに依存関係を導入することを拒否します。私は開発の本当にクールな面をいくつか見逃していると確信していますが、私はクルーズコントロールを試してみました。そして、正直言って、ナントを試しました。小さなプロジェクト(200以上の小さなプロジェクト(10-20)の大規模プロジェクトとは対照的に、これらのツールを使用する利点の一部よりもシンプルさが望ましいと正直言っていいでしょう。

私の質問は、私は単なるシンプトンですか、それとも、あるものは、必要以上に複雑であるようですか?この全体的な "デザインはすべてに合う"という考え方は、時には物事を成し遂げる方法のように思えます。

+1

申し訳ありませんが、私は本当にここに質問が表示されません。ちょうど暴言。 –

+3

私は彼が最後に質問をするのはかなり確信しています。直後、「私の質問はだと思います」 – UnhipGlint

+1

ヒント:「私の質問は...」の直後です プログラミングを簡単にすると思われるものがプログラミングの問題よりも複雑になる理由を理解しようとしています。私はおそらく何かが欠けていると信じていますが、それは何か分かりません。 – Chris

答えて

4

私は人々が物事をどのように複雑にすることができるかについてのあなたのポイントを見ます。しかし、考慮すべき点の1つは、「エクストラ」を使用することは、プログラミングを容易にするためのものではないということです。時々、彼らはある方法でそれをよりよくするために使用されます。これらの追加ツールを使用することで、他の何かのために簡単に取引できます。

たとえば、ユニットテストフレームワークを使用すると、プロジェクトが複雑になります。しかし、(理論的に)エラーのないコードを簡単に扱うことができます。

おそらく、開発者ごとに異なります。あなたのような人にとっては、シンプルさが最も重要であるようです。これにより、設定の問題解決のためのスピードと時間が短縮される可能性があります。しかし、他の誰かが、コードがしっかりしていると自信を持って感じるために、フレームワークを使って少し時間をかけて喜んで取引することができます。

+0

私はトレードオフがあるが、いくつかのことはまだ私をバグ。たとえば、log4netを取る。ロギングを追加する場合は、ライブラリを参照してコードをコードに追加する必要があります。すばらしいです。私はそれを受け入れる。しかし、プログラムのbinディレクトリにあるファイルにログを記録したいのであれば、これはかなり一般的なデフォルト設定のようです。なぜライブラリを作成したときに簡単にデフォルトにすることができるものを明示的に設定する必要があるのですか?たぶん私は、ライブラリ自体が合理的なデフォルト構成を含めるために余分な努力をしなければならないと思うかもしれません。 – Chris

+0

@Chris:デフォルトが選択された理由を調べるのはなぜですか?たぶんあなたは背景を知らないかもしれません。 –

0

200+小規模の製品1つの仕事の日はほぼ1年です。私は大規模なプロジェクトで人々が抱えている問題はあなたに当てはまるとは思わない。

私は好奇心が強いです。あなたが取り組んでいる小さなプロジェクトは何ですか?それは楽しいと思う。しかし、もし私が年に何度もやるべきことがたくさんあるのであれば、.NETではなくPythonを使うと思います。 IronPythonを使用している場合を除きます。:-)

+0

プロモーションの性質のプログラム。私がしていることの多くは、すでに構築したフレームワークとアプリケーションに基づいています。ありがたいことに、そのほとんどは既存のアプリケーションを複製し、それらを再利用することです。 – Chris

+0

「あなたはもっと手を伸ばしてください」 –

1

一般的に言えば、そのディレクトリ構造内で何かができない場合、私は単にそれをしません。これは、ユニットテスト、継続的インテグレーション、自分で作業していると仮定すると、数(10〜20)、大規模なプロジェクトとは対照的に、

小さなプロジェクト(200以上の小規模なプロジェクト年)

、あなたが含まれて大規模なプロジェクト(< 1人月)は、ほとんどのお店で「小規模」と小規模プロジェクト(1日)の「タスク」と呼ばれます。共同ストライク戦闘機や政府の情報システム向けのソフトウェアなど、大規模なプロジェクトは何百年もの人年です。私が取り組んできた小規模なプロジェクトのほとんどは2-6人月間で、中程度のものは1~4人年でした。

私の質問は、私は単なるシンプトンですか、あるいは、あるものが必要以上に複雑であるように思えますか?

特定のものは、あるプログラマーの月に作成できるものよりも複雑です。

統合されていない大量の作業があるシステムを構築する時間がないため、継続的な統合はおそらく1ヵ月未満のプロジェクトには役に立ちません。

ユニットのいくつかの部分が何をするのか、また複数の開発者が何かを忘れるほど大きくなった場合、単体テストは、システムの意図された機能的動作を曖昧ではない。

異なる展開のソフトウェアを構成していて、ソフトウェアに対する信頼度が高い場合は、システムレベルのテストで十分な場合があります。

関連する問題