読者です 読者をやめる 読者になる 読者になる

Symfony2によるWebアプリケーション開発入門 2日間コースを受講してきました。

11月30日(金)、12月1日(土)の二日間で、 PHPメンターズトレーニングセミナー「Symfony2によるWebアプリケーション開発入門 2日間コース」を受講してきました。


場所は渋谷の株式会社VOYAGE GROUPの会議室アフリカ。
噂に聞いていたAJITOも見てきましたw お茶とか色々無料♪


PC持ち込み、事前に環境を作っておいてということで、MBAをセッティング。
Apache 2.2系の最新版MySQL 5.1系の最新版Symfony 2.1系の最新版 (Symfony Standard Edition)Eclipse Classic 3.8 + PDT
Symfonyについては、ウェルカムページが表示できるところまで。ということで参考にさせていただいたのが下記ページ
macにsymfony2をインストールする


メインはSymfony2というより、ドメイン駆動設計という思想に向き合うということであるような感じでした。
以下セミナー終了後に読んだ下記サイトを参考にさせていただきました。
ドメイン駆動設計入門 - Digital Romanticism
ドメイン駆動設計 実践ガイド
ドメイン駆動設計:4つのアンチパターン
DDD難民に捧げる Domain-Driven Designのエッセンス
ドメインとは?
=アプリケーションが対象とする業務領域
モデルとは?
=ユーザの頭の中にある知識/メンタルモデルを写しとるもの。
メンタルモデルを構成する概念をクラスとして表現することで、メンタルモデルをコンピュータの中に写し取るために登場するのが、オブジェクト指向というパラダイム
ドメインモデルとは?
=「ドメイン」についての「モデル」。


ドメイン駆動設計とはドメインモデルを中心にすえた設計思想で、要点としては

  • ドメインモデルは、ドメイン知識(関係者のメンタルモデルを分析・抽象化、簡素化)を深めながら反復的(iterative)に反映させる
  • ドメインモデルが、開発者とドメイン知識をもつ人(ユーザ、専門家等)との間の共通言語(ユビキタス言語の創造)となるようにする
  • ドメインモデルと実装コードとがきちんと対応付けられるようにする


そして、それを実現するためのレイヤ型アーキテクチャ("Layered Architecture")の提唱。
※重要なのは、ドメインモデルのための空間を「ドメインレイヤ」として他のレイヤから分離するということ。
また、先人の汎用的な知見を大切にする(巨人の肩の上に立つ)。


うーん、まだまだ深く、実際本を読んで、これから自分で試行錯誤していく経験を経て、あぁこういうことだったのかと思えるようがんばりたいと思う次第でありますw


PHPメンターズトレーニングセミナー「Symfony2によるWebアプリケーション開発入門 2日間コース」開催のご案内


エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)

エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践)