[戻る]
Java読書会BOF「セキュア・バイ・デザイン」を読む会 第4回¶
日時 |
2022年10月15日 10:00 - 17:00 |
場所 |
川崎市教育文化会館 第3会議室 |
出席者(敬称略) |
遠藤、今井、岩室、加藤、高橋(智)、高橋(徹) |
本日は、「セキュア・バイ・デザイン 安全なソフトウェア設計」のp.177、 5.1.3 ドメイン・プリミティブ・ライブラリの構築から読み始めます。
第2部 基礎編¶
第5章 ドメイン・プリミティブ(domain primitive)¶
5.1 ドメイン・プリミティブ(domain primitive)と不変条件(invariant)¶
5.1.3 ドメイン・プリミティブ・ライブラリの構築¶
5.2 Read-Onceオブジェクト(一度しか読み込めないオブジェクト)¶
p.181 java.io.Externalizableを実装し、writeExternalを実装して例外を吐くようにしているので、transientはつけなくても良いのでは?
念の為にtransientを書いておこうという程度かも
p.182 【誤植】リスト5.3 validateメソッドの実装
誤)return notBlank(value).trim()
正)return notBlank(value.trim())
notBlankはおそらく apach commonsライブラリのValidateクラスのメソッド。引数がnullの時はNullPointerExceptionを、引数が空文字列の時はIllegalArgumentExceptionを吐く。
p.188 HTTPセッションにRead-Once設計したUserオブジェクトを格納した際、エラーメッセージ
5.3 ドメイン・プリミティブによってもたらされる安全性¶
p.190 リスト5.5 Orderクラスの実装
if(this.paid == false) とboolean値を==で比較しているが、これは if(!this.paid)でしょう
さらに、if (this.paid) return とした方がいい
p.195 リスト5.7 Orderクラスの実装(ドメイン・プリミティブ適用)
addToItemsメソッドの実装で、new OrderLineをしているのは何故だろう?
addItemsメソッドの中でaddToItemsを呼ぶときにnew OrderLineをして引数に渡すところが問題か?
p.197 ガーベッジ・コレクションの負荷は本当に関わらない?
【宿題】最近のガーベッジ・コレクションの性能を調べてみよう。最近のGCは、G1GC、ZGC、Shenandoahなど。
第6章 状態の完全性(integrity)の保証¶
6.1 エンティティを使った状態の管理¶
p.207 状態をブラウザのCookieに格納するなら、Hiddenでもいいのでは
6.2 正しい状態で生成されるエンティティ¶
p.229 「オブジェクト指向の理論的な観点から見ると、内部クラスのコンセプトは少し使うことに躊躇するもの」
staticな内部クラスなら躊躇することはないのでは?
本日は、p.230 6.2.7 O/R(Object-Relational)マッパーのフレームワークと複雑な制約の前まで読みました。次回は、p.230 6.2.7項からです。
[戻る]