[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends-ml 10794] More Java Pitfalls を読 む会第 4 回 議事録



宮本@muimiです。

第4回の議事録です。
各itemごとの簡単な要約をつけてみました。
修正、追加等あったら、おねがいします。
一部宿題もあるです。



"More Java Pitfalls"を読む会 第3回議事録
日時:9月20日(土) 10:00〜17:00
場所:目黒区東山住区センター 第3会議室
参加者(敬称略):

  高橋(徹) 金井
  □□□□□□□□
宮本□      □村上
  □      □
  □      □村山
  □      □
  □□□□□□□□
高橋(智) 布留川 中村

自己紹介:簡単な近況報告
書記:宮本
読み手:各自が予習を担当したItemNoの日本語訳orポイントを紹介


=============================================
Item18 Effective String Tokenizing (高橋(智))
=============================================
[要約]
StringTokenizerクラスのコンストラクタに渡すデミリタ(区切り文字)は、「文
字列でなく、文字の集合」である。これが直感的に間違いやすく落とし穴となる。
書籍では、文字列分割のユーティリティが紹介されている。


P140
・「Token」は何と訳そう?
 →トークン

P142
・「junior developer」は何と訳すか
 →初級ディベロッパー


P144
・pre-Collectionって?
 →コレクション以前の

・実装は正規表現でもできます
・JavaCCの話題


=============================================
Item19 JLayered Pane Pitfalls (宮本)
=============================================
[要約]
JLayeredPaneクラスにはデフォルトのLayoutManagerがなく、サイズや位置は指
定する必要がある。このことを知らずに、JFrameやJPaneと同じように使えると
思ってしまうと、落とし穴となる。


P146
・XULって?
 →MozilaのXMLでUI定義で使われていたような?

・portedは何と訳す?
 →移植

・fixは何と訳す
 →修正



=============================================
Item20 When File.renamtTo() Won't (村山)
=============================================
[要約]
java.ioパッケージは、JDK1.0以降、何度かオーバーホールが行われ、クラスの
名前、役割が適切でないものもあり、その利用法が落とし穴となる。ここでは、
java.ioおよびnioパッケージ中のトラブルとなりやすいクラスについて列挙、コ
メントし、またFile.renameTo()の問題について述べている。


P155
・renameTo()呼んだ後、そのままFileを使えません
 Fileクラスは、役割的にはFileNameという名前の方が適当

・Solaris上では動かないのバグとは?
 →※宿題


=============================================
Item21 Use Iteration over Enumeration (村上)
=============================================
[要約]
IteratorとEnumerationは同じような機能だが、微妙に差異がある。Enumeration
のループ中に元のコレクションから要素を削除すると、要素がずれてしまい、こ
れが落とし穴となる。Iteratorのremove()メソッドを利用しよう。

・remove()って使うの?
 →使うことはある


=============================================
Item22 J2ME Performance and Pitfalls (布留川)
=============================================
[要約]
J2MEでは、J2SEにはない考慮事項がある。ここでは、J2SEのAmazon検索アプリ
ケーションをJ2MEに置きかえる例を示し、その中で、パフォーマンスや、メモリ
をどう最適化するかを述べている。

・メモリについては少ないこともあるが、さらに機種によっては、Nativeヒープ
やグラフィックヒープなどのメモリもあり、Javaから制御できないものもある。

・拡張機能APIは機種ごと、バージョンごとに違うのがややこしい

・Amazon検索には、RESTとSOAPのアプローチがあるらしい

・Vectorよりは配列でしょう

・メソッドは減らすでしょう

・String比較をクラスに置き換えているのはintでもいいかも

・OutOfMemoryError
 →発生場所によってキャッチできないことが多いかも

・変数やメソッドをfinalにする
 →変わるかな?

・ここでの最適化事項で、最近の性能アップで、そこまでしなくてよいものもあ
りそう
 0と比較するようにループを変える
 2倍はシフト演算

・GC用null代入
 →それよりもインスタンス使いまわす設計の方がよいかも

・synchronizationは避ける
 →基本的にはスレッドは使わず、なるべく1スレッドですます

・i++ > i=i+1 は本当か?

・J2MEでJavaを使う利点は?
 →サンドボックス、セキュリティーが一番の理由


=============================================
Item23 Cache, It's Money (金井 / 中村)
=============================================
[要約]
Webページの動的作成で、キャッシュを行うことは、パフォーマンスの利点があ
る。ここでは、キャッシュタグとJMeterを使ったキャッシュを行う例が示されて
いる。

・題はCashとかけたダジャレですね

P201
・cached in 45 minutes
 →いったい何をキャッシュしてるのか?