SlideShare una empresa de Scribd logo
1 de 86
Descargar para leer sin conexión
PHPではじめる
オブジェクト指向
  VOYAGE GROUP
    田中 康一
自己紹介
田中康一
株式会社 VOYAGE GROUP
 子会社のFlesselで
 ケータイサイト開発・運用
PHP歴11年
Twitter: @mugeso
アジェンダ
自己紹介
アジェンダ
オブジェクト指向とは
PHPでのオブジェクト指向
オブジェクト指向の原則・法則・格言
オブジェクト指向とは
オブジェクト
データを持っている
振る舞いを持っている
メッセージをやり取りする


オブジェクト           オブジェクト
         メッセージ
                    メッセージ



                 オブジェクト
Web開発現場だと
         開発依頼
ディレクター           PM


   デザイン依頼             実装依頼



 デザイナ           プログラマ
PHPでのオブジェクト指向
クラス
例えば
        社員      クラス




山田さん    鈴木さん     佐藤さん

       インスタンス
コード例
class Employee
{
   private $_name;
   public function __construct($name)
   {
      $this->_name = $name;
    }
   public function getName()
   {
      return $this->_name;
   }
}

$yamada = new Employee(‘山田’);
継承
例えば
            社員      継承元(親クラス)




ディレクター    エンジニア       デザイナ

         派生(子クラス)
コード例
class Designer extends Employee
{
   public function design()
   {
      // デザイン処理の実装
   }
}

$designer = new Designer(‘山田’);
$designer->getName(); // Employeeで定義
$designer->design(); // Designerで定義
インターフェイス
例えば

         デザイン依頼
ディレクター            デザイナ


      この関係を
 ディレクターが求めている事に
     注目してみると
例えば

         デザイン依頼
ディレクター            デザインできる



このように置き換える事ができます。
  この「デザインできる」が
   インターフェイスです。
例えば
   デザインできる




 デザイナ   デザイン会社


 実装としてデザイナや
デザイン会社があります。
例えば

          デザイン依頼
 ディレクター            デザイン会社


ディレクターは「デザインできる」という
    インターフェイスに基づき
   デザイン会社に依頼できます
コード例
interface DesignerInterface
{
   public function design();
}

class Designer extends Employee
   implements DesignerInterface //   デザイナインターフェイスを実装
{
    public function design()
    {
       // デザイン処理の実装
    }
}
コード例
// interface DesignerInterface
// {
// public function design();
// }

class DesignerCompany extends Company // 継承元は会社クラス
   implements DesignerInterface // デザイナインターフェイスを実装
{
    public function design()
    {
       // デザイン処理の実装
    }
}
その他機能
多重継承
インターフェイス同士の継承
定数定義
トレイト
例えば……
現実世界で例えるのは少し難しい
例えば!
映画マトリックスでヘリコプターの操縦
方法をインストールしたような感じ。
例えば
エンジニア         デザイナ




 エンジニアとデザイナの
  技術を抜き出して
例えば
 エンジニア         デザイナ

プログラミング
   技術



  エンジニアとデザイナの
   技術を抜き出して
例えば
 エンジニア         デザイナ

プログラミング        デザイン
   技術           技術



  エンジニアとデザイナの
   技術を抜き出して
例えば
   ハイパー
  クリエーター

 プログラミング法


  デザイン法


再利用ができます。
例えば
   フリーランス




    ハイパー
   クリエーター

継承元が違ってもOK!
コード例
               (トレイト定義)
trait CodingTrait
{
  public function coding($design, $repository)
  {
     // 実装
  }
}
コード例
             (トレイトの利用)
class Engineer extends Employee
{
   use CodingTrait;
}


$engineer = new Engineer(‘加藤’);
$engineer->coding($design, $repository);
コード例
               (トレイト定義)
trait DesignTrait
{
  public function design($info, $repository)
  {
     // 実装
  }
}
コード例
              (トレイトの利用)
class HyperCreator
{
   use CodingTrait, DesignTrait;
}


