Slide 1

Slide 1 text

'SBNFXPSLೖ໳ givery  Inc.   ⼩小⽥田  崇之 2014/09/03

Slide 2

Slide 2 text

⾃自⼰己紹介 p ⼩小⽥田  崇之  (おだ  たかゆき)   p givery  Inc.  内定者   p 主にサーバーサイド担当   p 最近  Scala  を勉強中   p 猫が好きです   2014/09/03

Slide 3

Slide 3 text

今回の⽬目標 p フレームワークの意義を知る   p MVC  という考え⽅方を知る   p 実際に試してみる 2014/09/03

Slide 4

Slide 4 text

今回話す事 p なんで  Framework  が必要なのか?   p MVC  について   p FuelPHP  を使った実装 2014/09/03

Slide 5

Slide 5 text

今⽇日の内容:  Framework  ⼊入⾨門 p ⾃自⼰己紹介   p なぜ  Framework  は必要なのか?     p MVCについて   p 百聞は⼀一⾒見見にしかず   2014/09/03

Slide 6

Slide 6 text

今⽇日の内容:  Framework  ⼊入⾨門 p ⾃自⼰己紹介   p なぜ  Framework  は必要なのか?     p MVCについて   p 百聞は⼀一⾒見見にしかず   2014/09/03

Slide 7

Slide 7 text

そもそもフレームワークって? 2014/09/03

Slide 8

Slide 8 text

なんなん? 2014/09/03

Slide 9

Slide 9 text

フレームワークとは? p ⾻骨組み  /  枠組み   p 開発の効率率率をサポートしてくれる⼟土台   p サービスを作るのを楽にしてくれる   2014/09/03

Slide 10

Slide 10 text

ここで早速質問 p フレームワークってどんなのがある?   p 皆で調べてみよう!   2014/09/03

Slide 11

Slide 11 text

探して⾒見見つけたやつ 2014/09/03

Slide 12

Slide 12 text

 で,なんで必要なん? 2014/09/03

Slide 13

Slide 13 text

じゃぁベタのPHPについて考えよう 2014/09/03

Slide 14

Slide 14 text

プログラム書く時,   どんな事が⾯面倒に感じる? 2014/09/03

Slide 15

Slide 15 text

皆で考えてみよう! p どんな時に⾯面倒臭さを感じる?   n ⼀一⼈人で開発する時   n 複数⼈人で開発する時   2014/09/03

Slide 16

Slide 16 text

⼀一⼈人で開発する時 2014/09/03

Slide 17

Slide 17 text

