SlideShare a Scribd company logo
1 of 112
Download to read offline
1
2015年6月12日
GMOインターネット株式会社 次
世代システム研究室
藤村 新
2015
GMO TECHNOLOGY BOOT CAMP
PHP
2
自己紹介
藤村 新
ふじむら あらた
アジャイルPM研究会所属
省略
4
伝えたいこと覚えてますか?
1.夢や実現したいこ
とを言葉に出そう
2.自己投資しよう
3.まずは行動しよう
伝えたいこと
6
その後の近況報告
スプツニ子!に会った(話し聞いた)
https://www.youtube.com/watch?v
=6P1uFNdKdQA
https://www.youtube.com/watch?v
=5REsCTG4-Gg
Sputniko!
The Moonwalk Machine
Selena's Step
HELLO KITTY IN SPACE
9
5/29-30 Regional Scrum Gathering Vietnam 2015
• 参加してきた(自費)
15
今日の目的
1. PHPをざっくり理
解する
2. チームで何かを作
れるようになる
個人開発
≠
チーム開発
18
PHPとは
• PHP(PHP:Hypertext
Preprocessor)は、1995年最初
のバージョンが生み出された。
• 当時はPHP(Personal Home
Page) Toolsと呼ばれていた
• PHP(PHP:Hypertext
Preprocessor)は、1995年最初
のバージョンが生み出された。
• 当時はPHP(Personal Home
Page) Toolsと呼ばれていた
昔からある
[特徴]※Wikipediaから引用
•Webアプリケーションのサーバーサイド・スクリプトに専門化している。
•C言語やJava言語に似た、平易な文法。
•データベースへの容易なアクセス(組み込み関数、および、標準ライブラリPDOによる)。
•クラスベースオブジェクト指向のサポート。
•例外処理 (try, catch, throw) のサポート。
•多くのオープンソースのフレームワークやライブラリが利用可能である。
•ASP, JSPと似たHTML埋め込み型の構文をとる。ただし最近のフレームワークを使った
開発では、埋め込み型の構文を使用しないことが多い。
•様々な付加機能がPEARというオンラインライブラリ集でモジュールとして提供されてい
る。pearコマンドで導入/管理ができる。PerlでいうところのCPANである。
•ウィキ構築に用いられるソフトのMediaWiki(Wikipediaで使われている)やPukiwikiを始
めとして、数多くのオープンソースウェブアプリケーションに利用されている。
•処理系本体は、C言語で書かれている。
[特徴]※Wikipediaから引用
•Webアプリケーションのサーバーサイド・スクリプトに専門化している。
•C言語やJava言語に似た、平易な文法。
•データベースへの容易なアクセス(組み込み関数、および、標準ライブラリPDOによる)。
•クラスベースオブジェクト指向のサポート。
•例外処理 (try, catch, throw) のサポート。
•多くのオープンソースのフレームワークやライブラリが利用可能である。
•ASP, JSPと似たHTML埋め込み型の構文をとる。ただし最近のフレームワークを使った
開発では、埋め込み型の構文を使用しないことが多い。
•様々な付加機能がPEARというオンラインライブラリ集でモジュールとして提供されてい
る。pearコマンドで導入/管理ができる。PerlでいうところのCPANである。
•ウィキ構築に用いられるソフトのMediaWiki(Wikipediaで使われている)やPukiwikiを始
めとして、数多くのオープンソースウェブアプリケーションに利用されている。
•処理系本体は、C言語で書かれている。
•Webアプリ向け
•平易な文法
•世の中で数多く
使われている
その他の特徴として、
Disられる
PHPは初心者に学びやすいと言われて
いることが問題である。
Webアプリケーションをなめるな!
PHPユーザーは他の言語から学んでい
るのか、という点。
PHPユーザーが他の言語ユーザーよりも
弱いのは、そこなのではないか。
一貫性の欠如
混血言語(C, Perl, Java)
英語も同じ?
強いアイデンティティを持たない
最も強いものが生き残るのではなく、最も賢いものが
生き延びるわけでもない。
唯一、生き残るのは変化できるものだけである。
過去現在に渡って躊躇無く変化してきた
「PHP開発者は、開発者宇宙におけ
るダークマターのようだ。目に見えな
いし、声もあげない。だが、そこには
多くの開発者が存在している」
(Heroku)
PHP開発者は、何で作るかよりも、
何を作るかに重きを置いているので
はないか。(Fujimura)
当たり前だけど、ちゃんと書く!
29
皆さん、開発環境ありますか?
Hello, world!
<?php
echo 'Hello, world!';
# php test.php
Hello, world!
31
休憩
https://www.flickr.com/photos/emiliokuffer/8359208711/
PHPのお約束
•PHPタグ
•ここから
•<?php
•ここまで
•?>
•省略した方が良い
PHPのお約束
•文末にはセミコロン(;)
•コメント
•一行
•// or #
•複数行
•/* から */ まで
変数への代入、出力
<?php
$age = 38; // 数字
echo $age; // 38と出力
$name = "Fujimura ${age}才";
echo $name; // Fujimura 38才
演算子
<?php
$a = 2; $b = 3;
echo $a * $b; // 6
$a++; // $a = $a + 1と同じ
echo $a * $b; // 9
echo $a / $b; // 1
echo $a % $b; // 0
echo 'gmo' . '.jp' // gmo.jp
条件で処理を分ける
<?php
$age = 18; // 20に書き換えてみる
if ($age < 20) {
echo 'ジュースをどうぞ。';
} else {
echo 'ビールはいかがですか?';
}
条件で処理を分ける
<?php
$age = 18; // 20に書き換えてみる
$order = 'beer';
if ($age >= 20 && $order == 'beer') {
echo 'ビールをどうぞ。';
}
配列
<?php
$animals = array(
'bear' => 'くま',
'rabbit' => 'うさぎ'
);
print_r($animals);
$animals['cat'] = 'ねこ';
print_r($animals);
$animals['bear'] = 'ベアー';
print_r($animals);
配列
<?php
$bears = array('Teddy', 'Pooh', 'Brown');
print_r($bears);
$bears[] = 'Momo';
print_r($bears);
$bears[5] = 'Foo';
print_r($bears);
配列
<?php
$animals = array(
'bears' => array('Teddy', 'Pooh', 'Brown'),
'rabbits' => array('Peter', 'Miffy', 'Cony'),
);
print_r($animals);
echo $animals['bears'][2]; // Brown
ループ(while)
<?php
$i = 1;
while ($i <= 10) {
echo $i;
$i++;
}
// 1から10までの数字が表示される
ループ(for)
<?php
for ($i =1; $i <=10; $i++) {
echo $i;
}
// 1から10までの数字が表示される
ループ(foreach)
<?php
$bears = array('Teddy', 'Pooh', 'Brown');
foreach ($bears as $bear) {
echo $bear . "はクマです。¥n";
}
ループ(foreach)
<?php
$animals = array(
'bear' => 'くま',
'rabbit' => 'うさぎ'
);
foreach ($animals as $key => $value) {
echo $key . 'は' . $value . "です。¥n";
}
関数(内部関数)
<?php
$scores = array(57, 89, 72);
$sum = array_sum($scores);
$count = count($scores);
$average = round(($sum / $count), 1);
echo $average; // 72.7
関数(内部関数)
<?php
$url = 'http://www.gmo.jp/';
$html = file_get_contents($url);
echo $html;
$url = 'http://feeds.feedburner.com/kumagai';
$rss = simplexml_load_file($url);
var_dump($rss);
echo $rss->item[0]->title; // 記事タイトル
関数(ユーザー関数)
<?php
function average($scores) {
$sum = array_sum($scores);
$count = count($scores);
$average = round(($sum / $count), 1);
return $average;
}
echo average(array(57, 89, 72)) . "¥n";
echo average(array(75, 66, 98)) . "¥n";
変数のスコープ
<?php
$word = 'りんご';
function say() {
echo $word;
}
say();
/*
PHP Notice: Undefined variable: word
*/
変数のスコープ
<?php
$word = 'りんご';
function say($word) {
echo $word;
}
say($word); // りんご
ペアで課題を
解いてください
ペアプログラミングとは
•ペアプログラミングとは、二人が一つのキーボードでプログラ
ミングをすること。
•driverはキーボードを叩き、observer(あるいはnavigator)は
driverの書くコードを眺め、エラーや設計を吟味する。
•driver側
•どうやって機能を作るか細かいことを考える。
•observerに言われたとおりにコードを打ち込むことような
ことはしない
•observer側
•driverのコードを横から睨み、バグ、デザインの改善や簡
潔化、大局的な問題について考える。
1.FizzBuzz問題
•1から100まで順番に数を表示する
•ただし、その数が3で割り切れるなら“Fizz”、5
で割り切れるなら“Buzz”、両方で割り切れるな
ら“FizzBuzz”と表示する
•プログラムでは、剰余演算子(%)を使ってはな
らない
1.FizzBuzz問題(実行例)
1 2 Fizz 4 Buzz Fizz 7 8
Fizz Buzz 11 Fizz 13 14
FizzBuzz 16 …
※実際は改行区切りで出力
2.insertNum関数
•与えられた文字列に対して、数字を挿入する
関数。
•挿入ルールは、最初に"1",1文字あけて"2",2
文字あけて"3",...
•最後はあける文字数によらず数字で終わらせ
る。
2.insertNum関数(実行例)
•呼び出し
$str = 'Hello Jason, how are you?';
echo insertNum($str);
•実行結果
1H2el3lo 4Jaso5n, ho6w are 7you?8
3.checkSamePath関数
•渡された2つのパスが同じ場所を指している
かチェックする関数。
•同じパスなら “Match”, 異なるパスなら “Not
Match”を表示する。
3.checkSamePath関数(実行例1)
•呼び出し1
$pathA = '/home/admin/index.html';
$pathB = '/home/admin/public_html/index.html';
if(checkSamePath($pathA, $pathB)) {
echo 'Match';
} else {
echo 'Not Match';
}
•実行結果1
Not Match
3.checkSamePath関数(実行例2)
•呼び出し2
$pathA = '/home/user/../admin/./index.html';
$pathB = '/home/admin/public_html/../index.html';
if(checkSamePath($pathA, $pathB)) {
echo 'Match';
} else {
echo 'Not Match';
}
•実行結果2
Match
59
昼休憩
https://www.flickr.com/photos/emiliokuffer/8359208711/
60
パフォーマンス・チューニング
4.素数の数を返す関数
•コマンドラインから1つの引数Nを受け取り、N
以下の素数の数を返却する。
•Nは1桁から7桁の間の整数(1~
9,999,999)であること。
•正しい答えを返すのは当たり前として、実行
時間の短縮を工夫してください。
アプリケーションフレームワークとは
Web アプリケーションフレームワークは、動的なウェブ
サイト、Webアプリケーション、Webサービスの開発をサ
ポートするために設計されたアプリケーションフレーム
ワークである。
フレームワークの目的は、Web開発で用いられる共通
した作業に伴う労力を軽減することである。
たとえば、多数のフレームワークがデータベースへのア
クセスのためのライブラリや、テンプレートエンジン、
セッション管理を提供し、コードの再利用を促進させる
ものもある。
ハッピーコーディング?
「ハッピーコーディング」とは、煩わしい定型処理
はすべてフレームワークに任せて、アプリケーショ
ンの中核となるロジックに集中できる状態です。
入出力の処理やリダイレクト、データベースへの
接続、ロジックと表示の分離、これらをフレーム
ワークは担ってくれます。
あなたは実現したいことをコードに書くだけです。
PHPの代表的なフレームワーク
•Laravel4(近年爆発的に人気急上昇)
•Symfony2(大規模重厚、多機能)
•CodeIgniter(軽量、高速。ライセンス問題で話題)
•FuelPHP(軽量、高速)
•CakePHP(RoRのPHP版、日本で大人気)
•Zend Framework2(保守的で誠実)
•Silex(マイクロフレームワーク)
•Yii Framework(ロシア、ウクライナ、中国)
•BEAR.Sunday(DI、AOP、REST)
•Phalcon(最速)
PHPの代表的なフレームワーク
高級品 BEAR.Sunday Symfony
CakePHP
Zend
Framework 2
日用品
Laravel
CodeIgniter
(FuelPHP)
Yii
小規模 大規模
http://www.slideshare.net/KenichiMukai/conferencekphpugjp2014/56
早速使ってみる!
# cd /var/www
# wget
https://github.com/cakephp/cakephp/archive/2.6.4.zip
# unzip 2.6.4.zip
# ln –s cakephp-2.6.4 cakephp
# chmod –R 777 cakephp/app/tmp
# chmod –R 777 /var/lib/php/session
# vi cakephp/app/Config/core.php
Configure::write('Security.salt', 'xxxxxxxxxxxxxxxxxxxx');
Configure::write('Security.cipherSeed', '1234567890123');
# vi /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/cakephp/app/webroot"
AllowOverride All
# service nginx stop
# service httpd start
# mysql –uroot –p
mysql> create database gtb;
mysql> create database gtb_test;
mysql> quit
# cd cakephp/app/Config
# mv database.php.default database.php
# vi database.php
public $default = array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'gtb',
'prefix' => '',
//'encoding' => 'utf8',
);
# vi database.php
public $test= array(
'datasource' => 'Database/Mysql',
'persistent' => false,
'host' => 'localhost',
'login' => 'root',
'password' => '',
'database' => 'gtb_test',
'prefix' => '',
//'encoding' => 'utf8',
);
# cd ../..
# curl -sS https://getcomposer.org/installer | php
# mv composer.phar /usr/local/bin/composer
# composer update
# vi app/Config/bootstrap.php
require ROOT . DIRECTORY_SEPARATOR . 'vendor' .
DIRECTORY_SEPARATOR . 'autoload.php' ;
インストール完了!
http://IPアドレス/
掲示板アプリを
作ってみよう!
# mysql –uroot –p gtb
mysql> CREATE TABLE `posts` (
`id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`post` text NOT NULL,
`active` boolean NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> quit
# ./Console/cake bake all Post
設定より規約
CoC(convention over
configuration)
完成!
http://IPアドレス/posts
"New Post"で生成(C)
"View"で読み取り(R)
"Edit"で更新(U)
"Delete"で削除(D)
CRUD
UIが備えるべ
き機能
_人人人人人人人人人人人人人_
> 突然のMVCアーキテクチャ <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄
Model
View
Controller
ユーザーインターフェースを
もつアプリケーションを実
装するためのアーキテク
チャ。
CakePHPもMVCアーキテク
チャ採用のフレームワーク。
http://at-grandpa.hatenablog.jp/entry/2013/11/01/072636
一般的な(勘違い)MVC
Controllerが
肥大化する!
http://at-grandpa.hatenablog.jp/entry/2013/11/01/072636
本来のMVC
ビジネスロジック
とは
Modelの持つ
加工メソッド!
掲示板アプリの
Controller
public function index() {
/*
/posts でやりたい処理をここに書く
*/
echo 'Hello!';
$this->Post->recursive = 0;
$this->set('posts', $this->Paginator-
>paginate());
}
/var/www/cakephp/app/Controller/PostsController.php
public function index() {
/*
/post データの中身を見てみる
*/
print_r($this->Post->find("all"));
$this->Post->recursive = 0;
$this->set('posts', $this->Paginator-
>paginate());
}
/var/www/cakephp/app/Controller/UsersController.php
Array
(
[0] => Array
(
[Post] => Array
(
[id] => 1
[post] => こんにちは
[active] => 1
[created] => 2015-06-08 18:39:29
[modified] => 2015-06-08 18:39:29
)
)
)
掲示板アプリの
View
/var/www/cakephp/app/View/Posts/add.ctp
/edit.ctp
/index.ctp
/view.ctp
<?php foreach ($posts as $post): ?>
<tr>
<td><?php echo h($post['Post']['id']); ?>&nbsp;</td>
<td><?php echo h($post['Post']['name']); ?>&nbsp;</td>
<td><?php echo h($post['Post']['post']); ?>&nbsp;</td>
<td><?php echo h($post['Post']['active']); ?>&nbsp;</td>
<td><?php echo h($post['Post']['created']); ?>&nbsp;</td>
<td><?php echo h($post['Post']['modified']); ?>&nbsp;</td>
<td class="actions">
<?php echo $this->Html->link(__('View'), array('action' => 'view',
$post['Post']['id'])); ?>
<?php echo $this->Html->link(__('Edit'), array('action' => 'edit',
$post['Post']['id'])); ?>
<?php echo $this->Form->postLink(__('Delete'), array('action' =>
'delete', $post['Post']['id']), array('confirm' => __('Are you sure you want to delete # %s?',
$post['Post']['id']))); ?>
</td>
</tr>
<?php endforeach; ?>
/var/www/cakephp/app/View/Post/index.ctp
掲示板アプリの
Model
public $validate = array(
'name' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
),
'post' => array(
'notEmpty' => array(
'rule' => array('notEmpty'),
),
),
'active' => array(
'boolean' => array(
'rule' => array('boolean'),
),
),
);
/var/www/cakephp/app/Model/Post.php
掲示板アプリに
ビジネスロジックを
追加してみよう。
アクティブな投稿一覧が
見たい!
/**
* アクティブな投稿一覧を取得する。
*
* @return array
*/
public function getActive() {
$option = array(
'conditions' => array('Post.active' => 1),
'order' => array('Post.created asc'),
);
return $this->find('all', $option);
}
/var/www/cakephp/app/Model/Post.php
# cd /var/www/cakephp/app/View/Posts
# cp index.ctp active.ctp
# vi active.ctp
↓以下の部分を削除↓(ページャー部分でエラーが出るため)
<p>
<?php
echo $this->Paginator->counter(array(
'format' => __('Page {:page} of {:pages}, showing {:current} records out of
{:count} total, starting on record {:start}, ending on {:end}')
));
?> </p>
<div class="paging">
<?php
echo $this->Paginator->prev('< ' . __('previous'), array(), null, array('class'
=> 'prev disabled'));
echo $this->Paginator->numbers(array('separator' => ''));
echo $this->Paginator->next(__('next') . ' >', array(), null, array('class' =>
'next disabled'));
?>
</div>
/var/www/cakephp/app/View/Post/active.ctp
/**
* active method
*
* @return void
*/
public function active() {
$this->set('posts', $this->Post->getActive());
}
/var/www/cakephp/app/Controller/PostsController.php
http://IPアドレス/posts/active
避けては通れない
テストの話し
(ユニットテスト)
# cd /var/www/cakephp/app
# ./Console/cake bake
What would you like to Bake? (D/M/V/C/P/F/T/Q)
> T
Enter the type of object to bake a test for or (q)uit
(1/2/3/4/5/q)
[q] > 1
Choose a Model class
1. AppModel
2. Post
> 2
Wrote
`/var/www/cakephp/app/Test/Case/Model/PostTest.php`
What would you like to Bake? (D/M/V/C/P/F/T/Q)
> F
---------------------------------------------------------------
Bake Fixture
Path: /var/www/cakephp-2.6.4/app/Test/Fixture/
---------------------------------------------------------------
Use Database Config: (default/test)
Possible Models based on your current database:
1. Post
Enter a number from the list above,
type in the name of another model, or 'q' to exit
[q] > 1
Would you like to import schema for this fixture? (y/n)
[n] > y
Would you like to use record importing for this fixture? (y/n)
[n] > y
Baking test fixture for Post...
Creating file /var/www/cakephp-2.6.4/app/Test/Fixture/PostFixture.php
Wrote `/var/www/cakephp-2.6.4/app/Test/Fixture/PostFixture.php`
public function testgetActive(){
$actives = $this->Post->getActive();
foreach($actives as $row) {
$this->assertEquals('1', $row['Post']['active']);
}
}
/var/www/cakephp/app/Test/Case/Model/PostTest.php
http://IPアドレス/test.php
さらに一歩進んだ
テストの話し
(テスト駆動開発[TDD])
1.モデルに空のgetActive関数を作成
2.今回と同様のテストケース作成
3.テスト実施
4.エラーになる
5.エラーにならないようにざっくりgetActive関数
を実装
6.テスト実施
7.テスト通る
8.リファクタリング(ソースコードを綺麗にする)
9.テスト実施
10.テスト通る
HTML以外の出力
(JSON, XML)
public function active() {
$this->viewClass = 'Json';
// $this->viewClass = 'Xml';
$this->set('posts', $this->Post->getActive());
$this->set('_serialize', array('posts'));
}
/var/www/cakephp/app/Controller/PostsController.php
http://IPアドレス/posts/active
掲示板拡張
1. やっぱり複数のスレッドを作りたい!
2. スレッド一覧ページをTOPページにしたい
3. 投稿者固有のIDを表示したい
• 2chのIDのように、同一ブラウザからの
投稿は同一IDになる
ヒント
# mysql –uroot –p gtb
mysql> CREATE TABLE `threads` (
`id` int(11) unsigned NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
mysql> ALTER TABLE `posts` ADD COLUMN `thread_id`
int(11) unsigned NOT NULL AFTER `id`;
mysql> quit
# ./Console/cake bake all Thread
# ./Console/cake bake all Post
// Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
Router::connect('/', array('controller' => 'threads', 'action' => 'index'));
/var/www/cakephp/app/Config/routes.php
http://IPアドレス/
あとは、
ドキュメント読もう
http://book.cakephp.org/2.0/ja
/index.html
Keep
Problem
Try
112
おわり

More Related Content

What's hot

Alpine.jsハンズオン
Alpine.jsハンズオンAlpine.jsハンズオン
Alpine.jsハンズオンAyakaNishiyama
 
MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013純生 野田
 
やはりお前らのMTMLは間違っている!
やはりお前らのMTMLは間違っている!やはりお前らのMTMLは間違っている!
やはりお前らのMTMLは間違っている!純生 野田
 
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道20123時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012Yusuke Ando
 
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたよいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたMoriyoshi Koizumi
 
Symfony2 How to create your Bundle
Symfony2 How to create your BundleSymfony2 How to create your Bundle
Symfony2 How to create your Bundlechobi e
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI
 
Perl logging
Perl loggingPerl logging
Perl loggingkeroyonn
 
Perlで伝統芸能
Perlで伝統芸能Perlで伝統芸能
Perlで伝統芸能hitode909
 
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室40分濃縮 PHP classの教室
40分濃縮 PHP classの教室Yusuke Ando
 
SlowQueryとの戦い
SlowQueryとの戦いSlowQueryとの戦い
SlowQueryとの戦いKen Gotoh
 
Jetpack datastore入門
Jetpack datastore入門Jetpack datastore入門
Jetpack datastore入門furusin
 
WordPressで提供するWeb API
WordPressで提供するWeb APIWordPressで提供するWeb API
WordPressで提供するWeb APIYuko Toriyama
 
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented ProgrammingPerl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programmingrisou
 
traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話infinite_loop
 
PHP classの教室
PHP classの教室PHP classの教室
PHP classの教室Yusuke Ando
 

What's hot (20)

Yahoo!ボックスAPI Hackday資料
Yahoo!ボックスAPI Hackday資料Yahoo!ボックスAPI Hackday資料
Yahoo!ボックスAPI Hackday資料
 
Yahoo!ボックスAPI Hackathon向け資料
Yahoo!ボックスAPI Hackathon向け資料Yahoo!ボックスAPI Hackathon向け資料
Yahoo!ボックスAPI Hackathon向け資料
 
Alpine.jsハンズオン
Alpine.jsハンズオンAlpine.jsハンズオン
Alpine.jsハンズオン
 
Inside Movable Type
Inside Movable TypeInside Movable Type
Inside Movable Type
 
MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013MT meets PHP - PHP conference Kansai 2013
MT meets PHP - PHP conference Kansai 2013
 
やはりお前らのMTMLは間違っている!
やはりお前らのMTMLは間違っている!やはりお前らのMTMLは間違っている!
やはりお前らのMTMLは間違っている!
 
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道20123時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
3時間濃縮CakePHP2.1 in PHPカンファレンス北海道2012
 
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたよいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
 
Symfony2 How to create your Bundle
Symfony2 How to create your BundleSymfony2 How to create your Bundle
Symfony2 How to create your Bundle
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
Perl logging
Perl loggingPerl logging
Perl logging
 
Try Jetpack
Try JetpackTry Jetpack
Try Jetpack
 
Perlで伝統芸能
Perlで伝統芸能Perlで伝統芸能
Perlで伝統芸能
 
40分濃縮 PHP classの教室
40分濃縮 PHP classの教室40分濃縮 PHP classの教室
40分濃縮 PHP classの教室
 
SlowQueryとの戦い
SlowQueryとの戦いSlowQueryとの戦い
SlowQueryとの戦い
 
Jetpack datastore入門
Jetpack datastore入門Jetpack datastore入門
Jetpack datastore入門
 
WordPressで提供するWeb API
WordPressで提供するWeb APIWordPressで提供するWeb API
WordPressで提供するWeb API
 
Perl 6 Object-Oliented Programming
Perl 6 Object-Oliented ProgrammingPerl 6 Object-Oliented Programming
Perl 6 Object-Oliented Programming
 
traitを使って楽したい話
traitを使って楽したい話traitを使って楽したい話
traitを使って楽したい話
 
PHP classの教室
PHP classの教室PHP classの教室
PHP classの教室
 

Viewers also liked

Is Scrum the Best Choice for you?
Is Scrum the Best Choice for you?Is Scrum the Best Choice for you?
Is Scrum the Best Choice for you?Arata Fujimura
 
AEP(アジャイルな見積りと計画づくり)読書会21章計画とコミュニケーション
AEP(アジャイルな見積りと計画づくり)読書会21章計画とコミュニケーションAEP(アジャイルな見積りと計画づくり)読書会21章計画とコミュニケーション
AEP(アジャイルな見積りと計画づくり)読書会21章計画とコミュニケーションArata Fujimura
 
フィリピンのスタートアップにスクラムを導入しようとしてみたお話
フィリピンのスタートアップにスクラムを導入しようとしてみたお話フィリピンのスタートアップにスクラムを導入しようとしてみたお話
フィリピンのスタートアップにスクラムを導入しようとしてみたお話Arata Fujimura
 
システム開発の流れ(アジャイルソフトウェア開発)
システム開発の流れ(アジャイルソフトウェア開発)システム開発の流れ(アジャイルソフトウェア開発)
システム開発の流れ(アジャイルソフトウェア開発)Arata Fujimura
 
ベトナムでのアジャイルオフショア開発への挑戦
ベトナムでのアジャイルオフショア開発への挑戦ベトナムでのアジャイルオフショア開発への挑戦
ベトナムでのアジャイルオフショア開発への挑戦Arata Fujimura
 
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話Shohei Tai
 
PHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 SilexPHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 SilexMasao Maeda
 
東京農工大セミナー
東京農工大セミナー東京農工大セミナー
東京農工大セミナーArata Fujimura
 
アジャイル開発手法取り組み状況
アジャイル開発手法取り組み状況アジャイル開発手法取り組み状況
アジャイル開発手法取り組み状況Arata Fujimura
 
GMOテクノロジーブートキャンプ2015(アジャイル編)
GMOテクノロジーブートキャンプ2015(アジャイル編)GMOテクノロジーブートキャンプ2015(アジャイル編)
GMOテクノロジーブートキャンプ2015(アジャイル編)Arata Fujimura
 
アジャイルオフショア開発モデル
アジャイルオフショア開発モデルアジャイルオフショア開発モデル
アジャイルオフショア開発モデルArata Fujimura
 
アジャイルなオフショア開発(Rakuten techtalk)
アジャイルなオフショア開発(Rakuten techtalk)アジャイルなオフショア開発(Rakuten techtalk)
アジャイルなオフショア開発(Rakuten techtalk)Arata Fujimura
 
A 2a:アジャイルなオフショア開発
A 2a:アジャイルなオフショア開発A 2a:アジャイルなオフショア開発
A 2a:アジャイルなオフショア開発Arata Fujimura
 
アジャイル開発研修
アジャイル開発研修アジャイル開発研修
アジャイル開発研修Arata Fujimura
 
アジャイルな見積りと計画づくり2
アジャイルな見積りと計画づくり2アジャイルな見積りと計画づくり2
アジャイルな見積りと計画づくり2Arata Fujimura
 
ユーザーストーリーの分割
ユーザーストーリーの分割ユーザーストーリーの分割
ユーザーストーリーの分割Arata Fujimura
 
現場をより良くするためにやっていることを3つの観点で振り返る「kpt発表会」
現場をより良くするためにやっていることを3つの観点で振り返る「kpt発表会」現場をより良くするためにやっていることを3つの観点で振り返る「kpt発表会」
現場をより良くするためにやっていることを3つの観点で振り返る「kpt発表会」Arata Fujimura
 
アジャイルな見積りと計画づくり1
アジャイルな見積りと計画づくり1アジャイルな見積りと計画づくり1
アジャイルな見積りと計画づくり1Arata Fujimura
 
CSPO、CSM研修に参加して
CSPO、CSM研修に参加してCSPO、CSM研修に参加して
CSPO、CSM研修に参加してArata Fujimura
 

Viewers also liked (20)

Is Scrum the Best Choice for you?
Is Scrum the Best Choice for you?Is Scrum the Best Choice for you?
Is Scrum the Best Choice for you?
 
AEP(アジャイルな見積りと計画づくり)読書会21章計画とコミュニケーション
AEP(アジャイルな見積りと計画づくり)読書会21章計画とコミュニケーションAEP(アジャイルな見積りと計画づくり)読書会21章計画とコミュニケーション
AEP(アジャイルな見積りと計画づくり)読書会21章計画とコミュニケーション
 
フィリピンのスタートアップにスクラムを導入しようとしてみたお話
フィリピンのスタートアップにスクラムを導入しようとしてみたお話フィリピンのスタートアップにスクラムを導入しようとしてみたお話
フィリピンのスタートアップにスクラムを導入しようとしてみたお話
 
システム開発の流れ(アジャイルソフトウェア開発)
システム開発の流れ(アジャイルソフトウェア開発)システム開発の流れ(アジャイルソフトウェア開発)
システム開発の流れ(アジャイルソフトウェア開発)
 
ベトナムでのアジャイルオフショア開発への挑戦
ベトナムでのアジャイルオフショア開発への挑戦ベトナムでのアジャイルオフショア開発への挑戦
ベトナムでのアジャイルオフショア開発への挑戦
 
爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話爆速フレームワークでREST APIを作った話
爆速フレームワークでREST APIを作った話
 
PHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 SilexPHPカンファレンス関西2012 Silex
PHPカンファレンス関西2012 Silex
 
東京農工大セミナー
東京農工大セミナー東京農工大セミナー
東京農工大セミナー
 
アジャイル開発手法取り組み状況
アジャイル開発手法取り組み状況アジャイル開発手法取り組み状況
アジャイル開発手法取り組み状況
 
GMOテクノロジーブートキャンプ2015(アジャイル編)
GMOテクノロジーブートキャンプ2015(アジャイル編)GMOテクノロジーブートキャンプ2015(アジャイル編)
GMOテクノロジーブートキャンプ2015(アジャイル編)
 
Agile planning
Agile planningAgile planning
Agile planning
 
アジャイルオフショア開発モデル
アジャイルオフショア開発モデルアジャイルオフショア開発モデル
アジャイルオフショア開発モデル
 
アジャイルなオフショア開発(Rakuten techtalk)
アジャイルなオフショア開発(Rakuten techtalk)アジャイルなオフショア開発(Rakuten techtalk)
アジャイルなオフショア開発(Rakuten techtalk)
 
A 2a:アジャイルなオフショア開発
A 2a:アジャイルなオフショア開発A 2a:アジャイルなオフショア開発
A 2a:アジャイルなオフショア開発
 
アジャイル開発研修
アジャイル開発研修アジャイル開発研修
アジャイル開発研修
 
アジャイルな見積りと計画づくり2
アジャイルな見積りと計画づくり2アジャイルな見積りと計画づくり2
アジャイルな見積りと計画づくり2
 
ユーザーストーリーの分割
ユーザーストーリーの分割ユーザーストーリーの分割
ユーザーストーリーの分割
 
現場をより良くするためにやっていることを3つの観点で振り返る「kpt発表会」
現場をより良くするためにやっていることを3つの観点で振り返る「kpt発表会」現場をより良くするためにやっていることを3つの観点で振り返る「kpt発表会」
現場をより良くするためにやっていることを3つの観点で振り返る「kpt発表会」
 
アジャイルな見積りと計画づくり1
アジャイルな見積りと計画づくり1アジャイルな見積りと計画づくり1
アジャイルな見積りと計画づくり1
 
CSPO、CSM研修に参加して
CSPO、CSM研修に参加してCSPO、CSM研修に参加して
CSPO、CSM研修に参加して
 

Similar to GMO TECHNOLOGY BOOT CAMP2015(PHP編)

Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるjamadam
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミングlestrrat
 
最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話y-uti
 
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るPHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るMasashi Shinbara
 
日常業務にperlを使おう
 日常業務にperlを使おう 日常業務にperlを使おう
日常業務にperlを使おうturugina
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介sters
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUpKenichi Mukai
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2Akio Ishida
 
Cinnamon - simple deploy tool
Cinnamon - simple deploy toolCinnamon - simple deploy tool
Cinnamon - simple deploy toolYuki Shibazaki
 
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasiaモダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia鉄次 尾形
 
CMSとPerlで遊ぼう
CMSとPerlで遊ぼうCMSとPerlで遊ぼう
CMSとPerlで遊ぼうDaiki Ichinose
 
FuelPHPをさわってみて
FuelPHPをさわってみてFuelPHPをさわってみて
FuelPHPをさわってみてSotaro Omura
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarSotaro Karasawa
 
WordPress安全運用の基礎
WordPress安全運用の基礎WordPress安全運用の基礎
WordPress安全運用の基礎hiro345
 

Similar to GMO TECHNOLOGY BOOT CAMP2015(PHP編) (20)

Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
 
Perl 非同期プログラミング
Perl 非同期プログラミングPerl 非同期プログラミング
Perl 非同期プログラミング
 
最近の PHP の話
最近の PHP の話最近の PHP の話
最近の PHP の話
 
Using Dancer
Using DancerUsing Dancer
Using Dancer
 
Niigata.pm #1
Niigata.pm #1Niigata.pm #1
Niigata.pm #1
 
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るPHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
 
日常業務にperlを使おう
 日常業務にperlを使おう 日常業務にperlを使おう
日常業務にperlを使おう
 
Php apocalypse
Php apocalypsePhp apocalypse
Php apocalypse
 
Puppetのススメ
PuppetのススメPuppetのススメ
Puppetのススメ
 
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
 
第21回Creators MeetUp
第21回Creators MeetUp第21回Creators MeetUp
第21回Creators MeetUp
 
Local php-100828 2
Local php-100828 2Local php-100828 2
Local php-100828 2
 
Cinnamon - simple deploy tool
Cinnamon - simple deploy toolCinnamon - simple deploy tool
Cinnamon - simple deploy tool
 
モダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasiaモダンmod_perl入門 #yapcasia
モダンmod_perl入門 #yapcasia
 
test
testtest
test
 
CMSとPerlで遊ぼう
CMSとPerlで遊ぼうCMSとPerlで遊ぼう
CMSとPerlで遊ぼう
 
Cakephp api
Cakephp apiCakephp api
Cakephp api
 
FuelPHPをさわってみて
FuelPHPをさわってみてFuelPHPをさわってみて
FuelPHPをさわってみて
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
 
WordPress安全運用の基礎
WordPress安全運用の基礎WordPress安全運用の基礎
WordPress安全運用の基礎
 

More from Arata Fujimura

クラスメソッドベトナム設立しました
クラスメソッドベトナム設立しましたクラスメソッドベトナム設立しました
クラスメソッドベトナム設立しましたArata Fujimura
 
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組み
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組みリーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組み
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組みArata Fujimura
 
DevOpsを支える原則、3つの道
DevOpsを支える原則、3つの道DevOpsを支える原則、3つの道
DevOpsを支える原則、3つの道Arata Fujimura
 
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜Arata Fujimura
 
スクラムマスター募集中
スクラムマスター募集中スクラムマスター募集中
スクラムマスター募集中Arata Fujimura
 
変化に強い、継続的に学習する組織に変わるためのステップとは
変化に強い、継続的に学習する組織に変わるためのステップとは変化に強い、継続的に学習する組織に変わるためのステップとは
変化に強い、継続的に学習する組織に変わるためのステップとはArata Fujimura
 
クラスメソッドにおけるスクラム開発の光と影
クラスメソッドにおけるスクラム開発の光と影クラスメソッドにおけるスクラム開発の光と影
クラスメソッドにおけるスクラム開発の光と影Arata Fujimura
 
モダンオフショア開発のすすめ
モダンオフショア開発のすすめモダンオフショア開発のすすめ
モダンオフショア開発のすすめArata Fujimura
 
スクラムワークショップ
スクラムワークショップスクラムワークショップ
スクラムワークショップArata Fujimura
 
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話Arata Fujimura
 
登壇勉強会 〜それぞれの流儀がそこにある〜
登壇勉強会 〜それぞれの流儀がそこにある〜登壇勉強会 〜それぞれの流儀がそこにある〜
登壇勉強会 〜それぞれの流儀がそこにある〜Arata Fujimura
 
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!Arata Fujimura
 
PdMワークショップ
PdMワークショップPdMワークショップ
PdMワークショップArata Fujimura
 
最高のScrumキメた後にスケールさせようとして混乱した話
最高のScrumキメた後にスケールさせようとして混乱した話最高のScrumキメた後にスケールさせようとして混乱した話
最高のScrumキメた後にスケールさせようとして混乱した話Arata Fujimura
 
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!Arata Fujimura
 
Experience DevOps Implementation Support Service
Experience DevOps Implementation Support ServiceExperience DevOps Implementation Support Service
Experience DevOps Implementation Support ServiceArata Fujimura
 
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!Arata Fujimura
 
俺のレアジョブ利用法
俺のレアジョブ利用法俺のレアジョブ利用法
俺のレアジョブ利用法Arata Fujimura
 
DevOps導入支援、始めました
DevOps導入支援、始めましたDevOps導入支援、始めました
DevOps導入支援、始めましたArata Fujimura
 
プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発Arata Fujimura
 

More from Arata Fujimura (20)

クラスメソッドベトナム設立しました
クラスメソッドベトナム設立しましたクラスメソッドベトナム設立しました
クラスメソッドベトナム設立しました
 
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組み
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組みリーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組み
リーンスタートアップ実践者によるSDGs事業立ち上げ支援の取り組み
 
DevOpsを支える原則、3つの道
DevOpsを支える原則、3つの道DevOpsを支える原則、3つの道
DevOpsを支える原則、3つの道
 
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜
モダンオフショア開発でIT人材不足の解消を目指す 〜 ベトナムでの取り組みとこれから 〜
 
スクラムマスター募集中
スクラムマスター募集中スクラムマスター募集中
スクラムマスター募集中
 
変化に強い、継続的に学習する組織に変わるためのステップとは
変化に強い、継続的に学習する組織に変わるためのステップとは変化に強い、継続的に学習する組織に変わるためのステップとは
変化に強い、継続的に学習する組織に変わるためのステップとは
 
クラスメソッドにおけるスクラム開発の光と影
クラスメソッドにおけるスクラム開発の光と影クラスメソッドにおけるスクラム開発の光と影
クラスメソッドにおけるスクラム開発の光と影
 
モダンオフショア開発のすすめ
モダンオフショア開発のすすめモダンオフショア開発のすすめ
モダンオフショア開発のすすめ
 
スクラムワークショップ
スクラムワークショップスクラムワークショップ
スクラムワークショップ
 
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話
最高のScrumキメた後にスケールさせようとして混乱したけど今はまた最高のScrumに戻って新型コロナの影響は皆無な話
 
登壇勉強会 〜それぞれの流儀がそこにある〜
登壇勉強会 〜それぞれの流儀がそこにある〜登壇勉強会 〜それぞれの流儀がそこにある〜
登壇勉強会 〜それぞれの流儀がそこにある〜
 
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!
アジャイル開発の原則を守りつつ、マルチサイト開発を行なう!
 
PdMワークショップ
PdMワークショップPdMワークショップ
PdMワークショップ
 
最高のScrumキメた後にスケールさせようとして混乱した話
最高のScrumキメた後にスケールさせようとして混乱した話最高のScrumキメた後にスケールさせようとして混乱した話
最高のScrumキメた後にスケールさせようとして混乱した話
 
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
 
Experience DevOps Implementation Support Service
Experience DevOps Implementation Support ServiceExperience DevOps Implementation Support Service
Experience DevOps Implementation Support Service
 
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
アジャイル開発の原則を守りつつ、グローバルチームを立ち上げる!
 
俺のレアジョブ利用法
俺のレアジョブ利用法俺のレアジョブ利用法
俺のレアジョブ利用法
 
DevOps導入支援、始めました
DevOps導入支援、始めましたDevOps導入支援、始めました
DevOps導入支援、始めました
 
プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発
 

GMO TECHNOLOGY BOOT CAMP2015(PHP編)