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

[jfriends-ml 10355] Effective Java 第 6 回議事録



宮本です。こんばんわ。
Effective Java 第 6 回議事録です。
よろしくお願いします。


EffectivaJava 第6回議事録 2002年 10月26日 @田町

参加者(敬称略)
高橋智 高橋徹 布留川 門脇 金井 新井
根本 村上 村山 福嶋 鈴木 宮本(記)


[項目49] 過剰な同期は避ける
読み手:福嶋
■P185 クライントって誰?
 例を見ると、template methodパターンを使った場合
 サブクラスを作る人とか

■P185- このソースは何をしている?
 1つのロックに対して2つスレッドがとまった状態
 Swingなどで時間のかかる処理は別スレッドにするけど、
 こういうの書きがちかも。

■P188 活動性エラーと安全性エラーって?
 簡単に言うと、
 活動性エラー:プログラムの実行がとまってしまうような問題
        デッドロックなど
 安全性エラー:データの整合性がくづれる
 詳細はタグ・リーさんの本参照
 synchronizedブロック内でのメソッド呼び出しには注意が必要

■P188 Kunthって有名人?
 コンピュータサイエンスの偉い人、TeXの人
 バグを見つけてくれた人にはいくら払うとか言い切るすごい人だとか。
 java.util.RandomのJavaDocには以下の記述がある。
  Donald Knuth 著『The Art of Computer Programming, Volume 2』の...

■P189 ページ上段落の記述について
 同じクラスで、同期、非同期の同じ機能のクラスの作り方で
 コンポジションで実装するか、サブクラスで実装するかってこと。

[項目50]ループの外で決してwaitを呼び出さない
読み手:根本

■P190 Posix

■P191 級数の和は
 →"級数は"が正しい
 スレッドがたくさんある場合にはパフォーマンスが問題。
 雑談:Googleの検索順位を上げる方法
  掲示板にURL付で書き込みまくりとか


[項目51]スレッドスケジューラに依存しない
読み手:鈴木

■P194 yield
 yield入れた方がよいという記述を何かの本に書いてたような。

 雑談:昔のOSでプログラムWindows3.1のとき

 同じようなスレッドが大量に立ち上がるような場合って
  サーブレットとか。上限数。


[項目52]スレッド安全性を文書化する
読み手:福嶋

■P197 上手くいけば

■P198 new Object[]
 new int[]の方がコストは低いというイディオムもある

■コメントはメソッドを実装する前に書くか?
 →テストファーストの考え方では先に書くべき。
  作りながら考える場合もあるかも。

 テストケースのコメントは必要か?
 →必要
  テストケースを書いて本番コードは書かない
  インターフェイスに書いて実装コードに書かない
  というポリシーもある。


[項目53]スレッドグループを避ける
読み手:根本

■P199 uncaughtException
 マルチスレッド、GUIでは使える。

■こういう記述はGOOD。
 他の本にはThredGroupの説明はのってるが、
 それが有用かどうかの記述は少ない。

 雑談:ソフトウェアの経費


[項目54]Serializableを注意して実装する
読み手:鈴木

■シリアライズデータの暗号化の仕組みあるといいかも

■XML1.4のXML永続化


[項目55]カスタムシリアライズ形式を使用することを検討する
読み手:福嶋

■@serialタグ
 JavaDocの"直列化された形式"に出る

■デフォルトSerializableの互換性
 フィールドの順番を変更したら?
 フィールドの追加はOK?

■defaultWriteObject()
 呼んだ方がいいんですね。

■serialVersionUID
 簡単に作成するIDEツールってないね。


[項目56]防衛的にreadObjectを書く
読み手:金井

■P213 (byte)つけてるのはなぜ?
  0xf8などは明示的キャストが必要

■この本のソースないの?
 ソースの入手先はP3に書いてある。

■ObjectInputValidation
 はじめて見た。

■サーブレットコンテナのセッションデータ
 Tomcatなどは終了時にserを保存している。


[項目57]必要なときにはreadResolveメソッドを提供する
読み手:鈴木

■SerializableでSingletonってどんな場合?
 分散でなく、保存復活の場合
 設定ファイルとか
 二重化、フェールオーバー


以上でEffective Javaは終了です。
残りの時間で、バグパターンを読みました。
http://www-6.ibm.com/jp/developerworks/java/020118/j_j-diag0830.html

[みなし子スレッドバグパターン]
読み手:門脇

■非決定論的って?

■相手に依存したプログラムは工夫が必要


感想
読書会は本を深く読めるのもいいですが、
むしろ雑談の中で、いろいろと刺激的な話を聞けるのがいいです。
あと参加メンバーのジャンル、得意分野が幅広いのがいいです。
J2ME〜J2EE、業態もいろいろ、工程も上流〜実装、管理、研究まで、
幅広く、いいバランスがとれてる気がします。