$creator = new HyperCreator(‘北村’);
$creator->coding($design, $repository);
$creator->design($info, $repository);
もしここで
trait CodingTrait
{
  public function coding($design, $repository) {/* 略 */}
  public function design($info, $repository) {/* 略 */}
}

trait DesignTrait
{
  public function design($info, $repository) {/* 略 */}
}
もしここで
trait CodingTrait
{
  public function coding($design, $repository) {/* 略 */}
  public function design($info, $repository) {/* 略 */}
}

trait DesignTrait
{
  public function design($info, $repository) {/* 略 */}
}
       メソッド名が被っていたら
別名をつける
class HyperCreator
{
   use CodingTrait, DesignTrait
   {
     CodingTrait::design insteadof designCode;
     DesignTrait::design insteadof designUi;
   }
}

$creator = new HyperCreator(‘北村’);
$creator->coding($design, $repository);
$creator->designCode($info, $repository);
$creator->designUi($info, $repository);
その他機能
メソッドの可視性の変更
トレイトを組み合わせたトレイト
トレイトのメンバーの抽象化
静的なメンバー
プロパティ
名前空間
例えば
人事部         開発部


部長          部長




  同じ部長でも仕事が違う
     区別したい
コード例
<?php //fileA.php
namespace Personnel;
class Boss{}


<?php //fileB.php
namespace DevelopDepartment;
class Boss{}
コード例
<?php // fileC.php
use DevelopmentDepart;
$hoge = new Boss(); // これは開発部部長


<?php // fileD.php
use Personnel;
$hoge = new Boss(); // これは人事部部長
$foo = new DevelopmentDepart¥Boss();
原則・法則・格言
注意
設計・コーディングの際に意識しましょう
必ず守らなければイケナイわけではありま
せん
理由があればこれらを破るのもアリです
デメテルの法則
ディレクター   ディレクター




デザイン会社   デザイン会社




 デザイナ     デザイナ

 契約関係    指示の流れ
デザイン会社で
人事異動発生!!
担当デザイナが交代
ディレクター    ディレクター




デザイン会社    デザイン会社




 デザイナ      デザイナ

   どっちが楽ですか?
コーディングでは
メソッドに渡されたオブジェクトと
メンバオブジェクトのみに
メッセージを送る
1行に->は1つまで
単一責任の原則
  (SRP)
「クラスを変更する理由は
1つ以上存在してはならない」
社員



じつはこいつは大きすぎる
考えられる変更理由
社員番号を持たせたい
給与を振り込めるようにしたい
人事評価をできるようにしたい
人事評価の方法を変更したい
社員          給与



     人事評価


変更理由を考えると
このように分割できる
リスコフの置換原則
   (LSP)
「派生型はその基本型と
置換可能でなければならない」
登場人物
       社員




 人事         プログラマ



西野さん        北野さん
西野さん   北野さん
西野さん           北野さん

       人事評価なんだけど
西野さん           北野さん

       人事評価なんだけど


   え?何のことです?
西野さん           北野さん

       人事評価なんだけど


   え?何のことです?


    社員なら分かれよ・・・
西野さん           北野さん

       人事評価なんだけど


   え?何のことです?


    社員なら分かれよ・・・



  社員ができる事は
 プログラマもできるべき!
具体的には
基本クラスのメソッドを使えなくする
派生クラスから例外をなげる

    これはNG!!!
開放閉鎖の原則
ソフトウェアの構成要素は、
   拡張に対して開いていて、
修正に対して閉じていなければならない。
うまく出来ている例
ブラウザのプラグイン
外付けハードディスク
(パソコンのネジをあけなくても使える)
依存関係逆転
  の原則
「上位のモジュールは下位のモジュールに依
存してはならない。どちらのモジュールも
『抽象』に依存すべきである。」


「『抽象』は実装の詳細に依存してはならな
い。実装の詳細が『抽象』に依存すべきであ
る。」
事業責任者




