2010-11-26 5 views
3

私は大規模で挑戦的なC++プロジェクトを計画しています.1つ目のリリースには6〜18か月かかるでしょう。私が時間の大部分をこれに投資して、まずそれを詳細に計画するのは意味があります。大きな新しい個人プロジェクトを設計/計画する際に役立つソフトウェアは何ですか?

しかし、私もそれに取り組んでいるので、通常は滝設計ツールの泥棒は、時間節約者よりも時間がかかりやすいでしょう。私のようなソロプロジェクトで働くのは、紙や鉛筆よりも先進的なソフトウェアがあれば、私にとって最も役に立つだろうか?

私はこの質問が幾分主観的であることを知っていますが、私は誰のためにも具体的な答えがない質問に対して民主的な答えを得るために、同意。

+5

あなたが信頼できる唯一のツールは、あなたの耳の間のものです。あなたがそれを十分に信用しないなら、あなたはQ + Aサイトでより良いものを見つけるつもりはありません。 –

+0

これらの種類の質問はおそらく[プログラマのスタックエクスチェンジ](http://programmers.stackexchange.com/)でよく聞かれます。 – fredoverflow

+1

最初のリリースまで6〜18か月がかかるため、作業を分割して、一度に1つずつ作業してください。また、いくつかのプロトタイピングでは、あなたが正しい方向に進んでいることを確認し、そうでないと気づいたときに3か月の作業をウィンドウでスローする必要がないことを確認することができます。 –

答えて

6

私自身で開発を行うときは、できるだけシンプルにしておきますが、それに何らかの構造が残っています。

私はジョエルテストのツール部分は、最も重要なものをキャッチすることを考える:

  1. あなたは、ソースコントロールを使用していますか?
  2. ビルドを1ステップで行うことはできますか?
  3. バグデータベースはありますか?
  4. 新しいコードを書く前にバグを修正しますか?

その後、私は私自身のいくつかを追加したい:

  1. 使用自動テストと可能な限りテスト駆動開発などを。
  2. 必要に応じてリファクタリングし、構造物を清潔に保ちます。
  3. ドキュメントを書くと、コードを見たり、関数コードのいくつかのレベルをフォローしたりするよりも、記述を読む方がはるかに高速です。私はしばしばdoxygenを使います。

あなただけであっても、間違いなくソースコントロールが必要です。変更されたときや変更されたときを追跡できることは、バグ修正の際に非常に貴重です。ビルド環境での投資時間は通常それに値する。あなたはこれをたくさん作ります。私は頭の中のバグを追跡することができません。

この基本構造がないと、必要なときにリファクタリングを実行できません。どのようにデザインを操作するかにかかわらず、初めて良品にならなかった部品をリファクタリングすることは、良いデザインを維持するための鍵です。リファクタリングに慣れていたら、あまりにも多くのステップを先に考える必要はなく、今すぐ動作するものを実行し、さらに機能を追加する必要があるときにリファクタリングすることができます。

+0

+1は、バグ修正の間にソース管理の貴重な使用に言及しています。 –

+0

そして、doxygenについて言及すると+1しても、(注釈よりも時間が浪費される)コード内のコメントがなくても、階層とコラボレーションの図は概要を示すのに本当に素晴らしいです。 –

0

ソフトウェアの入手方法について考えてみましょう。だから、建築設計について何をやろうとしているのか、そしてそのアーキテクチャを機能性でいっぱいに掘り下げていく方法について考えてみましょう。これらのことを理解したら、使用する必要のあるソフトウェアツールは自明でなければなりません。

ソフトウェアにプロセスを駆動させないでください。プロセスはソフトウェアを駆動するはずです。

1

ソロプロジェクトの場合、最良のアプローチは、回帰テストが自動化/無痛化されるように要件が堅牢な場所でテスト駆動開発を行い、コーディング時に仮定を正式化するためにアサーションを有効にします。

起動時にテストがセルフテストとして実行されると、問題が非常に迅速かつ効率的に強調表示されます。私は様々なプログラミング言語のインタプリタを書くときにこのアプローチをうまく使いました。あなたの走行距離は、アプリケーションによって異なる場合があります。

ソロプロジェクト用のテスト駆動型開発では、ソース管理はほとんど廃止されています。あなたのテストが十分であれば、彼らは十分に要件をモデル化します。新しい機能を追加する前にバグやテストを修正すると、プロジェクトは未解決の問題がほとんどなく、要件を満たします。

0

大きなプロジェクトは、常に機能する小さなプロジェクトとして始まります。 Hello Worldを使い、バグの削除と機能の追加を続けてください。何かが吸い始めると、その時点でリファクタリングするのに十分なことが分かります。

関連する問題