Submit Search
Symfony2でより良いソフトウェアを作るために
12 likes
9,600 views
Atsuhiro Kubo
1 of 40
Download now
Downloaded 47 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
More Related Content
PDF
PHP勉強会 #51
Takako Miyagawa
PDF
CodeIgniter入門
Sho A
PDF
はじめてのCodeIgniter
Yuya Matsushima
PDF
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
PDF
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
PDF
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
KEY
FuelPHPをさわってみて
Sotaro Omura
PDF
10分でわかるFuelPHP @ 2011/12
kenjis
PHP勉強会 #51
Takako Miyagawa
CodeIgniter入門
Sho A
はじめてのCodeIgniter
Yuya Matsushima
WTM53 phpフレームワーク いまさらcodeigniter
Masanori Oobayashi
15分でCakePHPを始める方法(Nseg 2013-11-09 )
hiro345
FuelPHP Osu Nagoya vol.1
Fumito Mizuno
FuelPHPをさわってみて
Sotaro Omura
10分でわかるFuelPHP @ 2011/12
kenjis
What's hot
(20)
PDF
実"戦"CakePHP Plugin
Kenichirou Oyama
PDF
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
PDF
Phpstudy44 Zend Frameworkが抱えている問題は多い。
sasezaki
PDF
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
PDF
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
PPTX
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
SEGADevTech
PPTX
php-src の歩き方
do_aki
KEY
EC-CUBEプラグイン講義
ria1201
PDF
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
PPTX
.NET Compiler Platform
信之 岩永
PDF
Behatで行う、E2Eテスト入門
leverages_event
PDF
Ansible2.9 ネットワーク対応のアップデート #ansiblejp
akira6592
PDF
はじめての FuelPHP
Sho A
ODP
PHP Conference Japan 2010 : Zend Framewrok
sasezaki
PDF
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
PPTX
PHP AST 徹底解説
do_aki
PDF
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
PDF
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
bitter_fox
PDF
phpcon2013_zf
sasezaki
PDF
PHPの今とこれから2021
Rui Hirokawa
実"戦"CakePHP Plugin
Kenichirou Oyama
10分でわかるFuelPHP @ 2012/05 OSC2012 Nagoya
kenjis
Phpstudy44 Zend Frameworkが抱えている問題は多い。
sasezaki
.htaccessによるリダイレクト徹底解説
Cherry Pie Web
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
CEDEC2021 ダウンロード時間を大幅減!~大量のアセットをさばく高速な実装と運用事例の共有~
SEGADevTech
php-src の歩き方
do_aki
EC-CUBEプラグイン講義
ria1201
10分でわかるFuelPHP @ 2013/04 FuelPHP入門ハンズオン vol.1
kenjis
.NET Compiler Platform
信之 岩永
Behatで行う、E2Eテスト入門
leverages_event
Ansible2.9 ネットワーク対応のアップデート #ansiblejp
akira6592
はじめての FuelPHP
Sho A
PHP Conference Japan 2010 : Zend Framewrok
sasezaki
【SQLインジェクション対策】徳丸先生に怒られない、動的SQLの安全な組み立て方
kwatch
PHP AST 徹底解説
do_aki
Ec cube開発合宿 プラグインセミナー
Ayumu Kawaguchi
Introduction to JShell: the Java REPL Tool #jjug_ccc #ccc_ab4
bitter_fox
phpcon2013_zf
sasezaki
PHPの今とこれから2021
Rui Hirokawa
Ad
Viewers also liked
(20)
PDF
Symfony2 Behat/BDD (#Symfony2study 4)
Hidenori Goto
KEY
Silex 入門
Masao Maeda
PPTX
第4回Symfony2勉強会 基礎編ワークショップ.1
Yusuke Ueno
PPTX
第4回Symfony2勉強会 基礎編ワークショップ.0
Yusuke Ueno
KEY
Symfony2のフォームフレームワーク
Katsuhiro Ogawa
PDF
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hidenori Goto
PDF
はじめてのSymfony2
Tomohiro MITSUMUNE
PDF
Symfony2でMongoDBと仲良くする方法
Koji Iwazaki
PDF
Twigエクステンションの作り方
Katsuhiro Ogawa
KEY
フラットなPHPからフレームワークへ
VOYAGE GROUP
PDF
オレオレSecurityバンドル作っちゃいました
Katsuhiro Ogawa
PDF
Symfony勉強会#9 form
Yuichi Okada
PPT
Dependency management in PHP & ZendFramework 2
Kirill Chebunin
PDF
CakePHP Console Application 拡張Tips
Kenichirou Oyama
PDF
Yet another use of Phalcon
Yuji Iwai
PPT
PHP buildpackでhackとphalconが動いた件について
健治郎 安井
PPTX
受託開発のPhalcon
Masatoshi Hiraoka
PPTX
3流プログラマーから見たPhalconとWISP
YamaYamamoto
PDF
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
PPTX
Phalcon勉強会資料
Yuji Otani
Symfony2 Behat/BDD (#Symfony2study 4)
Hidenori Goto
Silex 入門
Masao Maeda
第4回Symfony2勉強会 基礎編ワークショップ.1
Yusuke Ueno
第4回Symfony2勉強会 基礎編ワークショップ.0
Yusuke Ueno
Symfony2のフォームフレームワーク
Katsuhiro Ogawa
Symfony2 チュートリアル イントロダクション osc 2011 nagoya
Hidenori Goto
はじめてのSymfony2
Tomohiro MITSUMUNE
Symfony2でMongoDBと仲良くする方法
Koji Iwazaki
Twigエクステンションの作り方
Katsuhiro Ogawa
フラットなPHPからフレームワークへ
VOYAGE GROUP
オレオレSecurityバンドル作っちゃいました
Katsuhiro Ogawa
Symfony勉強会#9 form
Yuichi Okada
Dependency management in PHP & ZendFramework 2
Kirill Chebunin
CakePHP Console Application 拡張Tips
Kenichirou Oyama
Yet another use of Phalcon
Yuji Iwai
PHP buildpackでhackとphalconが動いた件について
健治郎 安井
受託開発のPhalcon
Masatoshi Hiraoka
3流プログラマーから見たPhalconとWISP
YamaYamamoto
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
Kousuke Ebihara
Phalcon勉強会資料
Yuji Otani
Ad
Similar to Symfony2でより良いソフトウェアを作るために
(20)
PDF
Software Development with Symfony
Atsuhiro Kubo
PDF
BPStudy20121221
Shinichiro Takezaki
PPT
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
PDF
ドメイン駆動設計という仕事の流儀
増田 亨
PDF
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
Tomoharu ASAMI
PPTX
Dot netcore multiplatform 2
shozon
PPTX
Moot2013 moca ver0.3
科 黄
PDF
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
PPTX
Cld018 コンテナ go_~あなた
Tech Summit 2016
PDF
Cld018 コンテナ go_~あなた
Tech Summit 2016
PDF
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Daizen Ikehara
PDF
Google Compute EngineとPipe API
maruyama097
PDF
Google Compute EngineとGAE Pipeline API
maruyama097
PDF
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Akira Inoue
PPTX
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
PDF
DDD 20121106 SEA Forum November
増田 亨
PPT
20010127
小野 修司
PDF
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
Takakiyo Tanaka
PDF
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Akira Inoue
PDF
RWC2012(ワコムアイティ&テクノプロジェクト)
Techno Project Co., Ltd.
Software Development with Symfony
Atsuhiro Kubo
BPStudy20121221
Shinichiro Takezaki
ドメインロジックの実装方法とドメイン駆動設計
Tadayoshi Sato
ドメイン駆動設計という仕事の流儀
増田 亨
設計/ドメイン設計(3) 【クラウドアプリケーションのためのオブジェクト指向分析設計講座 第25回】
Tomoharu ASAMI
Dot netcore multiplatform 2
shozon
Moot2013 moca ver0.3
科 黄
Object-Functional Analysis and Design : 次世代モデリングパラダイムへの道標
Tomoharu ASAMI
Cld018 コンテナ go_~あなた
Tech Summit 2016
Cld018 コンテナ go_~あなた
Tech Summit 2016
Net advantage 2012 volume2 最新情報 xaml プラットフォーム編
Daizen Ikehara
Google Compute EngineとPipe API
maruyama097
Google Compute EngineとGAE Pipeline API
maruyama097
Cloud から IoT まで、なんでもおまかせ ~ .NET 5 正式リリース!
Akira Inoue
Cloudstack user group meeting in osaka
Naotaka Jay HOTTA
DDD 20121106 SEA Forum November
増田 亨
20010127
小野 修司
夏サミ2014 クラウドとCIツールで変わるエンタープライズJava開発
Takakiyo Tanaka
Linux & Mac OS でも動く! ~ オープンソース & クロスプラットフォーム .NET の歩き方 ~
Akira Inoue
RWC2012(ワコムアイティ&テクノプロジェクト)
Techno Project Co., Ltd.
More from Atsuhiro Kubo
(17)
PDF
MPD Osaka Extra 5
Atsuhiro Kubo
PDF
Enaction, Not Design on MPD Osaka Extra 1
Atsuhiro Kubo
PDF
Enaction, Not Design on Symfony Meetup Kansai 2
Atsuhiro Kubo
PDF
The Birth of FormalBears - A new META for BEAR.Sunday applications
Atsuhiro Kubo
PDF
Lean Architecture / DCI Evening Report
Atsuhiro Kubo
PDF
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Atsuhiro Kubo
PDF
Frameworks We Live By: Design by day-to-day framework development: Multi-para...
Atsuhiro Kubo
PDF
ジェネレーティブプログラミングの世界
Atsuhiro Kubo
PDF
意図を表現するプログラミング
Atsuhiro Kubo
PDF
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
PDF
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
PDF
Introduction to Continuous Testing
Atsuhiro Kubo
PDF
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
PDF
Eclipse PDT + MakeGoodによるPHPコードのテスト
Atsuhiro Kubo
PDF
Eclipse PDT + MakeGood による PHP コードのテスト
Atsuhiro Kubo
PDF
How To Create Custom DSLs By PHP
Atsuhiro Kubo
PDF
Piece Framework 2.0 Background
Atsuhiro Kubo
MPD Osaka Extra 5
Atsuhiro Kubo
Enaction, Not Design on MPD Osaka Extra 1
Atsuhiro Kubo
Enaction, Not Design on Symfony Meetup Kansai 2
Atsuhiro Kubo
The Birth of FormalBears - A new META for BEAR.Sunday applications
Atsuhiro Kubo
Lean Architecture / DCI Evening Report
Atsuhiro Kubo
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...
Atsuhiro Kubo
ジェネレーティブプログラミングの世界
Atsuhiro Kubo
意図を表現するプログラミング
Atsuhiro Kubo
Introduction to Continuous Test Runner MakeGood
Atsuhiro Kubo
Getting Started with Testing using PHPUnit
Atsuhiro Kubo
Introduction to Continuous Testing
Atsuhiro Kubo
MakeGoodで快適なテスト駆動開発を
Atsuhiro Kubo
Eclipse PDT + MakeGoodによるPHPコードのテスト
Atsuhiro Kubo
Eclipse PDT + MakeGood による PHP コードのテスト
Atsuhiro Kubo
How To Create Custom DSLs By PHP
Atsuhiro Kubo
Piece Framework 2.0 Background
Atsuhiro Kubo
Symfony2でより良いソフトウェアを作るために
1.
第 4 回
Symfony2 勉強会 Symfony2 で より良いソフトウェア を作るために 株式会社アイテマン 久保敦啓 @iteman
2.
3.
iteman
株式会社アイテマン 代表取締役 Piece Project プロジェクトリード Twitter @iteman
4.
Piece Framework
PHP のアプリケーションフレームワーク オープンソースソフトウェア New BSD License Eclipse Public License
5.
歴史
2005 Stagehand_TestRunner 2006 Piece_Unity, Piece_Flow 2009 MakeGood 2011 ???
6.
良いソフトウェアとは?
7.
“ ソフトウェアの核心は、 ドメインに関係した問題を ユーザのために解決する能 力である。” — エリック・エヴァンスのドメイン駆動設計
8.
Symfony2
9.
“Build your App,
not your Tools.” —The Symfony2 Book
10.
Symfony2 の特徴
バンドル コンフィギュレーション サービスコンテナ (DI コンテナ ) 機能テスト 独立したドメインオブジェクト etc...
11.
バンドル
モジュールシステムの構成単位 フィーチャの提供単位 クラス、コントローラ、 Web リソース等を 束ねたもの 外部のモジュールとの統合レイヤ セマンティックコンフィギュレーションの提供 他のバンドルの拡張の提供 自身のバンドルの拡張ポイントの提供
12.
バンドルの構成要素と依存関係 Bundle
Classes Controllers Web Resources Bundles Classes Other Resources
13.
バンドルの拡張
FrameworkBundle kernel.listener ... web_profiler.debug_toolbar assetic.request_listener WebProfilerBundle AsseticBundle
14.
既存のモジュールシステム
PEAR パッケージ Phar Debian パッケージ OSGi バンドル etc...
15.
バンドル設計の原則
高い凝集度と低い結合度 一般的なモジュール設計の原則 パッケージ設計の原則 — アジャイルソフトウェア開発の奥義 再利用・リリース等価の原則など 6 つの原則 ドメインの概念 — エリック・エヴァンスのドメイン駆動設計
16.
サービスコンテナ
Dependency Injection 依存関係逆転の原則 — アジャイルソフトウェア開発の奥義 コンポーネント間の疎結合化 テスタビリティの向上 コンポーネント構成知識の保存と可視化 軽量プログラミング言語における DI コンテナの価値
17.
依存関係の逆転 Client
Client Server Server Interface Server
18.
セマンティックコンフィギュレーション # app/config/config.yml framework: secret: xxxxxxxxxx charset: UTF8 error_handler: null form: true csrf_protection: true router: { resource: "%kernel.root_dir %/config/routing.yml" } # ...
19.
トランスフォーメーション Problem Space
Solution Space Parse Populate ---------- ---------- ---------- ---------- ------ Service Containers Semantic Service Configurations Definitions (YAML,XML,PHP) (Objects) ---------- ---------- Parse ---------- Service ---------- Container ------ Configurations (YAML,XML,PHP)
20.
ドメイン特化言語
DSL:Domain Specific Languages 問題空間の言語 ドメインに特化した記法を持つ言語 言語ワークベンチ コンフィグレーション DSL 式 DSL, グラフィカル DSL
21.
ドメイン特化言語の開発
コンフィギュレーション DSL YAML 式 DSL, グラフィカル DSL 言語ワークベンチ Lexer/Parser Generators
22.
機能テスト class HelloControllerTest extends WebTestCase { public function testIndex() { $client = $this>createClient(); $crawler = $client>request('GET', '/hello/Fabien'); $this>assertTrue($crawler >filter('html:contains("Hello Fabien")')>count() > 0); } }
23.
テストの対象
ユーザ側からみた Web アプリの機能 機能に対するユースケースの粒度 ルーティング ページフロー 入力・出力 バリデーション
24.
独立したドメインオブジェクト
Pure PHP オブジェクト バリデーションや OR マッピングから の高い独立性 フレームワークからの影響を極小化
25.
“Build your App,
not your Domain Models.” —iteman
27.
なぜフレームワーク
を使うのか?
28.
“ ソフトウェアの核心は、 ドメインに関係した問題を ユーザのために解決する能 力である。” — エリック・エヴァンスのドメイン駆動設計
29.
ドメイン駆動設計 DDD:DomainDriven Design
30.
“ ドメインモデルをソフトウェア 開発の中心にすえ、コードやコミュニ ケーションを常にドメインモデルと一 体化させながら、ドメインモデルを反 復的に深化させることでより価値の高い アプリケーションを生み出していこう とする考え方” —DomainDriven Design のエッセンス
31.
ドメイン駆動設計の要点
ドメインモデルは、ドメイン知識を深めなが ら反復的( iterative )に深化させていく ドメインモデルが、開発者とドメイン知識を もつ人(ユーザ、専門家等)との間の共通言 語となるようにする ドメインモデルと実装コードとがきちんと対 応付けられるようにする —DomainDriven Design のエッセンス
32.
代表的なパターン
ユビキタス言語 モデル駆動設計 ≠ オブジェクト指向 ドメイン特化言語 実践的モデラー
33.
ドメイン駆動設計を
実践するには?
34.
プロセス、技法、パラダイム
アジャイルプロセス (Scrum, XP, …) テスト駆動開発 (TDD:TestDriven Development) SOLID ビヘイビア駆動開発 (BDD:BehaviorDriven Development) リファクタリング
35.
SOLID
単一責任の原則 SRP:The Single Responsibility Principle オープン・クローズドの原則 OCP:The OpenClosed Principle リスコフの置換原則 LSP:The Liskov Substitution Principle インタフェース分離の原則 ISP:The Interface Segregation Principle 依存関係逆転の原則 DIP:The Dependency Inversion Principle
36.
プロセス、技法、パラダイム
オブジェクト指向プログラミング 関数プログラミング ジェネリックプログラミング アスペクト指向プログラミング メタプログラミング
37.
プロセス、技法、パラダイム
マルチパラダイムデザイン ジェネレーティブプログラミング プロダクトライン Software Factories インテンショナルプログラミング 言語指向プログラミング 言語ワークベンチ Lean Software Architecture
38.
プロセス、技法、パラダイム
レイヤ化アーキテクチャ モデル・ビュー・コントローラ DCI: Data, Context, and Interaction
39.
DDD+TDD= アメージング!
40.
参考
『エリック・エヴァンスのドメイン駆動設計 (IT Architects’Archive ソフトウェア開発の実践 ) 』、翔泳 社、 2011 年、 ISBN 9784798121963 [ 技術講座 ] DomainDriven Design のエッセンス 第 1 回、 http://www.ogis ri.co.jp/otc/hiroba/technical/DDDEssence/chap1.html 『アジャイルソフトウェア開発の奥義 第 2 版 オブジェクト指向開発の神 髄と匠の技』、ソフトバンククリエイティブ、 2008 年、 ISBN 978 4797347784 『ジェネレーティブプログラミング (IT Architects’Archive CLASSIC MODER) 』、翔泳社、 2008 年、 ISBN 9784798113319 The Symfony2 Book, http://symfony.com/doc/current/book/index.html
Download