ディレクター   そのものに依存


 デザイナ
ディレクション
 事業責任者
              できる




デザインできる     ディレクター




 デザイナ     求める能力にだけ依存
インターフェイス分離
   の原則
「クライアントに、クライアント
が利用しないメソッドへの依存を
  強制してはならない。」
例えば
 個人
            契約できる
           *個人契約する
           *法人契約する
株式会社

      個人は法人契約は
       知らなくていい
例えば
 個人      個人契約できる




株式会社     法人契約できる


インターフェイスを分離する
Tell,Don’t Ask.
例えば(ask)
ディレクタ    デザイナ
例えば(ask)
ディレクタ            デザイナ

        背景は何色?
例えば(ask)
ディレクタ               デザイナ

         背景は何色?


        #348fddです
例えば(ask)
ディレクタ               デザイナ

         背景は何色?


        #348fddです


         ここは何px?
例えば(tell)
ディレクタ   デザイナ
例えば(tell)
ディレクタ       デザイナ

    このコンセプトで
    デザインよろしく。
    終わったら送って。
例えば(tell)
ディレクタ            デザイナ

    このコンセプトで
    デザインよろしく。
    終わったら送って。



        できました。
        こちらです。
後者の方が
役割分担ができている。
コーディングでは
getter,setterは極力使わない
 getter = getHoge
 setter = setHoge
参考文献
http://php.net/manual/
http://www.objectmentor.com/resources/
articles/Principles_and_Patterns.pdf
http://objectclub.jp/community/memorial/
homepage3.nifty.com/masarl/article/oo-
principles.html
http://wiki.shos.info/index.php?%A1%DA
%A5%AA%A5%D6%A5%B8%A5%A7%A5%AF%A5%C8%BB
%D8%B8%FE%A1%DB%A5%AA

Más contenido relacionado

La actualidad más candente

オブジェクト指向最強
オブジェクト指向最強オブジェクト指向最強
オブジェクト指向最強haganemetal
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツShunji Konishi
 
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げるWataru Terada
 
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生Satoru Kodaira
 
オブジェクト指向設計の原則
オブジェクト指向設計の原則オブジェクト指向設計の原則
オブジェクト指向設計の原則Toru Koido
 
【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲
【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲
【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲アシアル株式会社
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースHajime Yanagawa
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し増田 亨
 
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向hakoika-itwg
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門増田 亨
 
【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理
【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理
【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理アシアル株式会社
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門増田 亨
 
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向hakoika-itwg
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?Moriharu Ohzu
 
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Atsuhiro Kubo
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する増田 亨
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門増田 亨
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する増田 亨
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル増田 亨
 

La actualidad más candente (20)

オブジェクト指向最強
オブジェクト指向最強オブジェクト指向最強
オブジェクト指向最強
 
良質なコードを高速に書くコツ
良質なコードを高速に書くコツ良質なコードを高速に書くコツ
良質なコードを高速に書くコツ
 
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
 
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
 
オブジェクト指向設計の原則
オブジェクト指向設計の原則オブジェクト指向設計の原則
オブジェクト指向設計の原則
 
【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲
【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲
【アシアル塾】PHPオブジェクト指向再入門・第二回クラスの継承と委譲
 
モジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェースモジュールの凝集度・結合度・インタフェース
モジュールの凝集度・結合度・インタフェース
 
リッチなドメインモデル 名前探し
リッチなドメインモデル 名前探しリッチなドメインモデル 名前探し
リッチなドメインモデル 名前探し
 
第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向第3回勉強会 オブジェクト指向
第3回勉強会 オブジェクト指向
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門オブジェクト指向プログラミングのためのモデリング入門
オブジェクト指向プログラミングのためのモデリング入門
 
【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理
【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理
【アシアル塾】PHPオブジェクト指向再入門・第三回Exceptionクラスによる例外処理
 
ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門ドメイン駆動設計のためのオブジェクト指向入門
ドメイン駆動設計のためのオブジェクト指向入門
 
