2012-01-01から1年間の記事一覧

保守とTrunkと継続的インテグレーション

システムの保守の現場では、保守案件(機能追加や障害対応)ごとにBranchを作成するいわゆるFeature Branchを活用した運用をよく見かけます。しかし、継続的インテグレーションのことを考えると、この運用は好ましくありません。継続的インテグレーションとは…

WebアプリケーションでSpring Integrationを使用する場合のスレッド

今回のブログは、Spring Framework Advent Calendar 2012の20日目の記事として投稿します。前回のブログで、WebアプリケーションでSpring Integrationを使用すると、Spring Integrationが生成するスレッドをAPサーバが管理できないので危険だというお話をし…

Spring Integrationの概要

今回のブログは、Spring Framework Advent Calendar 2012の13日目の記事として投稿します。前回のブログでSpring Integrationを話題にしたので、今回は、Spring Integrationの概要と、どのようなコーディングになるかを紹介したいと思います。ただ、独自の解…

Spring IntegrationとMuleの棲み分け

今回のブログは、Spring Framework Advent Calendar 2012の6日目の記事として投稿します。Springに関係する内容として何を書こうか考えたところ、最近、私の周りでよく話題になるSpring IntegrationとMuleについて、妄想レベルですが、書きたいと思います。S…

Artifact Repository周りの作業の自動化

前回のブログでArtifact Repositoryの概要を記載しました。今回は、CI(継続的ビルト)ツールと連携して、Artifact Repository周りの作業を自動化したフローの例を紹介します。CIツールはJenkins、Artifact RepositoryはNexus(開発元はSonatype)、ビルドツール…

Artifact Repository

リリースの流れに沿って複数の環境(テスト環境・本番環境など)にバイナリ(Javaの場合はjarやwarなど)をデプロイする場合は、環境ごとにバイナリをビルドするのではなく、1度ビルドして生成したバイナリを各環境で使用する方が良いと思います。環境ごとにビル…

Vagrantを利用したローカルPCの環境整備

テスト環境や本番環境と比べ、開発者のローカルPCのサーバ環境(APサーバ、DBサーバ、メッセージングサーバなど)は開発者個人の裁量で構築することが多く、十分に整備されてない傾向があります(例えば、データベースにオラクルを利用する場合、ローカルPCにオ…

システム自動管理ツールとSCMの活用(前回の続き)

前回のブログでは、システム自動管理ツールとSCMを利用して、環境設定のバージョン管理が行えることを紹介しました。今回は、任意の環境(開発・テスト・本番など)を、任意のバージョンに更新するときの作業(例えば、開発環境をバージョン2にするなど)の自動…

システム自動管理ツールとSCMの活用

障害対応や機能追加でシステムの改修を行った後は、開発環境・テスト環境などで動作を確認した後に本番環境に反映するのが一般的です。このとき、アプリケーションの変更は、ビルドとデプロイの方法が定型的なので、環境によって反映が漏れることは少ないで…

既存システムに対してテストコードを書く(2/2)

前回のブログでは、既存システムに後付でテストコードを書くときにJMockItが有用なことを紹介しました。今回のブログでは、Brettという人が書いたModern Mocking Tools and Black Magicの記事(以下、「Brettさんの記事」と呼びます)を参考にしながら、JMockI…

既存システムに対してテストコードを書く(1/2)

JUnitを始めとするテストツールが充実した現在も、運用・保守の現場では、テストコードが存在しないJavaの既存システムを目にすることがあります。このようなシステムに対して、後付でテストコードを書こうとすると、大抵は以下の問題に突き当たって、モック…

要求レベルのテストの自動化

ユーザーの要求が満たされてることをテストときは、要求を元に開発者やテスターがテスト項目を作成し、画面を操作しながら挙動を目視で確認するのが一般的だと思います。しかし、この方法だと、要求とテスト項目を紐づける手間がかかったり、テストが手動な…