プロジェクトを引き渡す準備をするときに知っておくべきことは何ですか?


10

私は現在、かなり大きなWebアプリケーション(ASP.NET MVCスタック、約15万行以上のコード)の唯一の開発者/アーキテクトであり、開発の終わりが近づいています。そのため、プロジェクトを引き継ぐために何をする必要があるかについて考え始めており、将来プロジェクトを維持する必要がある人のために正しいことを確実にしたいと考えています。

プロジェクトを別の開発者またはメンテナンスの開発者チームに引き渡す準備をするときに知っておくべきことは何ですか?

回答:


12

私見、プロジェクトを(直接または間接的に)引き渡す前に1つのことしかできなかった場合は、ソース管理からそのままコンパイルできることをダブルおよびトリプルチェックすることをお勧めします。

笑いませんが、ソースコントロールから「最新」になってコンパイルできなかった回数はわかりませんが、後でコードが「唯一のフレッドの古い箱」にいないことを確認しただけで、フレッドの古い箱でコンパイルします。」私は以前の雇用主に、自分のキューブからデスクトップをすぐに削除して、それを「フレッドの古い箱」に置き換えるように頼んで、私が想定していたプロジェクトに取り組むことができました。

上記の推奨事項の延長として、アプリケーションをコンパイルするために最新の情報が必要でない場合があるため、README.txtを作成してアプリケーションのルートディレクトリに配置し、ソース管理に配置することをお勧めします。このREADMEドキュメントには、ソース管理(存在する場合)にチェックインできなかった外部依存関係のリスト、データベースのセットアップ方法、およびアプリケーションのコンパイル、実行、またはデプロイメントサイクルに関するその他の異常が含まれている必要があります。

上記の2つの提案を超えるものはすべて肉汁を含んでいますが、「Hello World」よりも大きなプロジェクトでは、上記の2つがほぼ必要です。

編集:

ドキュメントのトピックについて...

私は長年にわたって、開発者の移行を容易にするために、ソフトウェアドキュメントの公正な共有を書いたり読んだりしてきました。私はそのような文書がそれらが印刷される紙の価値があることはめったにないと思います。開発者(私も含む)は、そのようなドキュメントを書いている間、アプリケーションの重要な部分についてはめったに考えません。これらのドキュメントはソフトウェアのすべての重要な側面をカバーしない傾向があるという事実に加えて、それらはまた非常に古くなります。ドキュメントが古くなると、将来の開発者は現実に一致するように戻すのではなく、完全に無視することになります(要件の変化を考えてください)。

ドキュメントそのものではなく、単体テストをお勧めします。この時点ではおそらく古く聞こえるかもしれませんが、コードに文書化を任せてください。壊れた単体テストは、Word文書よりも無視するのが難しく(見つけやすく)なります。さらに、ソフトウェア設計の細かい点を明確にするための英語は非常に不正確です。最も単純な英語の文の意味を解釈する方法が多すぎて、混乱やバグにつながります。


1
READMEファイルの+1。この時点でプロジェクトには実際に2つあります。1つは一般的な「これは私がこの概念を書いたときに私が考えていたものです」ともう1つは、すべての外部依存関係と適切なjQueryプラグインをリストするだけです。私がそれらをどこから手に入れたのかという行とともに。コンパイルは間違いなく私がもう一度チェックする必要があるものです。
rjzii 2010年

@Rob、コードがクリーンな環境でコンパイルできるかどうかを判断しようとする場合、VMはしばしば良いアイデアです。WindowsとVisual Studioのクリーンインストールを実行し、readmeファイルに記載されている項目のみをインストールします。コードがコンパイルされて実行されると、準備は完了です。
Jason Whitehorn、

ドキュメンテーションを忘れないでください!
Moshe

@Jason-ほぼ同じ状況(Parallels Desktopを備えた2つの開発マシン)でしばらく前にそれを行うことができましたが、それ以降、いくつかの新しいライブラリがプロジェクトに組み込まれました。
rjzii

1
@Moshe-ドキュメントは、私が実際に最も心配している部分です。見つけたい方法でコードを記述しましたが、コードと基本的なreadmeドキュメントを補足するために追加でどのドキュメントを記述する必要があるのか​​わかりません。
rjzii

1

これが、コメントがコードの匂いではない理由です。これは、コードを文書化する必要がある理由でもあります。

確実なドキュメントがあることを確認してください。コメントの形式とプログラミング言語に応じて、コメントからドキュメントを生成できるプログラムがあります。

ライブラリまたはコードベースを引き継ぐときに、どのような情報が必要かを検討してください。プログラマーである友人に簡単に見てもらい、明らかな質問がないかどうかを確認してもらいます。

幸運を!


1

1つのコマンド/クリックだけで、コードが最終的なフォームでコンパイルおよびパッケージ化されていることを確認してください。

回答に賛成投票できません。プロジェクトを引き渡す準備をするときに知っておくべきことは何ですか?十分なので、これをもう一度書き留める必要があります。

私はこのワンクリックコンパイルについて非常に細心の注意を払っています。プロジェクトを実際にコンパイルまたはパッケージ化する方法を考え出すのに多くの時間を費やしたので、小さなバグを1つ修正するだけで済みました。プロジェクトに小さなバッチ/ bashスクリプトを入れて、最終的なZIP、JAR、またはEARをパッケージ化し始めました。

それに加えて、ルートディレクトリにREADME.txt追加します。このディレクトリには、全体的な設計、複雑なパーツ、およびプロジェクト環境(他の部門または個人とのコミュニケーションに関して)が記述されています。

私がしようと、このREADME.txtの小さなを保つあなたがしたいすべてが修正バグ、コンパイルがあり、それをパッケージ化した場合、誰もが仕様書の200本の+ページを読まないので、。実装の詳細は単体テスト文書化されているので、本に書き直す必要はありません...


0

私のデフォルトのハンドオフチェックリスト:

  1. VCSからクリーンコピーをチェックアウトする
  2. テストビルド、テスト展開
  3. Mavenリポジトリの名前をrepo-backupに変更します。
  4. もう一度テストビルド
  5. zipからアプリサーバーの新しいコピーをインストールします
  6. サーバー設定のメモを確認する
  7. 再度テスト導入
  8. 単体テストが無効になっていないことを確認します
  9. コメントをスキャンして4文字の単語を探し、削除する

何かが壊れている場合は、引き渡す前に修正します。プロジェクトをチェックアウトし、ビルドし、プロジェクトを取得したその日に実行することで、誰かが実行を開始することはありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.