第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向第2回勉強会 オブジェクト指向
第2回勉強会 オブジェクト指向
 
オブジェクト指向できていますか?
オブジェクト指向できていますか?オブジェクト指向できていますか?
オブジェクト指向できていますか?
 
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
 
3週連続DDDその1 ドメイン駆動設計の基本を理解する
3週連続DDDその1  ドメイン駆動設計の基本を理解する3週連続DDDその1  ドメイン駆動設計の基本を理解する
3週連続DDDその1 ドメイン駆動設計の基本を理解する
 
ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門ドメイン駆動設計 本格入門
ドメイン駆動設計 本格入門
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイルドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
ドメイン駆動設計の基礎知識:設計のスタイル、開発のスタイル
 

Destacado

第2回 モデリング勉強会
第2回 モデリング勉強会第2回 モデリング勉強会
第2回 モデリング勉強会hakoika-itwg
 
関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)tadaaki hayashi
 
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~Fujio Kojima
 
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数Satoru Kodaira
 
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版Mao Ohnishi
 
だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向Anto Mioyama
 
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)nomuken
 
デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」Hokuto Tateyama
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎文樹 高橋
 
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門Ryo Miyake
 
バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-hakoika-itwg
 
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」hakoika-itwg
 

Destacado (12)

第2回 モデリング勉強会
第2回 モデリング勉強会第2回 モデリング勉強会
第2回 モデリング勉強会
 
関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)関数型言語とオブジェクト指向言語(序章)
関数型言語とオブジェクト指向言語(序章)
 
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~F流『オブジェクト指向の考え方の基礎の基礎』~ソフトウェア開発の原則編~
F流 『オブジェクト指向の考え方の基礎の基礎』 ~ソフトウェア開発の原則編~
 
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
ジーノ先生の文系的オブジェクト指向(2) - コンストラクタの引数
 
オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版オブジェクト指向ワークショップ 201507版
オブジェクト指向ワークショップ 201507版
 
だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向だいたい30分で分かるオブジェクト指向
だいたい30分で分かるオブジェクト指向
 
オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)オブジェクト指向勉強会(基礎)
オブジェクト指向勉強会(基礎)
 
デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」デジタルメディア創作部勉強会「オブジェクト指向入門1」
デジタルメディア創作部勉強会「オブジェクト指向入門1」
 
06 オブジェクト指向の基礎
06 オブジェクト指向の基礎06 オブジェクト指向の基礎
06 オブジェクト指向の基礎
 
オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門オブジェクト指向プログラミング再入門
オブジェクト指向プログラミング再入門
 
バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-
 
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
第8回勉強会 開発プロセス 「計画ゲーム~ふりかえり」
 

Similar a Phpではじめるオブジェクト指向(公開用)

Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころJunya Hayashi
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計Tadayoshi Sato
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)Takuya Kawabe
 
Flutterを体験してみませんか
Flutterを体験してみませんかFlutterを体験してみませんか
Flutterを体験してみませんかcch-robo
 
ディレクターのキャリア・パス ~職能マップになぞらえて~
ディレクターのキャリア・パス ~職能マップになぞらえて~ディレクターのキャリア・パス ~職能マップになぞらえて~
ディレクターのキャリア・パス ~職能マップになぞらえて~Renji Yoneda
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternAtsushi Kambara
 
次世代DaoフレームワークDoma
次世代DaoフレームワークDoma次世代DaoフレームワークDoma
次世代DaoフレームワークDomaToshihiro Nakamura
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio CodeAkira Inoue
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行gree_tech
 
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用masashi takehara
 
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)Koichiro Matsuoka
 
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)Masayuki Abe
 
名前重要 超重要
名前重要 超重要名前重要 超重要
名前重要 超重要baban ba-n
 
.NETの自作ツール公開手段
.NETの自作ツール公開手段.NETの自作ツール公開手段
.NETの自作ツール公開手段Pierre3 小林
 
デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)和明 斎藤
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介Shinya Okano
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するTakahito Tejima
 
ウェブから情報をあつめる
ウェブから情報をあつめるウェブから情報をあつめる
ウェブから情報をあつめるShuhei Iitsuka
 

Similar a Phpではじめるオブジェクト指向(公開用) (20)

Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
 
C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)C#実装から見るDDD(ドメイン駆動設計)
C#実装から見るDDD(ドメイン駆動設計)
 
Flutterを体験してみませんか
Flutterを体験してみませんかFlutterを体験してみませんか
Flutterを体験してみませんか
 
ディレクターのキャリア・パス ~職能マップになぞらえて~
ディレクターのキャリア・パス ~職能マップになぞらえて~ディレクターのキャリア・パス ~職能マップになぞらえて~
ディレクターのキャリア・パス ~職能マップになぞらえて~
 
Application Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD PatternApplication Architecture for Enterprise Win Store Apps with DDD Pattern
Application Architecture for Enterprise Win Store Apps with DDD Pattern
 
IDEALIZE YOU
IDEALIZE YOUIDEALIZE YOU
IDEALIZE YOU
 
AndroidでDIxAOP
AndroidでDIxAOPAndroidでDIxAOP
AndroidでDIxAOP
 
次世代DaoフレームワークDoma
次世代DaoフレームワークDoma次世代DaoフレームワークDoma
次世代DaoフレームワークDoma
 
TypeScript と Visual Studio Code
TypeScript と Visual Studio CodeTypeScript と Visual Studio Code
TypeScript と Visual Studio Code
 
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
コードの自動修正によって実現する、機能開発を止めないフレームワーク移行
 
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用
[ESM_CM セミナー]小さく作って大いに役立つスマートフォンアプリ(CYCLONE)公開用
 
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
境界付けられたコンテキスト 概念編 (ドメイン駆動設計用語解説シリーズ)
 
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
Material DesignをPolymerで表現しよう(神戸ITフェスティバル × HTML5fun@神戸)
 
名前重要 超重要
名前重要 超重要名前重要 超重要
名前重要 超重要
 
.NETの自作ツール公開手段
.NETの自作ツール公開手段.NETの自作ツール公開手段
.NETの自作ツール公開手段
 
デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)デザインパターン(初歩的な7パターン)
デザインパターン(初歩的な7パターン)
 
Djangoフレームワークの紹介
Djangoフレームワークの紹介Djangoフレームワークの紹介
Djangoフレームワークの紹介
 
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築するピクサー USD 入門 新たなコンテンツパイプラインを構築する
ピクサー USD 入門 新たなコンテンツパイプラインを構築する
 
ウェブから情報をあつめる
ウェブから情報をあつめるウェブから情報をあつめる
ウェブから情報をあつめる
 

Más de VOYAGE GROUP

AWS SDK for Go in #jawsmeguro
AWS SDK for Go in #jawsmeguroAWS SDK for Go in #jawsmeguro
AWS SDK for Go in #jawsmeguroVOYAGE GROUP
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysVOYAGE GROUP
 
JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)VOYAGE GROUP
 
JSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めようJSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めようVOYAGE GROUP
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会VOYAGE GROUP
 
[20140625]wwdc2014 feedback
[20140625]wwdc2014 feedback[20140625]wwdc2014 feedback
[20140625]wwdc2014 feedbackVOYAGE GROUP
 
Google playでのリワードアプリリジェクトからの今後のマネタイズ手段について インタースティシャル広告×クロスプロモーション-
Google playでのリワードアプリリジェクトからの今後のマネタイズ手段について インタースティシャル広告×クロスプロモーション-Google playでのリワードアプリリジェクトからの今後のマネタイズ手段について インタースティシャル広告×クロスプロモーション-
Google playでのリワードアプリリジェクトからの今後のマネタイズ手段について インタースティシャル広告×クロスプロモーション-VOYAGE GROUP
 
