-
documentsディレクトリ
- Apacheの設定ファイルやContext.xmlなど。他にも表定義とか要件定義とか置く予定。
-
srcディレクトリ
- main
- java
- ここにJavaのソースを配置する。このディレクトリ直下に自分たちのパッケージをつくってクラスをつくって・・・という感じ。
- resources
- ここにpropertiesファイルなどを置きます。
- webapp
- ここにはWEB-INFやjsファイル、CSSファイル配置。デザイン班の領域。
- java
- test
- java
- 未定ですが、JUnitを使ったテストクラスをここに配置します。
- resources
- テストで使うテストデータなどを置きます。
- java
- main
-
target
- コンパイルされたものが格納されるディレクトリです。基本的にいじる必要はありません
-
pom.xml
- 依存関係定義ファイルです。Javaのバージョンや必要なjarファイルなどが書かれています。勝手にいじらないように!
-
README.md
- 読んで字のごとくというか、このファイルです。
-
Vagrantfile
- ローカルに仮想環境を立ち上げるためのファイルです。本番環境がLinuxのため、ローカル段階からLinuxを使っていきます。その際、TomcatインストールとかApacheのインストールと設定とかMySQLのインストールとかその他いろいろ面倒なことを全部自動でやってくれるように設定しています。
- OS
- 開発環境: Windows10
- 本番環境: CentOS6mM
- 使用言語およびフレームワーク
- Java7
- HTML5
- CSS3
- JavaScript
- 使用フレームワーク
- BootStrap3
- JUnit
- DbUnit?
- ミドルソフトウェア
- tomcat7
- Apache
- データベース
- MySQL
下準備
1. TeraNaviリモートリポジトリをGitHub上でフォーク(自分のリモートにコピー)※最初だけ
2. ローカルにクローン(自分のリモートから自分のローカルにコピー)※最初だけ
開発サイクル
1. 他の人の変更がマスターにあるかもしれないので、それを自分のマスターに反映させる(GitHub DeskTopならupdate from ~)
2. 自分のする作業に合わせた名前でブランチを切る(ブランチとはパラレルワールドみたいなものです)
3. コーディング ※この部分の流れについては後述します
4. 作業が終わったら、自分のリモートと同期してから自分の作業をプルリクエストで送る
5. レビューを受け、修正があった場合はそれを自分のローカルで直して、もう一度プルリク。
6. 1.に戻る
1. テストから書く(実装するクラスのメソッド1つに対して)
2. テストを実行。(失敗させる)
3. テストを成功させるための最低限のシンプルな実装をする
4. テストを実行(成功させる)
テストクラスを書くのにはJUnitというテスト用のフレームワークを使います。
使用するフレームワーク
JUnit
JUnitの基本ルール
1. クラス名は必ず「テストしたいクラス名+Test」で書き、publicで作成
2. テストメソッドは、org.junit.Testアノテーションを付与したpublicメソッドとする
3. テストメソッドは、戻り値がvoidであり、引数を持たない。
4. throws句は自由に定義可能
テストメソッド内の処理
1. 初期化・・・テスト対象オブジェクトの初期化、必要な入力値、期待される結果などを準備
2. 実行・・・テスト対象のメソッドを1つだけ実行
3. 検証・・・テストの結果として得られた実測値が期待値と等価であるかを検証
4. 終了処理(必要な場合)・・・次のテストに影響が内容に後始末
ひとまず基本的なことだけ書いておきます。必要に応じて追記する予定です。
最初にVagrantとVirtualBoxをインストールしてください
- Vagrant ダウンロードはこちら
- VirtualBox version5.0.10 r104061 ダウンロードはこちら
Vagrantは仮想環境の構築と開発・テスト環境の構築をまとめておこなってくれるツールです。(VirtualBoxを内部的に使っています)
・仮想環境を立ち上げる→vagrant up --provision
・仮想環境のいろいろな設定をやりなおす→vagrant provision
・仮想環境を停止する→vagrant halt
・仮想環境をぶっ壊す→vagrant destroy ※なお、もう一回vagrant upすればきれいな環境をつくってくれます。
Mavenはライブラリ同士の依存関係を勝手に解決してよしなにしてくれるやつです。 あとテストを走らせたり、コンパイルしたものをまとめてアプリケーションとして配備できるようにパッケージしてくれたりもします。
・TeraNaviディレクトリにcdします。
・コンパイルする→mvn compile
・テストを走らせる→ mvn test
・targetをキレイにしてからパッケージにまとめる→mvn clean package
分散型バージョン管理システムです。何が分散してるかというとリポジトリが、です。
・ローカルリポジトリへのコミットはこまめに。
・コミットメッセージはちゃんと具体的に。何を変更したのかわかるように
・自分のリポジトリに他の人のプッシュをこまめに反映させよう
・自分の作業に合わせたブランチ名をつけてから作業を始めよう
・メインリポジトリにpushできないときはまずローカルにメインの変更を反映させて、競合を解決してからマージしよう。
・なんかエラーはいてる→open Git shell→git status