2011年10月28日金曜日

JavaのServletでFirefoxのダウンロード再開機能に対応する方法

仕事で、ダウンロード途中にネットが切れたりした場合に、ダウンロード途中のファイルを、また1からダウンロードするのはしんどい、っていう要件があった。

しんどいだけじゃなくて、回線の都合で何回やってもダウンロード終わらないんだよねって。

そんなときに、Firefoxのダウンロード再開機能に対応できるように、サーバー側でコーディングすれば、ダウンロード途中にネットが切れても途中から再開してくれるらしい。

そのために、Servletでどのようなリクエスト、レスポンスの実装をすれば良いのか調べたので、メモしておく。


2011年9月25日日曜日

テスト駆動開発の良いところ

出向先でJavaベースのWebアプリケーション開発に関わらせてもらっている。

その開発で、特に誰から言われた訳でもないが、常にテスト駆動開発(TDD)を意識して取り組んでいる。

改めてTDDは良いものだなーと感じたので、良いと思ったポイントを挙げていきます。

1. 仕様をテストコードで説明できる

TDDでは、テストメソッドのメソッド名に日本語で名前をつけたりするのだが、
public void test_テーブルに値が追加できること()
public void test_テーブルから値が取得できること()
といった名前をつける。

テストしたいことは、名前の通りでテストメソッドの実装は、実際にテーブルに値を追加するための手順を書くことになる。

改めて良いなーと思ったポイントは、

仕様に対してどういう実装にしようか、この時点であまり深く考えていない状態だったとしても、まずテストコードという形で何かを書くということをすることで、とっかかりになる。

というところだった。

今までは、とりあえず手を動かす前にしっかりと今から実装しようとしている機能について考えて、ある程度設計してからコードを書いていた。
まあ今でもそうなのだが、TDDを改めて意識してみると、とりあえずテストコードに仕様を書いておくということで、コードを書き初めてから完了までが分かりやすく、すらすら進めれていいなーというところだった。