事業内デザイナーのミッション(公開版) genesix 藤井幹大
事業内デザイナーのミッション(公開版) genesix 藤井幹大事業内デザイナーのミッション(公開版) genesix 藤井幹大
事業内デザイナーのミッション(公開版) genesix 藤井幹大VOYAGE GROUP
 
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakataVOYAGE GROUP
 
セミナープレゼン資料【Adingo】 20130529 
セミナープレゼン資料【Adingo】 20130529 セミナープレゼン資料【Adingo】 20130529 
セミナープレゼン資料【Adingo】 20130529 VOYAGE GROUP
 
セミナープレゼン資料【Adingo】 20130530 
セミナープレゼン資料【Adingo】 20130530 セミナープレゼン資料【Adingo】 20130530 
セミナープレゼン資料【Adingo】 20130530 VOYAGE GROUP
 
Abテストノススメ
AbテストノススメAbテストノススメ
AbテストノススメVOYAGE GROUP
 
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップiPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップVOYAGE GROUP
 
【発表用】Lpoワークショップ~組織でサイト改善をする方法~
【発表用】Lpoワークショップ~組織でサイト改善をする方法~【発表用】Lpoワークショップ~組織でサイト改善をする方法~
【発表用】Lpoワークショップ~組織でサイト改善をする方法~VOYAGE GROUP
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築VOYAGE GROUP
 
Androidにおけるテストに関して〜デバイスをどう選択するか〜
Androidにおけるテストに関して〜デバイスをどう選択するか〜Androidにおけるテストに関して〜デバイスをどう選択するか〜
Androidにおけるテストに関して〜デバイスをどう選択するか〜VOYAGE GROUP
 
スマホ無料アプリのマネタイズについて【Adingo】
スマホ無料アプリのマネタイズについて【Adingo】スマホ無料アプリのマネタイズについて【Adingo】
スマホ無料アプリのマネタイズについて【Adingo】VOYAGE GROUP
 
最新のマーケットアルゴリズムと、 アルゴリズムを踏まえてのプロモーション
最新のマーケットアルゴリズムと、 アルゴリズムを踏まえてのプロモーション最新のマーケットアルゴリズムと、 アルゴリズムを踏まえてのプロモーション
最新のマーケットアルゴリズムと、 アルゴリズムを踏まえてのプロモーションVOYAGE GROUP
 
【発表用】ウェブアナリスト養成講座「Lpoとabテスト」
【発表用】ウェブアナリスト養成講座「Lpoとabテスト」【発表用】ウェブアナリスト養成講座「Lpoとabテスト」
【発表用】ウェブアナリスト養成講座「Lpoとabテスト」VOYAGE GROUP
 
ゴールから始めよう!
ゴールから始めよう!ゴールから始めよう!
ゴールから始めよう!VOYAGE GROUP
 

Más de VOYAGE GROUP (20)

AWS SDK for Go in #jawsmeguro
AWS SDK for Go in #jawsmeguroAWS SDK for Go in #jawsmeguro
AWS SDK for Go in #jawsmeguro
 
Data Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdaysData Engineering at VOYAGE GROUP #jawsdays
Data Engineering at VOYAGE GROUP #jawsdays
 
JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)JavaScriptトレンド総括(2014)
JavaScriptトレンド総括(2014)
 
JSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めようJSON Schema で Web API のスキマを埋めよう
JSON Schema で Web API のスキマを埋めよう
 
Flux react現状確認会
Flux react現状確認会Flux react現状確認会
Flux react現状確認会
 
[20140625]wwdc2014 feedback
[20140625]wwdc2014 feedback[20140625]wwdc2014 feedback
[20140625]wwdc2014 feedback
 
Google playでのリワードアプリリジェクトからの今後のマネタイズ手段について インタースティシャル広告×クロスプロモーション-
Google playでのリワードアプリリジェクトからの今後のマネタイズ手段について インタースティシャル広告×クロスプロモーション-Google playでのリワードアプリリジェクトからの今後のマネタイズ手段について インタースティシャル広告×クロスプロモーション-
Google playでのリワードアプリリジェクトからの今後のマネタイズ手段について インタースティシャル広告×クロスプロモーション-
 
