A Day In The Life

とあるプログラマの備忘録

オブジェクト指向

オブジェクト指向の次に来るもの

自分が駆け出しのプログラマだった頃(10年以上前ですかね)、必死でオブジェクト指向プログラミングの勉強をしました。最近だとオブジェクト指向プログラミングなんて当たり前すぎて技術とすら言えないくらいになったと感じてます。 エンジニアが生き残るため…

メソッド設計で守るべき10個のルール

以前メソッド設計の原則に関する記事を書きましたが 質問をすることで答えは変更されない原則 メソッドの引数はオペランドのみにする原則 それ以前にメソッド設計する上で最低限守った方がよいルールをまとめてみました。 プロパティをメソッドの戻り値代わ…

メソッドの引数はオペランドのみにする原則(メソッドの引数がクラス設計に影響する)

前回に続きメイヤー著「オブジェクト指向入門 第2版 方法論・実践」で面白い原則があったのでまとめてみました(コード例はJavaで書きました)。 前提 メソッドの引数は2種類ある オペランドメソッドの操作対象であるオブジェクト オプション操作のモード オ…

質問をすることで答えは変更されない原則

メイヤー著「オブジェクト指向入門 第2版 方法論・実践」でクラス設計の面白い原則があったのでまとめてみました。 前提 クラスの特性にはクエリとコマンドがある。 クエリ 属性 ファンクション(戻り値のあるメソッド) コマンド プロシージャ(戻り値のないメ…

継承の種類

バートランド・メイヤー氏のオブジェクト指向入門の実践編を読んでます。その中で「継承の上手な使い方」という章で継承の方法を12種類に分類しているのですが、その分類方法が面白かったのでまとめてみました。 モデル継承 部分継承 拡張継承 制約継承 ビュ…

オブジェクト指向の向こう側

一昨日、面白そうな本を見つけて衝動買いしてしまいました。 ジェネリクスとかアスペクトとかDSLとか興味あるトピックが結構網羅されているのでうれしいです。 C++のコード例が多いのがJavaらーの自分としては難点ですが、やっぱりC/C++はどっかで勉強せなあ…

こんなものまであるとは

いままでまったく知りませんでした。 プロトタイプベース・オブジェクト指向 究極の動的言語って感じでしょうか。 これは要チェックですね。

契約による設計と言えば・・・

オブジェクト指向入門 第2版 原則・コンセプト翔泳社このアイテムの詳細を見る今日やっと読み終わりました。 メイヤー氏のオブジェクト指向入門第2版の上巻です。(下巻は今年の夏ごろに出るらしいです) 上巻のくせに900ページもあるし価格も7200円+税とか…

総称性(Generics)を使って拡張性の高いクラスを作成する。

オブジェクト指向技術を活用していくための考察第3回目です。 今回は型の総称性(Generics)をうまく使って拡張性の高いクラスを作成していきます。 型の総称性はJavaでも5.0から導入されたので最近よく耳にすると思います。 ただ多くの方はコレクションを扱う…

ビジネス・ルールに合わせた独自データ型を活用する(実装編)

オブジェクト指向技術を活用していくための考察第2回目です。 前回の「ビジネス・ルールに合わせた独自データ型を活用する」では実装例を紹介できなかったので、今回は実際にJavaを使った実装例を紹介します。 それではショッピングモールサイトなんかで使わ…

奥義と呼ぶにふさわしい一冊。

アジャイルソフトウェア開発の奥義ソフトバンククリエイティブこのアイテムの詳細を見る目から鱗、鱗、鱗な本。 読み進めるたびに毎回新しい発見がありました。 オブジェクト指向を原理原則にそって説明しているため非常に読みやすいです。 原理原則にからめ…

PMとオブジェクト指向と

昨日、オブジェクト指向プロジェクトマネジメント総合講座という研修を受けてきました。 内容はRUPの基礎知識を演習通して身につけるって感じです。 プロジェクトマネージメントというものをまじめに勉強したことがなかったので非常にためになりました。 PM…

ビジネス・ルールに合わせた独自データ型を活用する

オブジェクト指向技術を活用していくための考察です。 第1回目はデータ型についてお話です。 開発中に 「顧客マスタの名称が30桁から50桁に変更になりました。」 とか 「金額項目に小数が必要になりました。」 なんて仕様変更で大混乱になったことありません…

メソッドの多重定義(オーバーロード)について考える

最近、オブジェクト指向入門第2版を読んでいます。 その本の中でメソッドの多重定義はオブジェクト指向の目指す再利用性についてほとんど貢献していないと書いてあり少しばかり考察を。 本の中ではこのように書いてます。再利用性を探求する上でルーチンの多…

怒涛のUML

UML分析モデリング実践演習という研修を受けてきました。 怒涛のようにUMLを手書きで書きまくりました。 手書きだと脳がフル回転するのがよくわかります。 要点をおさえてさっとモデリングするって大事ですね。

依存関係逆転の原則

依存関係逆転の原則とは 上位のモジュールは下位のモジュールに依存してはならない。どちらのモジュールも「抽象」に依存すべきである「抽象」は実装の詳細に依存してはならない。実装の詳細が「抽象」に依存すべきであるという原則です。 まずはこのクラス…

画面デザインとオブジェクト指向

最近、デザイニング・インターフェースという本を読んでます。 そこでこんな文を見つけました。アプリケーションは伝統的なウェブサイトとは違う。この違いを「名詞」と「動詞」の違いに照らして考えてみよう。ウェブサイトや、書籍、映画、音楽、グラフィッ…

オブジェクト指向分析をしたことなかったので

先週3日間、オブジェクト指向分析・設計の研修を受けてきました。 要求分析、システム分析、システム設計をオブジェクト指向的なアプローチで行っていく研修でした。 ユースケース図、オブジェクト図、クラス図、ユースケース図なんかをどういった場面でどの…

いろんなフレームワークで実践されているパターン集

エンタープライズ アプリケーションアーキテクチャパターン翔泳社このアイテムの詳細を見るもう少し訳がしっかりしてればなぁと思うところが何点かありましたが、内容は良かったです。 トランザクションとかデータベースまわりのパターンが6割程度占めてまし…

英語力が欲しい。猛烈に。

最近、「HIBERNATE イン アクション」を読んでいてドメインモデルに非常に興味がわいてきました。 その本の中でお薦めとして紹介されていたのが↓の本です。 Domain-Driven Design: Tackling Complexity in the Heart of SoftwareAddison-Wesley Pub (Sd)この…

基本的なことですが...

オブジェクトのコピーにはディープコピーとシャローコピーの2種類があります。 開発をしていると変えたはずのない値が変わってるなんて事がよくあります。 大抵このコピーの問題だったりします。 本当に基本的なことですがディープコピーとシャローコピーに…

名前はちゃんと付けよう

クラス名、メソッド名は後から他の人がみてわかるようにしたいですね。 クラス名は名詞または名詞+動詞。 メソッド名は動詞または動詞+名詞。 メソッド名にdoCheck01みたいに数字で管理したり、クラス名が単にCheckだけだと誰も理解できんでしょ。 これはJ…

良い設計

実装の継承とインターフェイスの継承、この2つのちがいを理解していないと良い設計は出来ないなと思いました。 自分はどうしても実装の継承にばっかり目がいってるなと。 インターフェイスをうまく使ってプログラムを粗結合にすることも大事だなと。 「Effec…

UMLを一から勉強するなら

UMLモデリングのエッセンス―標準オブジェクトモデリング言語入門翔泳社このアイテムの詳細を見る UMLと言えばクラス図をなんとなく書いた程度の知識しかなかったのでそろそろ勉強しようかと思い買った本です。 実戦で使える情報がたくさんあり、何より文章が…

デザインパターン勉強中...

ObserverパターンはGUIのイベント通知の仕組みに似ているなと思いました。 MediatorパターンはGUIで開発するときに役に立ちそうだな〜。 デザインパターンは奥が深くてホント面白いです。

階層メニュー2

階層メニューが一通り動くようになりました。 olタグとliタグを使用し、表示はカスタムタグで行いました。 一番時間がかかったのが、DBからメニューオブジェクトを生成するところで、 すべてのデータをCompositeなオブジェクトに格納するのはかなり苦戦しま…

階層メニュー

階層化メニューを作ることになりました。 階層化といえば再帰、再帰といえばConpositeパターンです。 頭で思い描くほど簡単には行かず、デザインパターンを一から勉強中です。

LEGOとプラモデル

オブジェクト指向プログラム(OOP)と非オブジェクト指向プログラムの違いってナンだろう と考えてみたところ、 OOPはLEGOブロック、非OOPはプラモデルみたいなモンではないかと思いました。 ブロック自体はどこのパーツと決まっているわけでなく、作成者がど…