A Day In The Life

とあるプログラマの備忘録

java

DBテスト用基底クラス

DBテスト用基底クラスを作成したので紹介します。 /** * DBテストクラス用基底クラス * @author glass-_-onion * @history */ public abstract class BaseDatabaseTestCase extends DatabaseTestCase { private Log log = LogFactory.getLog( this.getClass(…

良いテストケースの作り方

最近、JUnitのサイトを見て色々勉強をしています。 シナリオベースのテストを紹介しているサイトを見つけました。 考え方はシンプルなんですがとても良い方法だと思いました。 通常はメソッド単位のテストが思いつきますが、クラスの性質によってはシナリオ…

リファクタリングを実践するには

パターン指向リファクタリング入門~ソフトウエア設計を改善する27の作法日経BP社このアイテムの詳細を見る デザインパターンを使って効率よくリファクタリングするにはどうすればいいのかって事に焦点を当てて書かれています。 パターン魔にならないようにど…

ユニットテスト

僕はテストが苦手です。 たまにバグが多いと指摘されることあります。 これではイカンということで最近ユニットテストをするようにしています。 もろリファクタリングの影響ですねw いきなりテスト駆動開発ってのは難しいのでDBUnitを使ってデータベース回…

.NETで四捨五入

Math.Roundメソッドを使うと四捨五入ができると思いきやできません。 .NETで四捨五入用のメソッドは今のところないようです(ていうかVB6の時からなかったような)。 Math.Roundメソッドはいったい何をしてくれているかというと近似値へのまるめを行ってくれま…

リファクタリングの入門書

プログラムの育てかた 現場で使えるリファクタリング入門ソフトバンククリエイティブこのアイテムの詳細を見るユニットテストについての入門書を探しているときに見つけました。 リファクタリングを実践するための入門書です。 この本を読んでJUnitを使った…

リファクタリングからはじめる良いプログラム

リファクタリング―プログラムの体質改善テクニックピアソンエデュケーションこのアイテムの詳細を見る 著者はあの有名なマーチン・ファウラー氏とケント・ベック氏です。 前置きが長くて退屈なところも多少ありますが、リファクタリングカタログの章まで進む…

logic:iterate

Strutsのiterateタグをネストして使うときのBeanの指定の仕方がわからなくて苦戦しました。 FormBeanの構成が public class HogeForm extends ActionForm { private String id = null; private List resultList = new ArrayList(); ...Getter Setterは省略 }…

ActionFormのresetメソッド

StrutsのActionFormにresetメソッドっていうのがあります。 今までこのメソッドは項目の初期化に使うんだと思っていたんですが、少し使い方が違うみたいです。実際に使う場合、 リセットが必要なプロパティはセッションスコープのフォームにあるチェックボッ…

わかりやすいデザインパターンの本

Java言語で学ぶデザインパターン入門ソフトバンククリエイティブこのアイテムの詳細を見る この本を読んでだいぶ勉強になりました。 デザインパターンだけでなくJavaについても勉強になるところが多かったです。 サンプルコードと説明がとてもわかりやすく楽…

ループ処理

ループの回し方っていろいろあります。 Javaをやり始めたころは、 for(int i = 0; i < list.size(); i++) { doSomething(list.get(i)); } と書いてました。 しかしArrayListはIteratorで回したほうが速いと聞き Iterator ite = list.iterator(); while(ite.h…

ディープコピーとシャローコピー

インスタンスの複製をする時、ディープコピーとシャローコピー2通りの方法があるようです。 オブジェクトの複写:http://www.asahi-net.or.jp/~dp8t-asm/java/tips/ObjectCopy.html ディープコピーをしないと複写元のデータを変更してしまう恐れがあるみたい…

文字列の比較

Javaで文字列を比較するとき String moji = "aaa"; if(moji == "aaa") { 何らかの処理... } と書いてしまいます。 もろVBからの癖です。Javaでは"=="を使うとオブジェクトの同一性を比較するため思ったように比較できないんです。 文字列の比較をするとき…

例外処理

最近例外処理でよくミスをするのでまとめてみます。 たとえば private void createFile() { try { 何らかの処理... } catch (IOException e) { throw new IOEception(e); } } と書くとエラーになります。正しくは private void createFile() throws IOExc…

Reflection

org.apache.commons.lang.builder.ReflectionToStringBuilderを使用しているクラスがあり気になったので調べました。 クラスのダンプを取るときに使うようです。 使い方はクラスのtoStringメソッドをオーバーライドして実装します。 public String toString(…

Strutsって結局何が出来るの?

Apache Strutsハンドブックソフトバンクパブリッシングこのアイテムの詳細を見る Struts1.1の内容がほぼすべて網羅されています。 Strutsって結局何が出来るの?って思っている方に最適です。 こんな機能を実装したいけどStrutsで出来るんだっけ?みたいな時…

カスタムタグ

ページ送りの続きです。 次へボタン、現在ページ、前へボタンのJSPをカスタムタグで実装することにしました。 ↑こんな感じのタグを作成。 カスタムタグと言えば一般的にTagSupportクラスを継承して、doStartTagメソッドをオーバーライドします。 public int …

ページ送り

Strutsでページ送り機能の実装をしています。 単純にワークテーブルを使って実装することにしました。 次へボタンと前へボタンの活性/非活性制御はbuttonタグのdisabledを使って制御しました。 <bean:define id="frm" name="actionFormName" type="jp.co.aaa.forms.ActionFormName" /> <html:submit value="Next" disabled="<%= frm.isDisabledNextButton() %>" /> といった感じです。 あとはActionFormでボタンの状態を受け取</html:submit></bean:define>…

NullPointerExceptionと遭遇

最近、NullPointerExceptionによく出会います。 String型の変数でNullチェックを怠っているからです。 VB.NETの時は.ToStringをするだけで簡単に空文字に変わってくれたのに...。 いちいちif文でNullかどうか書くのはめんどくさい。 なんかいいやり方ない…

チェックボックスの初期化

Strutsでチェックボックスのあるフォームを作成する時、チェックボックスの値が初期化されません。 なのでActionFormでリセットを明示的にかけてやらないといけません。 やり方は簡単。 ActionFormのresetメソッドでチェックボックス用の変数にFalseをセット…

Javaのルールブック

超図解 Javaルールブックエクスメディアこのアイテムの詳細を見る 今までVBでの開発しか経験のなかったので、Javaでのお作法がわかりませんでした。 過去に紹介したVB.NETルールブックは非常に役に立ったので今回も読むことにしました。 VB同様わかりやすく…

ハイバーネット

正しくはHibernateです。ハイバーネイトと読むようです。 どうも聞き間違えたみたいです。 O/Rマッピングフレームワークの名称です。 他にJDO、TorqueというO/Rマッピングのフレームワークが存在します。 今回使うかどうかはわかりませんが、O/Rマッピングに…

Log4J

Jakartaプロジェクトで開発が進められているJava用のログAPIらしいです。 今回はログ出力に使うようです。 どんな場面でログを吐くのかわかりませんが...。 TECHSCOREにいろいろ載ってます。ここで勉強しよう。

XDoc

XDocletのことらしい。 grandcircleさんのブログに書いてありました。 Strutsで大規模アプリの開発をすると「Struts設定ファイルの肥大化」「設定ファイルを複数メンバーで共有メンテナンスする」など問題が発生します。 そんな時、XDocletが役に立つらしい…

JMS

JMSは通称「MOM」(メッセージ指向ミドルウェア)と呼ばれるエンタープライズメッセージングシステムにアクセスするための標準APIです。つまり、メッセージングシステムそのものの実装ではなく、MOMのサービスを利用するためのJavaベースの標準インターフェ…

MBean

MBean は、管理対象 Bean、つまり管理されるリソースを表す Java オブジェクトです。 http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/management/overview.htmlMBeanでWeblogicのコネクションプールを再作成できるみたいです。

ActionとActionForm

Strutsの勉強をやっていますがいまいち理解が進まないです。 ということで今日はテックスコアというサイトで勉強することにしました。 説明がわかりやすかったので、Strutsの基本であるActionとActionFormはなんとなくわかるようになりました。 このサイトは…

J2EEの基礎から学ぶ

注文の多いJ2EE 料理店翔泳社このアイテムの詳細を見る J2EEの勉強といっても何から手をつけていいかわからなかったので、この本を買いました。 Weblogic8.1とOracle9iを前提に書かれているので次のプロジェクトにぴったりでした。 説明がわかりやすく、とて…

デザインパターンってどうよ。

Javaデザインパターン徹底攻略技術評論社このアイテムの詳細を見る オブジェクト指向がなんとなくわかるようになってくると、 デザインパターンの勉強がしたくなります。 デザパタの本は分厚くて大層な本がいっぱいです。 なんか敷居高いなぁと思っていまし…