Suche senden
Hochladen
Software Development with Symfony
•
2 gefällt mir
•
1,154 views
Atsuhiro Kubo
Folgen
Technologie
Melden
Teilen
Melden
Teilen
1 von 36
Jetzt herunterladen
Downloaden Sie, um offline zu lesen
Empfohlen
Symfony2 introduction
Symfony2 introduction
Hidenori Goto
SQuBOK特別講演2015年2月「SQuBOK V2設計開発領域について」
SQuBOK特別講演2015年2月「SQuBOK V2設計開発領域について」
Hironori Washizaki
我々がなすべき学習支援とはなにか?
我々がなすべき学習支援とはなにか?
Yuji Nonaka
CVPR2013の論文紹介(車載カメラ関連)
CVPR2013の論文紹介(車載カメラ関連)
Ken Sakurada
Informacja wyprawka szkolna
Informacja wyprawka szkolna
Aga Szajda
エクストリームプログラミングの現場から
エクストリームプログラミングの現場から
Fumihiko Kinoshita
アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Fumihiko Kinoshita
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
Empfohlen
Symfony2 introduction
Symfony2 introduction
Hidenori Goto
SQuBOK特別講演2015年2月「SQuBOK V2設計開発領域について」
SQuBOK特別講演2015年2月「SQuBOK V2設計開発領域について」
Hironori Washizaki
我々がなすべき学習支援とはなにか?
我々がなすべき学習支援とはなにか?
Yuji Nonaka
CVPR2013の論文紹介(車載カメラ関連)
CVPR2013の論文紹介(車載カメラ関連)
Ken Sakurada
Informacja wyprawka szkolna
Informacja wyprawka szkolna
Aga Szajda
エクストリームプログラミングの現場から
エクストリームプログラミングの現場から
Fumihiko Kinoshita
アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
アート・オブ・アジャイル デベロップメント 〜テストが駆動するビジネス価値〜
Fumihiko Kinoshita
Symfony2でより良いソフトウェアを作るために
Symfony2でより良いソフトウェアを作るために
Atsuhiro Kubo
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
PHPフレームワーク入門
PHPフレームワーク入門
Sho A
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Mikiya Okuno
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Kazumi IWANAGA
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
増田 亨
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
Naoki (Neo) SATO
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
BPStudy20121221
BPStudy20121221
Shinichiro Takezaki
CodeIgniter入門
CodeIgniter入門
Sho A
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
Mitsuru Katoh
Jubatusでマルウェア分類
Jubatusでマルウェア分類
Shuzo Kashihara
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
Tomoharu ASAMI
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!
Kazumi IWANAGA
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino
MPD Osaka Extra 5
MPD Osaka Extra 5
Atsuhiro Kubo
Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on MPD Osaka Extra 1
Atsuhiro Kubo
Weitere ähnliche Inhalte
Ähnlich wie Software Development with Symfony
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
PHPフレームワーク入門
PHPフレームワーク入門
Sho A
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Mikiya Okuno
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Kazumi IWANAGA
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
増田 亨
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
増田 亨
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
Naoki (Neo) SATO
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
Akira Inoue
BPStudy20121221
BPStudy20121221
Shinichiro Takezaki
CodeIgniter入門
CodeIgniter入門
Sho A
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
Mitsuru Katoh
Jubatusでマルウェア分類
Jubatusでマルウェア分類
Shuzo Kashihara
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
Tomoharu ASAMI
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Akira Inoue
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Akira Inoue
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!
Kazumi IWANAGA
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
Tomoharu ASAMI
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino
Ähnlich wie Software Development with Symfony
(20)
ドメインロジックの実装方法とドメイン駆動設計
ドメインロジックの実装方法とドメイン駆動設計
PHPフレームワーク入門
PHPフレームワーク入門
DTraceによるMySQL解析ことはじめ
DTraceによるMySQL解析ことはじめ
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
DDD 20121106 SEA Forum November
DDD 20121106 SEA Forum November
ドメイン駆動設計という仕事の流儀
ドメイン駆動設計という仕事の流儀
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
[ウェビナー] Build 2018 アップデート ~ データ プラットフォーム/IoT編 ~
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
BPStudy20121221
BPStudy20121221
CodeIgniter入門
CodeIgniter入門
XPages 開発 Tips 百連発
XPages 開発 Tips 百連発
Jubatusでマルウェア分類
Jubatusでマルウェア分類
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
Isomorphic web development with scala and scala.js
Isomorphic web development with scala and scala.js
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
TypeScript ファーストステップ ~ Any browser. Any host. Any OS. Open Source. ~
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
Featuring Project Silk & Liike: 楽しい "モダン" Web 開発のちょっとディープなお話
ARMテンプレートでサーバーレスに挑む!
ARMテンプレートでサーバーレスに挑む!
DSL駆動によるクラウド・アプリケーション開発
DSL駆動によるクラウド・アプリケーション開発
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Mehr von Atsuhiro Kubo
MPD Osaka Extra 5
MPD Osaka Extra 5
Atsuhiro Kubo
Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on MPD Osaka Extra 1
Atsuhiro Kubo
Enaction, Not Design on Symfony Meetup Kansai 2
Enaction, Not Design on Symfony Meetup Kansai 2
Atsuhiro Kubo
The Birth of FormalBears - A new META for BEAR.Sunday applications
The Birth of FormalBears - A new META for BEAR.Sunday applications
Atsuhiro Kubo
Lean Architecture / DCI Evening Report
Lean Architecture / DCI Evening Report
Atsuhiro Kubo
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
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
ジェネレーティブプログラミングの世界
ジェネレーティブプログラミングの世界
Atsuhiro Kubo
意図を表現するプログラミング
意図を表現するプログラミング
Atsuhiro Kubo
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
Introduction to Continuous Testing
Introduction to Continuous Testing
Atsuhiro Kubo
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Atsuhiro Kubo
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
Atsuhiro Kubo
How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHP
Atsuhiro Kubo
Piece Framework 2.0 Background
Piece Framework 2.0 Background
Atsuhiro Kubo
Mehr von Atsuhiro Kubo
(17)
MPD Osaka Extra 5
MPD Osaka Extra 5
Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on MPD Osaka Extra 1
Enaction, Not Design on Symfony Meetup Kansai 2
Enaction, Not Design on Symfony Meetup Kansai 2
The Birth of FormalBears - A new META for BEAR.Sunday applications
The Birth of FormalBears - A new META for BEAR.Sunday applications
Lean Architecture / DCI Evening Report
Lean Architecture / DCI Evening Report
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...
ジェネレーティブプログラミングの世界
ジェネレーティブプログラミングの世界
意図を表現するプログラミング
意図を表現するプログラミング
Introduction to Continuous Test Runner MakeGood
Introduction to Continuous Test Runner MakeGood
Getting Started with Testing using PHPUnit
Getting Started with Testing using PHPUnit
Introduction to Continuous Testing
Introduction to Continuous Testing
MakeGoodで快適なテスト駆動開発を
MakeGoodで快適なテスト駆動開発を
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGoodによるPHPコードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
Eclipse PDT + MakeGood による PHP コードのテスト
How To Create Custom DSLs By PHP
How To Create Custom DSLs By PHP
Piece Framework 2.0 Background
Piece Framework 2.0 Background
Kürzlich hochgeladen
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Hiroshi Tomioka
Kürzlich hochgeladen
(11)
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Software Development with Symfony
1.
2012/4/7 第 3
回 関西 PHP 勉強会 Symfony による ソフトウェア開発入門 PHP メンターズ 久保敦啓 (KUBO Atsuhiro)
2.
久保敦啓 (KUBO Atsuhiro) ●
株式会社アイテマン 代表取締役 ● Piece Project プロジェクトリード ● PHP メンターズ ● Twitter @iteman
3.
Piece Framework ●
PHP フレームワーク、ツール ● オープンソースソフトウェア ● Piece Project 開発者募集中 スポンサー募集中
4.
Piece Framework ●
Twitter @piece_framework ● ソースコード https://github.com/piece ● Web サイト http://piece-framework.com/
5.
PHP メンターズ ●
Twitter @phpmentors ● ソースコード https://github.com/phpmentors-jp ● Web サイト・ブログ http://phpmentors.jp/ ● 有償トレーニングサービス始めました。
6.
良いソフトウェアとは?
7.
“ ソフトウェアの核心は、ドメイ ンに関係した問題をユーザのた めに解決する能力である。” — エリック・エヴァンスのドメイン駆動設計
8.
巨人の肩の上に立つ
9.
例えば… ●
開発プロセス・方法論 ● アーキテクチャパターン・スタイル ● デザインパターン ● フレームワーク ● ライブラリ ● …
10.
アーキテクチャパターン・スタイル ●
モデル・ビュー・コントローラ ● レイヤ ● REST ● CQRS ● DCI ● …
11.
“ 使い方を機能として実装する” — パターン、
Wiki 、 XP
12.
ドメインとは?
13.
ドメインモデル
14.
レイヤーアーキテクチャとドメインモデル Presentation
Controllers Views Infrastructure Logging Domain Domain Objects Services Security Validation etc... Data Source ORM
15.
ドメイン駆動設計
16.
ドメイン駆動設計とは? ●
ドメインモデルは、ドメイン知識を深めながら反復 的( iterative )に深化させていく。 ● ドメインモデルは、開発者とドメイン知識をもつ人 (ユーザ、専門家等)との間の共通言語となるよう にする。 ● ドメインモデルは、実装コードときちんと対応付け られるようにする。 —Domain-Driven Design のエッセンス
17.
代表的なパターン ●
ユビキタス言語 ● モデル駆動設計 ● 実践的モデラー
18.
19.
Symfony の歴史
20.
21.
Symfony の特徴
22.
Symfony の特徴 ●
DI コンテナ ● コンフィギュレーション ● バンドル
23.
DI コンテナ
24.
DI コンテナ ●
Dependency Injection 依存関係逆転の原則 (DIP: The Dependency Inversion Principle) ● コンポーネント間の疎結合化 ● テスタビリティの向上 ● コンポーネント構成知識の集約 コンポーネント構成定義言語
25.
26.
DependencyInjection コンポーネント ●
複数の定義フォーマット YAML, XML, PHP ● 複数のインジェクション方法 コンストラクタ、セッター、フィールド ● ファクトリクラス・サービス ● タグによる拡張ポイント・拡張 ● コンパイル時の変形・最適化
27.
DI コンテナ定義の例 ... services:
piece_questetra.questetra_client: scope: prototype class: "%piece_questetra.questetra_client.class%" calls: - [ setRequestContext, [ "@piece_questetra.request_context" ] ] piece_questetra.request_context: class: "%piece_questetra.request_context.class%" arguments: - "%piece_questetra.context_root%" - "%piece_questetra.user_id%" - "%piece_questetra.password%"
28.
コンフィギュレーション
29.
コンフィギュレーション ●
問題空間の言語 実装コンポーネントの構造に影響を受けない ● ドメイン特化言語 DSL: Domain-Specific Language コンフィギュレーション DSL
30.
Configuration コンポーネント ●
グラマー言語 (PHP) による文法定義 ● 複数の保存フォーマット YAML, XML, PHP ● DependencyInjection コンポーネントとの統合 DI エクステンション毎のスロット ● 複数回の読み込み 例)構成ファイルとコマンドライン引数のマージ
31.
文法定義の例 $treeBuilder->root('piece_questetra')
->children() ... ->arrayNode('authentication') ->isRequired() ->children() ->scalarNode('user_id') ->isRequired() ->cannotBeEmpty() ->end() ->scalarNode('password') ->isRequired() ->cannotBeEmpty() ->end() ->end() ->end() ->end();
32.
構成定義の例 piece_questetra: context_root:
"%piece_questetra.context_root%" authentication: user_id: "%piece_questetra.user_id%" password: "%piece_questetra.password%"
33.
コンフィギュレーションから DI コンテナへの変換
34.
バンドル
35.
バンドル ●
Symfony におけるモジュール(パッケージ) ● 粗粒度の機能(フィーチャー)の提供単位 Web フレームワーク (FrameworkBundle) Web アプリケーション ● DI コンテナ定義、コンフィギュレーション、 クラス、 Web リソース等を束ねたもの
36.
参考 ●
エリック・エヴァンス「エリック・エヴァンスのドメイン駆動設計」、翔 泳社、 2011 年。 ● 江渡 浩一郎「パターン、 Wiki 、 XP ~ 時を超えた創造の原則」、技術評論 社、 2009 年。 ● クシシュトフ・チャルネッキ、ウールリシュ・ W ・アイセンアッカ「ジェ ネレーティブプログラミング」、翔泳社、 2008 年。
Jetzt herunterladen