2009-03-01から1ヶ月間の記事一覧

基数のお勉強

基数とは桁上がりの基準となる数である。基数(radix)・2進数 0と1の2つの数で数字を表現する。 ・8進数 0〜7の8つの数で数字を表現する。 ・10進数 0〜9の9つの数で数字を表現する。 ・16進数 0〜9、A〜Fの16つの数、文字で数値を表現する。 …

○○Implの命名方法は悪!?

この前ケント・ベックさんの実装パターンという本を読んだんだけども。 ソースはコミュニケーションをとるように記述する必要があると述べていた。 その中で、○○Implのネーミングはひどいと言っている。 たしかに実装クラスとインターフェースで区別を付けた…

JavaのIntrospectorを使うときに気をつけること。

クラスの情報を取得する際にIntrospectorのgetBeanInfoを使うと思うのだけど、 その際、気をつけないといけないことがある。 PropertyDescriptorクラスはプロパティ情報を格納している。その中にプロパティに対するgetterやsetter情報も格納しているのだけど…

JavaのUTF-8におけるデコード処理の脆弱性を検証してみた。

情報源はこちら。http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2008-5351http://sunsolve.sun.com/search/document.do?assetkey=1-66-245246-1http://www.unicode.org/versions/corrigendum1.html 問題は、Unicodeに準拠していないバイト配列でも中途…

GCとURLClassLoaderの問題

対象サーバーOSがWindowsのときに発生。 WarとかのアプリをTomcatとかのサーバーで起動中にMXBean使用したりして デプロイしたりアンデプロイすることがよくある。 このときに、対象リソースがURLClassLoaderで読み込まれていた場合(※通常それで読み込んで…

そろそろログイン画面、ログイン機構の標準仕様を決める必要があると思う!

世の中に沢山のWebアプリケーションが生み出されてきたけども、 そろそろエンタープライズアプリケーション統合に関して積極的に考える必要があると思う。 その中でまず対応が必要なのが、ログイン画面、それぞれのWebアプリケーションでログイン画面がある…

枯れさせるとは?

ソフトウェアのプロダクトを枯れさせるとはプロダクトの機能変更・追加が凍結された上で ・ドキュメントの充実 ・サンプルコードの充実 ・Tipsの充実 ・トラブルシューティングの充実 ・サポート期間の明示 上記、情報をたくさん提供していく必要があると思…

JBoss関連のバージョン規約はちょっと変わってる?

JBoss関連のプロダクトバージョンのつけ方 CRの記載がTYPOなのか大真面目なのか気になって調べてみた。 バージョン 説明 X.Y.ZZ.SNAPSHOT スナップショット、開発途中のバージョン X.Y.ZZ.Alpha 基本機能と基本テストを実施したバージョン X.Y.ZZ.Beta バグ…

え?IBMがSun買収?

IBMがSunを買収しようとしているって? 米IBM、サン・マイクロシステムズ買収で交渉=報道3月18日17時23分配信 ロイター [18日 ロイター] 18日付の米ウォールストリート・ジャーナル(WSJ)紙は、関係筋の話として、IBMがサン・マイクロシス…

PMが知っていたほうが良いこと

とりあえず、プロジェクトマネージャになりたいならこれらを勉強するといいみたいだ。1 プロジェクトの計画立案 ・プロジェクトの目標・制約条件と運営方針の策定 ・工程計画 ・品質計画 ・予算の策定と実行計画 ・資源・工数・要員などの計画 ・調達計画 …

JSR303 Proposed Final Draftフェーズ突入!

そろそろJSR303がProposed Final Draftフェーズに入るみたいです。http://jcp.org/en/jsr/detail?id=303 EJB3.1はもうすでにProposed Final Draftフェーズみたいです。http://jcp.org/en/jsr/detail?id=318

アノテーション指向プログラミングの苦悩

現在のJava界隈の主流な流れとしてアノテーションベースのプログラミングがあげられる。 これはCoC(Convention Over Configration)プログラミングの問題点を回避したいという意図も含まれる。 CoCの主な問題点は以下のとおり。 ・タイピングミスによる静的…

Getting started with JSR 303 (Bean Validation) – part 4

今回はバリデーションの使いどころを説明します。 バリデーションはアプリケーションにおいてI/Oが発生する場合は必須と言って いいほどの処理です。 バリデーションはある条件にもとづき、値の是非を検証します。その是非を検証するための条件は大きく2種…

Getting started with JSR 303 (Bean Validation) – part 3

Default message interpolationデフォルトメッセージ補完の説明をします。 バリデーションアノテーションはmessageプロパティが必須です。 そのmessageプロパティにセットされたトークンが補完対象のメッセージとなります。 補完対象のトークンは"{}"で囲ま…

Getting started with JSR 303 (Bean Validation) – part 2

Creating custom constraint annotationsカスタムバリデーション用アノテーションの作成を説明します。 まず、カスタムのアノテーションを定義します。 アノテーションには以下のアノテーションを付加する必要があります。・@Target( { METHOD, FIELD, ANNOT…

Getting started with JSR 303 (Bean Validation) – part 1

Using Bean Validation with Spring(Springで利用する場合) 標準の使い方はValidation APIより デフォルトバリデーションファクトリを生成します。次にファクトリよりバリデーションを取得します。 ValidatorFactory factory = Validation.buildDefaultVal…

●Comparisons for Enums(未確定)

http://j2eeblogger.blogspot.com/2008/04/typesafe-enum-and-equals.htmlEnumで単純に比較演算子が使用できるようになるというものです。 こちらもJava7に導入されるかは未定で、現在、検討中のようです。■使用例 //こう書く必要があったのが if(comp1.ordi…

●Strings in switch statements(未確定)

http://yost.com/computers/java/string-switch/index.htmlSwitch文でStringが使用できるようになるというものです。 こちらはJava7に導入されるかは未定で、現在、検討中のようです。■使用例 String pattern = "A"; switch (pattern) { case "A": return "A…

●Null-Dereference Expression

Nullチェックの方法が簡潔に記述できるようになります。http://docs.google.com/View?docid=dfn5297z_19pnsjkfc6 http://www.slideshare.net/Stephan.Schmidt/better-strategies-for-null-handling-in-java句、節の最後に"?"で記述します。Groovyの表記を真…

●Safe Rethrown

エラーキャッチ後の再Throwに対してコンパイラが オプティマイズThrowするようになります。 http://www.javac.info/Rethrown.html http://blue64.net/2008/06/proposed-java-7-feature-safe-rethrow/ ■使用例 void test() throws RuntimeException { try { }…

●Multicatch

エラー処理がスマートに記述できるようになります。 http://docs.google.com/Doc?id=ddb3zt39_76dtz7bsg2&hl=en http://www.javac.info/Multicatch.html 複数の例外をバーティカルバー "|" でつないで記述します。■使用例 try { return clazz.newInstance();…

●Type inference

型推論が拡張されます。 当初は"<>"の表記ではなく""の表記が提案されていたようです。■使用例 //このように書くと Map<String, Integer> map =new HashMap<>(); //このように解釈されます。 Map<String, Integer> map =new HashMap<String, Integer>();</string,></string,></string,>

●JSR 308 Annotations on Java Types

2009年2月27日公開の分です。 http://groups.csail.mit.edu/pag/javari/java-annotation-design.pdfまず、クラスファイルのアノテーションの構造体が拡張されます。 同様にローカル変数も構造体拡張がほどこされます。 その他、戻り値の型、変数、クラス、メ…

Java7の言語拡張について調べてみた。

Java7の言語拡張について調べてみました。 Java7に入るだろう拡張