JAVA
ああ、昨日は更新を忘れていた・・・orz しかもちょっと浮気気味だったし、ダメだなぁ・・・○項目30 ライブラリーを知り、ライブラリーを使う 標準ライブラリーを使用することのメリット3つ それを書いた専門家の知識とそれを使用した人間の経験を利用することが…
昨日はお休みでした。気を取り直して再開。 ○項目27 nullではなく、長さゼロ配列を返す 以前やりました →http://d.hatena.ne.jp/shaw27/20060726/1153866783 ○項目28 すべての公開API要素に対してドキュメントコメントを書く ドキュメントコメントをちゃんと…
週明けの割りにテンションが低いのは昨日風邪を引いてしまい病み上がりだから。 ○項目25 メソッドのシグニチャを注意深く設計する メソッド名を注意深く選ぶ。名前は常に標準命名規約に従うべき。 便利なメソッドを提供し過ぎたりしないようにする。個々のメ…
金曜分を更新するのを忘れていました。不調だった昨日の分と併せて。前回分もタイトルを書いていなかったので修正。○項目22 関数ポインタをクラスとインタフェースで置き換える Cの関数ポインタをクラスとインタフェースで置き換えるには、戦略(Strategy)パ…
○項目21 enum構文をクラスで置き換える Cのenum構文(列挙型)はJavaからは省かれている enum構文は型の安全性という観点から不十分(安全ではない) →名前空間を確率しないため衝突する危険性がある、 Javaで以下の様に記述した場合も同様の欠点がある //in…
なんとか体調は復活。今日は飲み会の予定なので、スタメン出席するために今から仕事をしてしまうかも知れません。嗚呼。 ○項目19 構造体をクラスで置き換える Cの構造体(struct構文)をクラスで置き換えることを考える →という話からクラスとそのフィールド…
昨日からちょっと体調崩し気味です。頭の回転が鈍い・・・うー・・・ ○項目17 型を定義するためだけにインタフェースを使用する 定数インタフェースはやめましょう 何らかの定数を内部的にクラスが使用するということは実装の詳細である ユーザを困惑させる 将来的…
パラパラと目次を眺めていたら、ふと目に留まった項目27。書いてあることは以下のメモの通り。んでこの話題、ちょっと今やってる所にタイムリー過ぎたのでそのままそこにやってしまおうかと言うことで、あれこれ考え始めちゃったもんで読書はちっとも進みま…
金曜日のメモ、のハズなんだけどもうけっこう前のモノのような気がして萎えました・・・orz○項目15 継承のために設計および文書化をする、でなければ継承を禁止する クラスはメソッドのオーバーライドの影響を正確に文書化しなければならない んー・・・どうも話の…
うー、すすまん・・・1日1項目ですか・・・ ○項目14 継承よりコンポジションを選ぶ 不適切な継承はカプセル化を壊す →その壊し具合についても例が書いてあるんだけど、わかったようで言葉で上手く説明できない。例をそのまま書くのもアレなので省略。んでヘタに継…
うーん、進まない。カメ以下の歩み。ってか重たい(オレにとっては)項目が続いてる模様です。もっとさらっと流す程度でも良いのかも。 あとはてな記法を少し思い出したので使ってみた。ただ、手元のメモとしては逆に見づらくなるからどうしたもんかと思った…
うへー、なんか今日は朝っぱらからフロアに人がおる。ってなわけで隙を見てこっそり更新。昨日更新しなかったのは金曜も仕事をしてしまったからに他なりません。ってかここぐらい会社に公開してもいいような気もするなぁ・・・○項目10 cloneを注意してオーバー…
うーん、進まない。カメの歩み。ノソノソと。やっぱり自分にとっては内容が少し難しいのかも知れねーです。が、もうちょっとやってみます。ノロノロと。あとこのメモはいつか整形します。見づらくて仕方ない。○項目8 equalsをオーバーライドする時には、常に…
はぁー、全然進まナス。つーか項目7とか長過ぎだし。本読んでる途中でEclipse立ち上げちゃダメだって。進まないって。 ○項目6 ファイナライザを避ける・ファイナライザの使用は出来る限り避けるべき →不安定な振る舞い、低いパフォーマンス、移植性の問題が…
結局昨日は2項目しか進まなかった。次のコードのメモリリークを発見できますか?とか言われて手間取った。結局わかんなかったし。んで以下相変わらずひどいですがメモ。○項目4 重複したオブジェクトを生成するのを避ける・String s = new String("silly"); /…
○項目1 コンストラクタの代りにstaticファクトリーメソッドの提供を検討する・インスタンスの提供方法として、コンストラクタの他にpublicでstaticなファクトリーメソッドも選択肢として持っておくべき。ファクトリーメソッドの長所は・・・ 1.コンストラクタと…
Effective Java プログラミング言語ガイド作者: Joshua Bloch,ジョシュア・ブロック,柴田芳樹出版社/メーカー: ピアソン・エデュケーション発売日: 2001/12/03メディア: 単行本購入: 5人 クリック: 124回この商品を含むブログ (105件) を見る昨日ちょろっと…
JavaWorld DAY 2006に参加することにしました。前から行こうかどうか迷っていたんですが、職場でたまたまこの話が話題に挙がって*1、したら上司が「誰か行かんのか!」みたいな流れになって行きます行きます。2秒で手を挙げました。参加料もすごい安いしあ…
んーやっとこさ、一応?一通り読み終えた。まずはこの本を貸してくれた会社の先輩(結果的にそれが読む機会になった)、それから本の著者であり一読者に過ぎないオレに応援コメントを下さった結城さんに感謝したい。それでいて、結局2ヶ月ぐらいかかっている…
文字通りインタプリタ作っちゃいましょうよパターン。最初はさっぱり設計が思い浮かばなかったけど、サンプルの途中でBNFが出てきてなんとなくイメージできた。他にも正規表現やら、構文解析やら、ある種なじみのある言葉がつらつらと出てくる。ミニ言語を解…
「命令」というものをクラスで表現しましょうパターン。と、いつもの調子で書いて見たけど、んー、ちょっと困った。先週からこの章をもう5回は読んでいる。でも、やってることはわかるんだけど、何度読んでもどうもスッキリとしないものがある。なんかピン…
代理人立てますよパターン。将棋が上手い人は往々にしてプロ棋士だったり。世に言う「串」ってヤツですな。どうでもいいけど。これは導入部分を読んで設計はなんとなく思いついたんだけど、肝心のメリットというか使いどころがさっぱりピンと来なかった。む…
共有できる部分はみんなで共有してリソースの無駄を無くしましょうよパターン。この所調子良かった?気がしていたのに今回はいまいち勘が働かず。Singletonを沢山作るってのを考えたけど、それじゃあダメじゃんね。いったいいくつクラス作るんですかという話…
「状態」を表現するパターン。「状態」だとか「遷移」だとかそういう言葉を並べられると個人的には黙っていられなかったりする。一種のトラウマ。どうでもいいけど。「状態」をクラスとして表現するということで考えたら、キタドンピシャ。すげーすげー。成長した…
Memento(記念品、形見、思い出の種)を大事にとっておきましょうパターン。導入部分の「インスタンスの状態を保存しておいて、あとでその時点に戻してやる」のところで、ああ、Prototypeパターン来たな、と思った。別にクローン作ってるわけじゃあなかった…
観察者(Observer)と言いつつ、実は通知を待っている感じだったりするパターン。Mediatorパターンと似てるだろ!とか思いながらちょっとせっかちになっていきなりサンプルを見てしまった。んー頭を使うことをけちってはいかんなぁ。反省。 ポイントはMediat…
ごたごたした話は私が相談役として仲介にはいりますよパターン。って書くときな臭いけど、まぁそんな感じ。実は今回は導入部分を読んでパッ!と閃いた。「あ、相談役がいろんなインスタンスを一手に抱えてるんだろ!」と閃いた。あわてずにもう一度考え直し…
そういうことは全て窓口を通してくださいねパターン。そしてオレにとっては一番身近なパターン。ややこしいプログラムの内部をFacadeを窓口にしてそこで一手に引き受けることにすれば使う側はラクチンだよね、という話。 実は今携わっているシステムは、その…
回せ回せ、とことんたらい回せ、なパターン。導入部分でやりたいことはピンときた。なるほど便利なパターンだ、と思った。でも構成を思いつくことができなかった。余計な部分をあれこれ考えて、結果的に複雑な話を作り上げてしまった。そうか、自分のインス…
データ構造と処理を分離しましたパターン。Compositeパターンから処理の部分Visitorだけを分離させて、Visitorを受け入れるAcceptorインタフェースで間を繋ぐ、といった感じだろうか。今日は時間があったので導入部分からあれこれ考える時間をいつもより増や…