正しくTogetter / min.tにログインできない不具合が発生中です。X側の修正をお待ちください(詳細はこちら)

Effective Java 2nd Editionの自分の感想まとめ

"Effective Java 2nd Edition"を英語でちまちま読んでいます。ときどきつぶやく考えを見返せるように。
0
鏡双司 | Skeb Open @SO_C

"Effective Java"を英語で読んでいる。サンプルコードがあるので、英語が分からなくても、言わんとすることの察しがつく。

2012-11-08 23:14:24
鏡双司 | Skeb Open @SO_C

"Effective Java 2nd Edition"をChapter 2まで読み終えた。昔読んだときには分からなかったことが分かるようになっていて、嬉しい。

2012-11-15 23:04:35
鏡双司 | Skeb Open @SO_C

cloneをオーバーライドしたくて、"Effective Java"で書いてあったのは思い出せた。さて、どう書くんだったか。

2012-11-19 23:10:27
鏡双司 | Skeb Open @SO_C

まだちゃんとcloneのところを読んでいなかった。ざっと読んだところ、コピーコンストラクタやコピーファクトリィを使った方が良いらしい。

2012-11-19 23:10:34
鏡双司 | Skeb Open @SO_C

今からインタフェースを変えるのは辛いから、注意しながら実装せざるを得ないなぁ。

2012-11-19 23:11:41
鏡双司 | Skeb Open @SO_C

"Effective Java"、第4章まで来た。このあたりから、噛み砕くのが大変になってくるんだろうなぁ。

2012-11-20 10:19:36
鏡双司 | Skeb Open @SO_C

"Effective Java 2nd Edition"、Item 15: Minimize mutabilityは身に染みる。うっかり参照渡ししていて、渡した先で意図しない変更がされて大変な目に。そういえば、Rubyだと破壊的なメソッドは"!"で一目で分かるようになってたっけ。

2012-11-21 09:42:01
鏡双司 | Skeb Open @SO_C

そう言えば、Rはじめ関数型だと、基本的に破壊的な操作はできない。

2012-11-21 09:47:36
鏡双司 | Skeb Open @SO_C

"Effective Java 2nd Edition"、Item 15: Minimize mutabilityは身に染みる。うっかり参照渡ししていて、渡した先で意図しない変更がされて大変な目に。そういえば、Rubyだと破壊的なメソッドは"!"で一目で分かるようになってたっけ。

2012-11-24 19:41:05
鏡双司 | Skeb Open @SO_C

"Effective Java 2nd Edition"もまだ読みかけというのに。

2012-11-26 21:27:24
鏡双司 | Skeb Open @SO_C

"Effective Java 2nd Edition"、Item 8がなかなか面白い。インスタンス化可能なクラスを継承して、値を持たせると、理想的な形ではequalsをオーバーライドできないと言う話。コンポジションを優先しよう、というItem 16に繋がるみたい。

2012-11-28 22:17:00
鏡双司 | Skeb Open @SO_C

Javaでオブジェクト指向を学ぶと、継承が特徴として大々的に紹介されているけれど、継承してサブクラスを作るより、委譲の方が使いやすいというのは、ねじれているよなぁ。かといって、いきなりインタフェースは難易度高いか。

2012-11-28 22:29:30
鏡双司 | Skeb Open @SO_C

"Effective Java 2nd Edition"、Item 17: Design and document for inheritance or else prohibit it. Check Styleがfinal付けろって言ってくる背景コレか。

2012-11-29 10:15:24
鏡双司 | Skeb Open @SO_C

"Effective Java 2nd Edition", Item 18: Prefer interfaces to abstract classes. そう言えば、継承してもいいけれど、インタフェースもあるよ、という設計のライブラリあったなあ。

2012-11-29 10:32:46
鏡双司 | Skeb Open @SO_C

"Effective Java 2nd Edition", Item 20: Preffer class hierarchies to tagged classes. タイプコードのことかな?

2012-11-29 21:56:40
鏡双司 | Skeb Open @SO_C

プログラムを設計するということは、抽象化するということなんだなぁ、と最近改めて実感している。

2012-11-29 22:06:35
鏡双司 | Skeb Open @SO_C

"The Effective Java 2nd Edition", Item 21: Use function objects to represent strategies、関数ポインタ、デリゲート、ラムダ式のような効果は、ストラテジー・パターンで得られるという話。

2012-12-13 11:56:52
鏡双司 | Skeb Open @SO_C

"The Effective Java 2nd Edition", Item 21: 具象ストラテジークラスには、よく無名クラスが使われる、とのこと。確かに無名関数に対応するなぁ。

2012-12-13 12:01:34
鏡双司 | Skeb Open @SO_C

"The Effective Java 2nd Edition", Item 21: でも、それだとステートレスなクラスが毎回newされてしまうから、インナークラスにして、private static finalなフィールドに入れといた方がいい、と。

2012-12-13 12:05:09
鏡双司 | Skeb Open @SO_C

"The Effective Java 2nd Edition", Item 21: 公開するならpublicにするか、staticなファクトリィメソッド作るか。

2012-12-13 12:08:09
鏡双司 | Skeb Open @SO_C

"The Effective Java 2nd Edition", Item 22: Favor static member classes over nonstatic、ネストされたクラスには4種類あって、その一つがインナークラスと呼ばれているのか。

2012-12-13 12:11:22
鏡双司 | Skeb Open @SO_C

ん、3種類がインナークラスか?

2012-12-13 12:12:40
鏡双司 | Skeb Open @SO_C

"The Effective Java 2nd Edition", Item 22:、static member classのよくある使い方はパブリックヘルパークラス。nonstatic member classはアダプタとして。

2012-12-13 12:18:52
鏡双司 | Skeb Open @SO_C

"The Effective Java 2nd Edition", Item 22: 無名クラスの使いどころはファンクション・オブジェクト。無名関数と同じ。

2012-12-13 21:00:31
鏡双司 | Skeb Open @SO_C

"The Effective Java 2nd Edition", Item 23: Don't use raw types in new code、Generics使おうという話。これはできてる。1.4まではなかったのが信じられないくらい。キャスト失敗には泣かされた。

2012-12-13 21:11:54
1 ・・ 4 次へ