私は、北東部の大学に本部を置く学術コンソーシアムの唯一の開発者です。私の開発作業はすべて、主にJavaの内部ツールを使用しているため、一般に公開されるものはありません。今のところ、私の開発ワークフローは非常に「趣味」であり、経験豊富なソフトウェア開発会社で見られるようなものではないと感じています。とにかく私が唯一の開発者なので、それは実際には問題ではないと言いたくなりますが、私の仕事を少し簡単にしていくつかを得る以外の理由がなければ、いくつかの変更を加えることは害にはなりません私の履歴書にもっと多くの技術。現在、私のワークフローは次のようなものです。
私はほとんどの開発作業をラップトップのEclipseで行っています。すべてがラップトップにローカルに保存されており、VCSを使用していません。また、コードを実際にバックアップしていません(ただし、別のコンピューターで表示できるように、時々自分宛てにメールで送信する場合を除きます。開発環境について説明しました。作業が必要です)。
プロジェクトが完了してデプロイしたい場合、または単にテストしたい場合は、Eclipseに組み込まれているJarツールを使用して、プロジェクトの実行可能な.jarを作成します。外部の.jarライブラリを使用する場合は、Fat-Jarプラグインを使用して、実行可能ファイルの.jarにそれらの.jarを含めます。
.jarを作成した後、SFTP経由でサーバーに手動でアップロードし、.jarのようなものでテストします
java -jar MyProject.jar
。
そうそう、私はユニットテストをしないと言いましたか?
私が最初に修正したい最も明白な問題は、ソース管理の欠如です。gitは分散型であるため好きですが、Eclipseとうまく統合されていないようで、私の主要な開発OSであるWindowsではうまく機能しないと聞いています。ですから、私はある程度の経験があるSVNに傾倒しています。私は自分のパーソナルサーバーを持っていますが、大学の官僚機構に対処するよりも自分の管理者になりたいので、ソース管理にそれを使用すると思います。以前にSVNのセットアップに問題がありましたが、もう一度試してみます。たぶん、バグ追跡やToDoリストなどのためにTracやRedmineのようなものもインストールしますか?
構築と展開についてはどうですか?Fat-Jarを使用してjarをサーバーに手動でアップロードするよりも良い方法が必要です。AntやMavenのようなツールについて聞いたことがありますが、これらは私がやりたいことに当てはまりますか?どうすればそれらを使い始めることができますか?
最終的には、ユニットテストもJUnitと統合したいと思います。おそらくそうあるべきですが、これまでのところ私のアプリケーションはそれほど複雑ではないので、それは今のところ私の主な関心事ではありません。今すぐワークフローの簡素化と合理化に取り組みたいと思っています。それから、単体テストに簡単に取り掛かります。
長い質問でごめんなさい。私の質問は、唯一の開発者にとって、仕事を簡単にするだけでなく、専用の開発で必要な知識が期待されるいくつかのテクノロジーに自分自身をさらすために使用できるツールと方法論に要約されると思います家?
編集:これまでの素晴らしい答えをありがとう。ワークフローを「エンタープライズ」にするためだけにワークフローを作成することを提案するつもりはありませんでしたが、仕事を簡素化し、エンタープライズ開発環境で通常使用されるいくつかのテクノロジーを導入することを目的としています。それが私が意味するすべてです。