SQL⽂文が兎に⾓角多い p INSERT  INTO  `users`  (`name`,  `mail`,   `phone`…   p SELECT  `id`,  `name`,  `price`,  …  FROM  `items`   …   p SELECT  `U`.`id`,  `U`.`name`,  `O`.`price`,   `O`.`purchased_at`  …FROM  `users`  AS  `U`   INNER  JOIN  `orders`  `O`  ON  `U`.`id`  =   `O`.`user_id`  WHERE  …   2014/09/03

Slide 18

Slide 18 text

全てのファイルで  require p  require  ‘lib/database.php’   p  require  ‘lib/database.php’   p  require  ‘lib/database.php’   p  require  ‘lib/database.php’   p  require  ‘lib/functions.php’   p  require  ‘lib/utils.php’   p  require  ‘../lib/database.php’   p  require  ‘../lib/database.php’   p  require  ‘../lib/functions.php’   p  require  ‘../../lib/database.php’   p  require  ‘../../lib/database.php’   p  require  ‘../lib/functions.php’   p  require  ‘../lib/database.php’   p  require  ‘lib/database.php’   p  require  ‘lib/utils.php’   p  require  ‘lib/database.php’   2014/09/03

Slide 19

Slide 19 text

⼊入り乱れるファイル p  index.php   p  add_items.php   p  edit_items.php   p  user_register.php   p  user_delete.php   p  admin_login.php   p  admin_edit_item.php   p  login.php   p  signout.php   p  ohmygod.php   p  database.php   p  holys__t.php   p  functions.php   p  utils.php   2014/09/03

Slide 20

Slide 20 text

複数⼈人で開発する時 2014/09/03

Slide 21

Slide 21 text

バラバラなファイル名 p  index.php   p  add_items.php   p  edit_items.php   p  user_register.php   p  user_delete.php   p  admin_login.php   p  admin_edit_item.php   p  login.php   p  signout.php   p  ohmygod.php   p  database.php   p  holys__t.php   p  functions.php   p  utils.php   2014/09/03

Slide 22

Slide 22 text

バラバラなコーディング p $flag   p $is_valid   p $isConfirmed   p $touroku_nichiji   p $last_update_date   p $registeredAt   p if  (!  $is_valid)  return   false   p if  (!  $is_valid)  {      return  false   }   p if  (!  $is_valid)     {      return  false   }   2014/09/03

Slide 23

Slide 23 text

対処法 p SQLが兎に⾓角多い   n SQLジェネレータってものがあります   n ORMラッパーのライブラリあります   •  Idiorm  &  Paris   p 全てのファイルで  require   n autoload  という仕組みがあります   n ⼀一つのファイルは  require  するけどそれで済む 2014/09/03

Slide 24

Slide 24 text

対処法 p ⼊入り乱れるファイル   n プログラムのファイルとHTMLを含むファイル を可能な限り分ける   n オブジェクト指向でコンパクトにまとめれば 結構実現できます   p ファイル名やコーディング   n 命名規則を作りましょう   n コーディング規約を作りましょう 2014/09/03

Slide 25

Slide 25 text

フレームワークいらないやん!! 2014/09/03

Slide 26

Slide 26 text

そのルール   0から作りたいですか? 2014/09/03

Slide 27

Slide 27 text

Frameworkって使う必要あるの? p 趣味で⼀一⼈人で作る分には必要ありません   p ⼩小規模なサービスなら必要ありません   2014/09/03

Slide 28

Slide 28 text

でも… p 複数⼈人で開発すると   n ライブラリを探したり   n コーディング規約を決めたり   n プロジェクトのファイルの置き⽅方を決めたり   p 考える事が増えてくる   p 必要なルールが増えてくる 2014/09/03

Slide 29

Slide 29 text

⾃自分の開発を楽にするために p ルールを決めてくれる     p ルールに沿うための⼟土台をくれる   p ルールに沿ったら開発が楽になる 2014/09/03

Slide 30

Slide 30 text

でも気をつけて 2014/09/03

Slide 31

Slide 31 text

⼿手伝ってくれるのは   「基本のルール」の守り⽅方まで 2014/09/03

Slide 32

Slide 32 text

今⽇日の内容:  Framework  ⼊入⾨門 p ⾃自⼰己紹介   p なぜ  Framework  は必要なのか?     p MVCについて   p 百聞は⼀一⾒見見にしかず   2014/09/03

Slide 33

Slide 33 text

役割分担 2014/09/03

Slide 34

Slide 34 text

MVCとは p Model   n データの格納担当   p View   n データの表⽰示担当   p Controller   n データの受け渡し担当 2014/09/03

Slide 35

Slide 35 text

データの流流れ 2014/09/03 C V M リクエスト レスポンス 受け取ったデータ等 追加・読み込み・   更更新・削除 データ返送 表⽰示に必要なデータ

Slide 36

Slide 36 text

役割を切切り分ける p 役割を切切り分ける事で開発を楽にする   p エラー箇所の特定も楽になる   2014/09/03

Slide 37

Slide 37 text

今⽇日の内容:  Framework  ⼊入⾨門 p ⾃自⼰己紹介   p なぜ  Framework  は必要なのか?     p MVCについて   p 百聞は⼀一⾒見見にしかず   2014/09/03