Help us understand the problem. What is going on with this article?

Symfonyの学びかた (2014/04/19 講演資料)

More than 3 years have passed since last update.

Symfonyの学びかた (2014/04/19 講演資料)

by t_wada
1 / 34

2014/04/19 Symfony 勉強会 #9


自己紹介

t_wada


業界での立ち位置(?)

savannah


監修/監訳した本

プログラマが知るべき97のこと

SQLアンチパターン


プログラマとして

  • Symfony 歴は 2 年くらい(フルタイムではない)
  • Symfony1 時代はほぼ知らない
  • Java, Ruby, JavaScript, elisp, PHP
  • github 上では JavaScript プログラマ?
  • 代表作は power-assert

power-assert


Why Symfony?

  • なぜ Symfony を選んだか
  • 「コードがしっかりしている」
  • メンテ方針がしっかりしている(長期サポート, 後方互換性)
  • DIベースの疎結合設計で自分でアーキテクチャを進化させやすい
  • 中長期的な生産性が高まることを期待できる

Agenda

  • Background of Symfony
  • What is Symfony?
  • How to learn Symfony?

Symfony の背景


Symfony のバックグラウンド

Symfony には三つのバックグラウンドがある

  1. Web
  2. PHP
  3. OOP

Web ── URL, HTTP, HTML(JSON)

webtechbook


PHP

パーフェクトPHP


OOP: Object Oriented Programming

アジャイルソフトウェア開発の奥義 第2版


SOLID 原則

  • Single responsibility principle
    単一責任の原則(SRP)
  • Open/closed principle
    オープン・クローズドの原則(OCP)
  • Liskov substitution principle
    リスコフの置換原則(LSP)
  • Interface segregation principle
    インターフェイス分離の原則(ISP)
  • Dependency inversion principle
    依存関係逆転の原則(DIP)

Agenda

  • Background of Symfony
  • What is Symfony?
  • How to learn Symfony?

Symfony は何者なのか


Java プログラマから見た Symfony

  • ペロッ! これは……SSH!
  • Spring (or Seasar2)
  • SpringMVC (or Struts)
  • Hibernate
  • DI がアーキテクチャの基盤
  • とてもよく似ている
  • 勝手知ったる世界
  • もちろんデメリットも知っている
  • n周目の知見を生かせるか

Rails プログラマから見た Symfony

  • (Symfony1 から見た Symfony2 でもある)
  • 構造も思想も全く異なる(Symfony1は似ていた)
  • Rails に DI は無い
  • Rails は密結合の強力さ
  • Symfony は疎結合の柔軟さ
  • それでも似ているところ
  • フルスタックフレームワーク
  • RESTful, migration, asset pipeline

Symfony is NOT opinionated

  • Symfony にはレールが無い
  • (少なくともレールが無いように見える)
  • 押しが弱い
  • 短期的な生産性も低い
  • そのかわりなんでも乗せられる
  • なんでも共通化できる
  • DDD を突き詰めるも良し
  • シンプルなパラダイムに寄せるも良し

二つの顔


≠ MVC


本当にザックリ理解すると

httpkernel


もう少し倍率を上げると

symfony-request-flow


全体像を掴むためのオススメ資料

The Traveling Symfony Circus


Agenda

  • Background of Symfony
  • What is Symfony?
  • How to learn Symfony?

Symfony の学びかた


English!


Symfony の公式ドキュメント


Symfony 情報収集


Joind.in 便利


2大難関 Component

Form Component を知るなら

Security Component を知るなら


コードを読む

  • PhpStorm, IntelliJ IDEA 超強力
  • (個人的にはこれらが無いと PHP のコードリーディングができない)
  • Type hinting と indexing の使用感は、 Java で Eclipse を使う感じに近づいている
  • Symfony のコードはドキュメントがキッチリ書かれていてテストコードもあるので、適切な道具があれば読みやすい
  • デバッグパネルを見る
  • 自分でテストを書いて動かしてみる

シンプルな物から積み上げて学ぶ


ありがとうございました

今日話したこと

  • Background of Symfony
  • What is Symfony?
  • How to learn Symfony?
t_wada
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away