Dbm
Dbmっぽいやつ。Ruby DBMのメソッド名からインタフェースを学ぶ
java.util.Propertiesは使いやすい?
JavaのPropertiesクラスは、標準でハッシュ形式のデータ保存を提供しています。標準で利用できるので環境依存を防ぐ事が出来ます。機能としては非常に便利です。ですが、
普段使っていますか?
ちょっと保存したいのに開発者が使わないのであれば、それは何か問題があるのではないかと感じます。
私はいろいろな言語に触れるのが好きなため、Ruby言語にも触れています。開発者が非常に使いやすいと評判だからです。Rubyで感じたのが、開発者への窓口であるメソッド名を直感的に理解できる構造です。
Rubyはインストールしてすぐにdbmというハッシュ形式のデータ保存が可能です。これのメソッド名をRubyを参考にJavaで実装してみました。単純なサンプルですがJava開発者が他の言語からプログラマへのインタフェースであるメソッドはどうあるべきか考える機会になればよいと思います。
ダウンロード
ダウンロードしてgz形式ファイルを展開した例です。junitライブラリがテスト用にあり、readme.shがコンパイルとテスト実行用にあります。またHelloWorld.javaがはじめにプログラミングを出来るように付属しています。
-bash-3.00$ wget http://www.oklab.org/dbm.tar.gz
--21:01:17-- http://www.oklab.org/dbm.tar.gz
=> `dbm.tar.gz'
Resolving www.oklab.org... 61.205.238.145
Connecting to www.oklab.org[61.205.238.145]:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 115,595 [application/x-gzip]
100%[==============================================>] 115,595 625.01K/s
21:01:18 (624.77 KB/s) - `dbm.tar.gz' saved [115595/115595]
-bash-3.00$ tar -zxvf dbm.tar.gz
dbm/
dbm/junit.jar
dbm/readme.sh
dbm/src/
dbm/src/dbm/
dbm/src/dbm/Dbm.java
dbm/src/dbm/DbmTest.java
dbm/src/dbm/HelloWorld.java
dbm/src/dbm/RandomUtility.java
コンパイルとテスト
readme.shを実行する事でコンパイルとテストの実行とHelloWorldプログラムの実行を行います。私の環境ではJava5を利用しているのでそれ以前のバージョンでコンパイルを行う場合はreadme.shの中身を参考にしてください。
-bash-3.00$ cd dbm
-bash-3.00$ ls
junit.jar readme.sh src
-bash-3.00$ sh readme.sh
usage: update_sharing 1.3 | 1.4 | 1.5
usage: update_sharing 1.3 | 1.4 | 1.5
...........................lap:1
.testStoress_01
1
407
879
1374
2169
2707
3072
3463
3887
4554
4941
5356
5735
6117
6502
7269
7722
8130
8487
8889
9296
9652
10054
10463
10815
11734
12086
12618
12970
13328
14004
14362
14715
15147
15506
15943
Time: 16.486
OK (28 tests)
usage: update_sharing 1.3 | 1.4 | 1.5
hello dbm world
使ってみる
HelloWorld.javaとDbmTest.javaがサンプルプログラムをするのに役立つと思います。
APIドキュメント生成
-bash-3.00$ javadoc -encoding utf-8 -docencoding shift_jis
-classpath junit.jar -d doc -source 1.4 -sourcepath src src/dbm/*.java
更新履歴
2006年4月10日 - DbmプログラムをJava5に対応させこの記事を記述。

