タグ

oopとphpmentorsに関するinnx_hidenoriのブックマーク (4)

  • 『PHPでオブジェクト指向的FizzBuzz』問題の解説記事~PHPが書けてオブジェクト指向がわかるとイケてるエンジニアになれる!? #php #オブジェクト指向 - CodeIQ Blog

    CodeIQ中の人、millionsmileです。 PHPメンターズの後藤秀宣さん出題の『オブジェクト指向的FizzBuzz』問題の解説記事です! PHPは、開発言語別の求人数ランキングで2位であります(出典)。さらには、PHPが書けてオブジェクト指向がわかるエンジニアへの企業ニーズは高いものの、実際は、まだまだ層が薄いということもあり、今回の出題へ、となりました。 ぜひ解説記事を読んで、イケてるオブジェクト指向がわかるPHPエンジニアをめざしてみてはどうでしょう。 以下、問題文です。 FizzBuzz問題を解くアプリケーションを実装しているとします。 ★FizzBuzz問題とは? 1, 2, 3, ・・・という入力に対して3で割り切れる場合は「fizz」、5で割り切れる場合は「buzz」 3でも5でも割り切れる場合は「fizzbuzz」、それ以外は数値をそのまま出力する PHPコードは次

    『PHPでオブジェクト指向的FizzBuzz』問題の解説記事~PHPが書けてオブジェクト指向がわかるとイケてるエンジニアになれる!? #php #オブジェクト指向 - CodeIQ Blog
  • ダブルディスパッチ

    オブジェクト指向プログラミングにおける実装パターンの1つにダブルディスパッチがあります。もともとはC++などメソッドのオーバーロード機構を持つプログラミング言語において、コンパイル時に決定できない型の情報を実行時に決定させるためのテクニックでした。後に、ケント・ベック氏の『実装パターン』にて、次のようにまとめなおされています。 1つの次元だけの変動性を表現するのであれば、選択メッセージで問題ない。「選択メッセージ」の例では、図形が描画されるメディアの種類という次元が1つだった。もし2つの独立した次元の変動性を表現する必要があるなら、2つの選択メッセージを順に呼び出す方法がある。 ・・・(コード例) ケント・ベック『実装パターン』 p.82 二重ディスパッチ 実際にどういう状況でダブルディスパッチが必要になるのか、また、どういった目的と根拠があるのかを関心や責務の分離の観点で考えてみます。

    ダブルディスパッチ
  • モックで置き換えの境界線

    以前のSymfony勉強会の折にユニットテストとモックの話をさせていただいたのですが、その時に@cakephperさんから次のような意見を頂いていました。 APIを信用して基Mockでという話、API側の仕様変更を常にウォッチしてないといけないのでフレームワークのアップデートとか大変なんじゃないのかなと思ったんだけど、そこんとこまだ消化できてない twitter - @cakephper まず最初に回答としては「APIが変わるのであれば概ねそのとおり」となります。しかし、これはモックを使うかどうかには関係ありません。ソフトウェアはフレームワークやライブラリ等サードパーティコードの仕様変更に常に影響を受けます。ここで、議論の前提を共有しておく必要があるでしょう。 ユニットテストとファンクショナルテストの使い分け。どちらが書きやすいのか。ユニットテストでテストしたい箇所はどこか。前提として、

    モックで置き換えの境界線
  • DDDのリポジトリの外部依存とオブジェクト指向の原則の適用について

    DDDのリポジトリがORMコンポーネントへ依存することの是非について、オブジェクト指向の原則の面から解説します。 リポジトリ(repository)とは、収納場所・倉庫・貯蔵庫を表す言葉です。 DDD(ドメイン駆動設計)では、リポジトリはモデル駆動設計でドメインをモデリングする際のビルディングブロックの1つになっています。ビルディングブロックとは基構成要素のことで、ドメインをモデリングする際の基部品として使います。 DDDのリポジトリの役目は、ドメインレイヤーのオブジェクトから永続化レイヤーを隠蔽することです。リポジトリ="エンティティの貯蔵庫"という抽象化されたオブジェクトを持ち込み、ドメインレイヤーの内部では貯蔵庫からエンティティを取り出すように設計・実装します。 構築するシステム(ここでは何か1つのシステムのみをイメージしてください)においてアーキテクチャが決定すると、その段階で

    DDDのリポジトリの外部依存とオブジェクト指向の原則の適用について
  • 1