オブジェクト指向

Primitive型とオブジェクト指向

「原罪」(Javaは、プリミティブがないほうがよかったか?) 初めにタイトルの疑問に答えると、もしJavaにPrimitive型が無かったらパフォーマンス的に使いものにならなかったので、ServerSideで覇権を取ることも無くオブジェクト指向技術の発展が5年〜10年は遅…

リファクタリングのコツ?

http://d.hatena.ne.jp/u_1roh/20090325 だから、何か機能追加や仕様変更があるたびに「もし最初からこの機能/仕様を知っていたらどう設計しただろうか」と自問自答するのが、うまいリファクタリングのコツになるんじゃないかと思う。 うーん、これはコツと…

nullはJavaのWeakポイント

純粋にオブジェクト指向的に考えた場合、オブジェクト間の通信にnullを使用するなんてことはあってはならない事だ。ある値がnullであるということは何かの状態を表しているわけで、その状態をnullで表してしまうと人間の頭にとっては扱い難い存在となる。例…

リテラルが先か後か問題

http://d.hatena.ne.jp/nowokay/20090219#1235014270ちょうどお仕事が忙しかった時期なので、化石レス。個別につっこむのはやめておいて結論だけ。この議論、僕自身もスタイルの問題だとか状況判断、メリット/デメリットのトレードオフの問題だと思ってたけ…

Testとか

http://www.infoq.com/jp/news/2009/02/spolsky-vs-uncle-bob Joel on Softwareを読んだときには、この人業務アプリケーションは知らないのかな?とか思ったけど、TestCodeに関してはJoelの意見に賛成かなー。コスト/メリットの判断を無視してカバレッジ100%…

カプセル化と情報の隠蔽

http://d.hatena.ne.jp/satoshis/20090130/p1うーん、カプセル化に情報の隠蔽を含むかどうかというのは、カプセル化する場合の表面の色が透明か色がついてるか?って違いだけだと思うんですが...どっちもあやふやにしか説明されてないので分けたとしても…

ReturnとThrowの使い分け

いままで意識はしていなかったけど、クライアントに何かしらの反応を期待する場合はretuenを、クライアントに反応を期待しないですっ飛ばす場合にthrowを使うという風に使い分けているっぽい。なんで、この使い分けを前提にした場合はreturnとthrowのフロー…

れすぽんしびりてぃ

何らかの状態を残すと何故、SingleResponsibilityに反するのか、そこがよく理解できていません。 加えて、「ガード節による入れ子条件記述の置き換え」というリファクタリングを適用すると、 メソッドの動作仕様には変化ないのに、なぜ、SingleResponsibilit…

「コードで説明する」の一番単純なパターン

いまいち「コードで説明する」が理解されていない様なので単純な例で説明してみます。「コードで説明する」の目的は頭の中にかかるコストを低く抑えることです。 // コード1 if (x == a || x == b) {...} // コード2 someStateの中身はx == a || x == bと想…

カプセル化・情報隠蔽・データ抽象化

http://d.hatena.ne.jp/satoshis/20090126/p2うーん、「カプセル化・情報隠蔽・データ抽象化」の定義なんて見たことがないのですが、ソースがどこなのか気になりますね。Wikipedia:カプセル化Wikipediaだと「情報の隠蔽」じゃなくて「データの隠蔽」になって…

実際問題として

途中でreturnに頼らなくてもコードは書けて、困ることはない。 途中でreturnしてるせいでややこしすぎて困ったことがある。 だから途中でreturnしない。ってだけなんだけどね。自分か人が困るようなコードは僕の趣味じゃない。

途中でreturnの続き

http://d.hatena.ne.jp/Isoparametric/20090122/1232633359あー、やっぱり。予想通り「ながら」処理の典型的なのが出てきました。「ながら」処理というのは複数の事を一度に実行しようとする実装です。「ステータスを変更する必要があるかどうか?」を判断し…

メイヤー本の続き

やっとで200ページを超えました。800ページって先が長すぎです(涙で、まだ途中なんですがオブジェクト=インスタンスなんて記述が出てきてちと引いてます。確かにインスタンスの無い世界がオブジェクトの世界じゃないってのには同意できるけど、オブジェク…

なぜリテラルを後にするのか

http://d.hatena.ne.jp/nowokay/20081208#1228726053http://d.hatena.ne.jp/nowokay/20081204#c1228454951別にリテラルを後にしたコードが美しいとかカッコいいからそうしているわけじゃなくて、単純にコードとして優れていないから選択すべきではないという…

メイヤー本を読み始めた。

オブジェクト指向のバイブルといして名高いバートランドメイヤーの本を読み始めた。ざっと見たところオブジェクトの定義がない...バートランドメイヤーでさえそこを避けて通るのか...オブジェクト指向本はなんで「オブジェクトとは何か?」という問題…

ArgoUML

仕事でクラス図を描きたくなったのでツールを探してみた。 以前はGentlewareのPoseidonUMLのフリーバージョンを使ってたのですが、フリーのバージョンがなくなってしまったので。で、よくよく考えたらPoseidonUMLはオープンソースを元に開発してたんだっけと…

インターフェースとオブジェクトの構造

インターフェイス指向設計 ―アジャイル手法によるオブジェクト指向設計の実践作者: Ken Pugh,角谷信太郎(監訳),児島修出版社/メーカー: オライリージャパン発売日: 2008/05/24メディア: 大型本購入: 16人 クリック: 357回この商品を含むブログ (67件) を見る…

オブジェクト指向とnull

すでに散々書いてきたネタなんですが... http://www.kmonos.net/wlog/88.html#_2233080818 うーん、全く賛成できないな。ただでさえわかりにくいnullがさらにわかりにくくなるだけのような...そもそもnullなんてものは手続き型の言語から間違って継承…

オブジェクト指向と手続き型の違い

いろんな意見があるのは知ってるけど、どれもいまいちだなーと思っていたのですが、最近になって間違いがなさそうな答えにたどりついたので書いておきます(あくまでも主観ですが)。 手続き型は頭の中で計算機をシミュレートしながらプログラミングする手法。…

OOコード養成ギブス?

トラックバックとかやり方わからないので普通にリンク。 http://d.hatena.ne.jp/akkt/20080424/1209051266 内容は置いておいて、これにすんごい数のブックマークがされているのが驚きなんですが...やっぱり世間では「オブジェクト指向」に困っているらし…