事業内デザイナーのミッション(公開版) genesix 藤井幹大
事業内デザイナーのミッション(公開版) genesix 藤井幹大事業内デザイナーのミッション(公開版) genesix 藤井幹大
事業内デザイナーのミッション(公開版) genesix 藤井幹大
 
[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata[20130624]最近の開発環境について話してみる sakata
[20130624]最近の開発環境について話してみる sakata
 
セミナープレゼン資料【Adingo】 20130529 
セミナープレゼン資料【Adingo】 20130529 セミナープレゼン資料【Adingo】 20130529 
セミナープレゼン資料【Adingo】 20130529 
 
セミナープレゼン資料【Adingo】 20130530 
セミナープレゼン資料【Adingo】 20130530 セミナープレゼン資料【Adingo】 20130530 
セミナープレゼン資料【Adingo】 20130530 
 
Abテストノススメ
AbテストノススメAbテストノススメ
Abテストノススメ
 
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップiPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
iPhoneアプリ「トリセツ」にて実践したリーンスタートアップ
 
【発表用】Lpoワークショップ~組織でサイト改善をする方法~
【発表用】Lpoワークショップ~組織でサイト改善をする方法~【発表用】Lpoワークショップ~組織でサイト改善をする方法~
【発表用】Lpoワークショップ~組織でサイト改善をする方法~
 
Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築Jenkinsとhadoopを利用した継続的データ解析環境の構築
Jenkinsとhadoopを利用した継続的データ解析環境の構築
 
Androidにおけるテストに関して〜デバイスをどう選択するか〜
Androidにおけるテストに関して〜デバイスをどう選択するか〜Androidにおけるテストに関して〜デバイスをどう選択するか〜
Androidにおけるテストに関して〜デバイスをどう選択するか〜
 
スマホ無料アプリのマネタイズについて【Adingo】
スマホ無料アプリのマネタイズについて【Adingo】スマホ無料アプリのマネタイズについて【Adingo】
スマホ無料アプリのマネタイズについて【Adingo】
 
最新のマーケットアルゴリズムと、 アルゴリズムを踏まえてのプロモーション
最新のマーケットアルゴリズムと、 アルゴリズムを踏まえてのプロモーション最新のマーケットアルゴリズムと、 アルゴリズムを踏まえてのプロモーション
最新のマーケットアルゴリズムと、 アルゴリズムを踏まえてのプロモーション
 
【発表用】ウェブアナリスト養成講座「Lpoとabテスト」
【発表用】ウェブアナリスト養成講座「Lpoとabテスト」【発表用】ウェブアナリスト養成講座「Lpoとabテスト」
【発表用】ウェブアナリスト養成講座「Lpoとabテスト」
 
ゴールから始めよう!
ゴールから始めよう!ゴールから始めよう!
ゴールから始めよう!
 

Último

20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdfssuser80a51f
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ 株式会社
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipYasuyoshi Minehisa
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)KayaSuetake1
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチユニパー株式会社
 
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfmasakisaito12
 

Último (6)

20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf20240427 zaim academy counseling lesson .pdf
20240427 zaim academy counseling lesson .pdf
 
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
シンフォニティ株式会社(SYMPHONITY , Inc.) 会社説明・人材採用資料
 
Service-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadershipService-introduction-materials-misorae-leadership
Service-introduction-materials-misorae-leadership
 
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
202405_VISIONARYJAPAN_engineerteam_entrancebook(ver2.1)
 
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチUP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
UP103シリーズ パワーコメット ユニパー スライドレールタイプ 瓦揚げ機 ウインチ
 
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdfストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
ストックマーク株式会社がご提供しているAnews(エーニュース)概要紹介.pdf
 

Phpではじめるオブジェクト指向(公開用)