Laravel5を使って開発してみた

Takeo Noda
Takeo NodaManager, エクスチェンジソリューションズ at Xchange Solutions Inc.
Laravel5を使って開発してみた
2015/06/27
株式会社セブンメディア 野田健夫
2こんにちは!
野田健夫(のだたけお)
https://twitter.com/nodatakeo
https://www.facebook.com/nodatakeo
株式会社セブンメディア チーフアーキテクト
3会社について
■社名 株式会社セブンメディア(英語表記: Sevenmedia,Inc.)
■所在地 〒108-0073 東京都港区三田3-9-7 三田三好ビル5F
■設立 2011年9月
■代表取締役 田村 順一
東京オフィス 福岡オフィス
4使っているサービス・技術要素
※ほかにもいろいろありますが、主なものを抜粋
5今日お話しする内容
1. 作成したアプリケーション
2. Laravel5について
3. Laravel5を採用した理由
4. 環境構築手順
5. 全体像(リクエストライフサイクル)
6. 開発フローについて
7. 各種開発TIPS
8. 速度改善について
9. まとめ
6作成したアプリケーション
アプリ(Web API) 管理画面
Kinyta という雑誌テイストのコーディネートを楽しむiPhone/Androidアプリ!
7Laravel5について
• PHPでよく知られるMVCフレームワークの1つ。
• MITライセンス。
• 2011/06に初版リリース。Taylor Otwell 氏に
よって開発。
• 2015/02にL5がリリース。
• 2015/06にLTS(LongTermSupport)のL5.1がリ
リース。PHP5.5.9以上に対応。
8Laravel5を採用した理由
• 開発効率が上がりそう!
• DIのコンストラクタ/メソッドインジェクションができる!
• アノテーションでルーティングができる!
• デバッガーが便利そう!
• 公式サイトにドキュメントが一通りある!
懸念は…
• 5.0という大きなバージョンアップの直後。4.0からいろいろ変わってる。。
• Laravelは処理が重たいというイメージ。
9DIについて
• DIは、Dependency Injectionの略で「依存性の注入」。
• マーティン・ファウラー氏によって提唱。
• 外部の設定ファイルなどでオブジェクトを定義し、注入することができ
るソフトウェアパターン。
• LaravelではProvidersの実装で登録することによって実現。
• フレームワークコア部分については、拡張できるようApplicationクラス
でContractsというインターフェイスとFacadeという実装プロクシを使っ
て登録。
L5では、コンストラクタ/メソッド
を通じてオブジェクトを注入
Auth
Laravel5 /**
* お知らせ通知APIコントローラー
* @Middleware("api.key.auth")
*/
class NoticeController extends Controller {
/**
* @return string
*/
public function __construct( )
{
$this->auth = $auth;
}
Auth $auth
10アノテーションについて
プログラムにコメント/タグ付けといったメタ情報を付与することで機能や
属性を持たせる記述方法。
Laravel5では、routingやeventにアノテーションを使用可能。
/**
* お知らせ通知APIコントローラー
* @Middleware(“apikey.auth")
*/
class NoticeController extends Controller
{
/**
* ユーザーのお知らせ内容を検索して取得する
* @Get("notices")
* @Middleware("user.auth")
* @return string
*/
public function getNoticeSearch()
{
:
}
}
Middleware:
apikey.auth, user.auth
URI:
http://webapi.hogehoge.jp/notices
アノテーションの内容が
Routingに関連付けされる
11Laravel5の環境構築手順
1. composerのインストール
mkdir -p ~/bin
cd ~/bin
curl -sS https://getcomposer.org/installer | php
ln -s composer.phar composer
vi ~/.bash_profile
PATH=$PATH:$HOME/bin:~/.composer/vendor/bin
2. Laravelのインストール
yum -y install git
composer global require "laravel/installer=~1.1"
3. Laravelのアプリを作成
cd /usr/local/apache2
laravel new (アプリ名)
chmod 777 -R (アプリ名)/storage
4. 初期設定
cd /usr/local/apache2/(アプリ名)
.env ファイルの編集(※環境に合わせて適宜)
環境構築はコマンドベースでOK
※ZipArchive not foundが表示される場合は、pecl install zipで追加。
12Laravel5推奨パッケージ
"require": {
"laravel/framework": "v5.1.6“,
"laravelcollective/annotations": "~5.1”,
“laravelcollective/html”: “~5.1",
"barryvdh/laravel-debugbar": "~2.0"
},
Laravel Collective
Annotations/Form&HTML
Laravel Debugger
composer.jsonの追加例
composer update
ライブラリの環境構築も
composerで楽々
インストール手順
13Laravel5リクエストライフサイクル
index.php
(1)フロントコントローラー
controller
model
view
app
providers
request
参考 http://laravel.com/docs/master/lifecycle
response
bootstrap
(3)リクエスト⇒レスポンス処理
services
(4) コンテナに登録し、
サービスを起動
(2)フレームワークを読み込み
middleware
router
(5)リクエストをフィルター+ルーターへ
auth
(6) Controllerを呼び出し
(7)レスポンス処理(テンプレートエンジン等)
HttpKernel
14Laravel5のフォルダ構成
├─app (アプリケーションフォルダ)
│ ├─Bootstrap
│ ├─Console
│ │ └─Commands (バッチ実装)
│ ├─Events
│ ├─Exceptions
│ ├─Handlers
│ │ ├─Commands
│ │ └─Events
│ ├─Http
│ │ ├─Controllers (コントローラー)
│ │ ├─Middleware (フィルター)
│ │ └─Requests (フォーム系リクエスト)
│ ├─Providers (サービスプロバイダー)
│ └─Services
:
:
├─bootstrap
├─config (アプリケーション設定ファイル)
├─database
│ ├─migrations (DBマイグレーション)
│ └─seeds
├─public (ドキュメントルート)
│ └─css
├─resources
│ ├─assets
│ │ └─less
│ │ └─bootstrap
│ │ └─mixins
│ ├─lang
│ │ └─en
│ └─views (テンプレートファイル)
├─setting
├─storage
│ ├─app
│ ├─framework
│ │ ├─cache
│ │ ├─sessions
│ │ └─views
│ └─logs (ログ出力先)
├─tests
└─vendor (コアフレームワーク、ライブラリなど)
appフォルダ直下にデータアク
セスオブジェクトを配置するの
が、L5の流儀。
15開発フロー
1. Model/Migration
追加
2.Controller追加
3. Routing設定
4. View追加
5. 実装
6. テスト
16CLI: artisan
Laravel3よりコマンドラインインターフェイス artisan 追加。
アプリケーションのルートディレクトリでコマンド実行することで開発をサポート。
php artisan make:model (モデル名)
⇒ app/(モデル名).php およびdatabase/migrations以下に
マイグレーションファイルを作成
php artisan migrate:status
⇒ DBマイグレーションの状態チェック
php artisan migrate
⇒ DBマイグレーションの反映
1. Model/Migration追加
アルチザン
17CLI: artisan
php artisan make:controller (コントローラー名)
⇒ app/Http/Controllers 以下にクラスファイルを作成
php artisan route:scan
⇒ ルーティングの情報を再読み込みして更新
⇒ storage/framework/route.scanned.phpにキャッシュを生成
2. Controller追加
3. Routing設定
1) コントローラーにルーティングのアノテーションを記述。
2) app/Providers/AnnotationsServiceProvider.phpの$scanRoutesにコントローラクラスパスを追記。
アルチザン
18開発TIPS
1. デバッガーについて
2. ログについて
3. バリデーションについて
4. BLOB型のデータ操作について
5. バッチについて
19開発TIPS:デバッガーについて
デバッガーを有効にすると左下に出てくるLaravelアイコンをクリック
SQLクエリ実行速度
ルーティング情報
アプリケーション実行時間情報
読み込みファイル一覧
接続履歴
パフォーマンスチューニングやデバッグで超使える!
20開発TIPS:ログについて
Log::info(‘ログ内容’);
Log::warn(‘ログ内容’);
Log::debug(‘ログ内容’);
Log::error(‘ログ内容’);
などRFC5424で定義されている7レベルをサポート
/storage/logs/laravel-YYYY-MM-DD.log
に出力
すべて
任意のファイルにログファイルを出力したいときは、同梱されているログライブラリ
Monologを使って独自実装。
public static function writeLog($level, $message)
{
$log = new MonologLogger(MonologLogger::INFO);
$log->pushHandler(
$handler = new RotatingFileHandler(
storage_path() . '/logs/'. $level. '.log',
365,
MonologLogger::INFO
)
);
$formatter = new LineFormatter("[%datetime%]¥t".$_SERVER['REMOTE_ADDR']."¥t%message%¥t%context%¥t%extra%¥n", null, true, true);
$handler->setFormatter($formatter);
$log->addInfo($message);
}
※config/app.php の ‘log’=>’daily’の場合
21開発TIPS:バリデーション(値検査)について
use ValidatesRequests;
方法1: ValidatesRequestトレイトを差し込んでバリデーション
$this->validate($request, $rules, $messages);
方法2: Validatorファサード(コンテナクラス)を使って明示的にバリデーション
$validator = Validator::make(Input::all(), $rules, $messages);
$validator->setAttributeNames($attributes);
if ($validator->fails()) {
return redirect(‘books/create’)->withErrors($validator)->withInput();
}
// continue processing...
※前のページに戻る処理がValidatesRequestsトレイト内で実装されている。
日本語に対応させるためにはこれをベースに拡張することで可能。
22開発TIPS:BLOB型のデータ操作について
BLOB型は、フレームワークとしてはまだ未サポート。プリペアドステートメントを自分で
作ってbindValue(保存時)/bindColumn(取得時)することで、操作可能。
$conn = $this->getConnection();
$grammar = $conn->getQueryGrammar();
$query = new QueryBuilder($conn, $grammar, $conn->getPostProcessor());
$query->from($this->getTable());
$attributes = $this->getAttributes();
$sql = $grammar->compileInsert($query, $attributes);
$stmt = $conn->getPdo()->prepare($sql);
$id = 1;
foreach ($attributes as $key => $value)
{
if ($key == 'data')
{
$stmt->bindValue($id, fopen($value, 'rb'), PDO::PARAM_LOB);
} else {
$stmt->bindValue($id, $value);
}
$id++;
}
$stmt->execute();
保存時の例:
23開発TIPS:バッチについて
Command追加
artisanでコマンドを追加。artisanからコマンドを実行。
php artisan make:console (コマンドクラス名) –-command=(コマンド名)
 app/Console/Commands/(コマンドクラス名).phpを追加。
 app/Console/Kernel.phpの$commandsプロパティにクラスパスを追加す
ることでartisanから(コマンド名)を実行可能。
Command実行
php artisan (コマンド名)
⇒ コマンドクラスのfireメソッドの内容が実行されます。
24Laravel5の速度改善について
1. opcacheの有効化
2. フレームワークキャッシュの適用
3. アプリケーションキャッシュの組み込み
※他にHHVM(HipHopVM)も速度改善の候補してあるが、CentoOS環境
だったこともあり、今回は未調査。
オペキャッシュ
25速度改善(1):opcacheについて
114.77ms
34.51ms
レスポンスは、2~3倍程度早くなる。
適用前
適用後
オペキャッシュ
26速度改善(1):opcacheについて
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=5000
opcache.revalidate_freq=60
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.validate_timestamps=1
opcache.revalidate_freq=60
60秒ごとにスクリプトのタイムスタンプをチェックし、キャッシュを更新
php.ini設定例:
オペキャッシュ
27速度改善(2):フレームワークキャッシュの適用
php artisan config:cache
 設定ファイルのマージ。
 vendor/config.php(権限がない場合はstorage/framework/config.php)を作成。
 php artisan config:clearでクリア。
php artisan optimize
 コアクラスのファイルをまとめる。
 vendor/compiled.php(権限がない場合はstorage/framework/compiled.php)を作成。
 bootstrap/autoload.phpから読み込んでいる。
 php artisan clear-compiledでクリア。
28速度改善(3):アプリケーションキャッシュの組み込み
$top = Cache::remember('recentTop', Config::get('cache.span'), function () {
return Top::findRecent();
});
$top = Top::findRecent();
‘recentTop’というキーのキャッシュがなければ、クロージャの中身を実行。
その内容をCongif::get(‘cache.span’)分間キャッシュで保持。
簡単に既存実装のキャッシュ化ができる。
例:TopモデルからfindRecentというメソッドでデータを取得。
Cacheクラスを適用する場合…
29まとめ
 Laravel5の開発は楽しい!
 DI
 Trait
 アノテーション
 フルスタックなフレームワーク。
 composerにより外部の機能も取り込みやすい。
 そのままでは遅い!…でも、opcacheやキャッシュ
など組み合わせれば、使える、と思う!
30補足: Laracast
Laravel学習&コミュニティサイト
31補足: Laravel求人サイト
Laravel求人サイト
32補足: 開発環境(laravel/homestead)
vagrant box add laravel/homestead
git clone https://github.com/laravel/homestead.git Homestead
bash init.sh
Vagrantを使った開発環境も提供
• Ubuntu 14.04
• PHP 5.6
• HHVM
• Nginx
• MySQL
• Postgres
• Node (With Bower, Grunt, and Gulp)
• Redis
• Memcached
• Beanstalkd
• Laravel Envoy
• Blackfire Profiler
参考 http://laravel.com/docs/5.0/homestead
1 of 32

Recommended

laravel x モバイルアプリ by
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリMasaki Oshikawa
3.7K views42 slides
behatエクステンションの作り方 by
behatエクステンションの作り方behatエクステンションの作り方
behatエクステンションの作り方Ryo Tomidokoro
2.6K views33 slides
<第1回>Laravelハンズオンセミナー by
<第1回>Laravelハンズオンセミナー<第1回>Laravelハンズオンセミナー
<第1回>LaravelハンズオンセミナーTatsuyoshi Mashiko
2.6K views45 slides
今、最もイケてるPHPフレームワークLaravel4 by
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4leverages_event
4K views34 slides
今、最もイケてるPHPフレームワークLaravel4 by
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4アシアル株式会社
12.8K views38 slides
ディレクションのすゝめ by
ディレクションのすゝめディレクションのすゝめ
ディレクションのすゝめTakeo Noda
1.1K views22 slides

More Related Content

What's hot

REST with Spring Boot #jqfk by
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfkToshiaki Maki
10.9K views201 slides
flyingV Laravel & AWS 經驗分享 by
flyingV Laravel & AWS 經驗分享flyingV Laravel & AWS 經驗分享
flyingV Laravel & AWS 經驗分享Eugene Wang
5.3K views38 slides
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5 by
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5Kenichi Mukai
4.2K views10 slides
認証機能で学ぶ Laravel 5 アプリケーション by
認証機能で学ぶ Laravel 5 アプリケーション認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーションMasashi Shinbara
17.9K views39 slides
Java + React.jsでSever Side Rendering #reactjs_meetup by
Java + React.jsでSever Side Rendering #reactjs_meetupJava + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupToshiaki Maki
17.6K views32 slides
Maven基礎 by
Maven基礎Maven基礎
Maven基礎Toshio Takiguchi
44.4K views40 slides

What's hot(20)

REST with Spring Boot #jqfk by Toshiaki Maki
REST with Spring Boot #jqfkREST with Spring Boot #jqfk
REST with Spring Boot #jqfk
Toshiaki Maki10.9K views
flyingV Laravel & AWS 經驗分享 by Eugene Wang
flyingV Laravel & AWS 經驗分享flyingV Laravel & AWS 經驗分享
flyingV Laravel & AWS 經驗分享
Eugene Wang5.3K views
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5 by Kenichi Mukai
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
第80回 PHP勉強会 / laravel.jp & Laravel Meetup Tokyo Vol.5
Kenichi Mukai4.2K views
認証機能で学ぶ Laravel 5 アプリケーション by Masashi Shinbara
認証機能で学ぶ Laravel 5 アプリケーション認証機能で学ぶ Laravel 5 アプリケーション
認証機能で学ぶ Laravel 5 アプリケーション
Masashi Shinbara17.9K views
Java + React.jsでSever Side Rendering #reactjs_meetup by Toshiaki Maki
Java + React.jsでSever Side Rendering #reactjs_meetupJava + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetup
Toshiaki Maki17.6K views
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう by Tasuku Otani
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみようAlfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Alfresco勉強会#36 alfresco 5でカスタムREST APIを作ってみよう
Tasuku Otani9.1K views
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker by Toshiaki Maki
おれおれブログシステムにServiceWorkerを導入してみた #serviceworkerおれおれブログシステムにServiceWorkerを導入してみた #serviceworker
おれおれブログシステムにServiceWorkerを導入してみた #serviceworker
Toshiaki Maki3.7K views
Laravel5.1をつかったWebアプリケーション開発 by kan-notice
Laravel5.1をつかったWebアプリケーション開発Laravel5.1をつかったWebアプリケーション開発
Laravel5.1をつかったWebアプリケーション開発
kan-notice7K views
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた by Tasuku Otani
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみたAlfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Alfresco勉強会#33 alfresco 5.1でコンテンツ自動削除を実装してみた
Tasuku Otani7.5K views
OpenWhisk - Docker action で MeCab を動かす by KUNITO Atsunori
OpenWhisk - Docker action で MeCab を動かすOpenWhisk - Docker action で MeCab を動かす
OpenWhisk - Docker action で MeCab を動かす
KUNITO Atsunori948 views
第104回 php勉強会@東京 Laravel by JunKeun Lee
第104回 php勉強会@東京 Laravel第104回 php勉強会@東京 Laravel
第104回 php勉強会@東京 Laravel
JunKeun Lee1.3K views
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう by Tomomi Kawabe
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしようAlfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Alfresco勉強会#30 alfrescoとshareのJavaScriptをデバッグしよう
Tomomi Kawabe5.9K views
仮想マシンを使った開発環境の簡単共有方法 by Hideo Takahashi
仮想マシンを使った開発環境の簡単共有方法 仮想マシンを使った開発環境の簡単共有方法
仮想マシンを使った開発環境の簡単共有方法
Hideo Takahashi3.4K views
LaravelでAPI定義を管理する by Kenjiro Kubota
LaravelでAPI定義を管理するLaravelでAPI定義を管理する
LaravelでAPI定義を管理する
Kenjiro Kubota4.1K views
誰でも出来るローカル開発環境の作り方 by 666oh666
誰でも出来るローカル開発環境の作り方誰でも出来るローカル開発環境の作り方
誰でも出来るローカル開発環境の作り方
666oh6669.4K views
脆弱性もバグ、だからテストしよう PHPカンファンレス2015 by ichikaway
脆弱性もバグ、だからテストしよう PHPカンファンレス2015脆弱性もバグ、だからテストしよう PHPカンファンレス2015
脆弱性もバグ、だからテストしよう PHPカンファンレス2015
ichikaway18K views

Similar to Laravel5を使って開発してみた

OSC福岡 20111203 by
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203Hiroshi Bunya
2.9K views35 slides
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力 by
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
6.6K views98 slides
はじめてのCodeIgniter by
はじめてのCodeIgniterはじめてのCodeIgniter
はじめてのCodeIgniterYuya Matsushima
6.4K views65 slides
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ) by
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)Fumiya Sakai
473 views21 slides
技術選択とアーキテクトの役割 by
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
42K views90 slides
ゼロからのプログラミングRails講座 Codeanywhere版 by
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
10.7K views73 slides

Similar to Laravel5を使って開発してみた(20)

Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力 by ThinReports
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
ThinReports6.6K views
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ) by Fumiya Sakai
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fundamentals of Swift & Redux (ReduxとSwiftの組み合わせ)
Fumiya Sakai473 views
技術選択とアーキテクトの役割 by Toru Yamaguchi
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
Toru Yamaguchi42K views
ゼロからのプログラミングRails講座 Codeanywhere版 by DIVE INTO CODE Corp.
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
DIVE INTO CODE Corp.10.7K views
2014年を振り返る 今年の技術トレンドとDockerについて by Masahito Zembutsu
2014年を振り返る 今年の技術トレンドとDockerについて2014年を振り返る 今年の技術トレンドとDockerについて
2014年を振り返る 今年の技術トレンドとDockerについて
Masahito Zembutsu48.1K views
実演 AppExchange アプリケーション ライフサイクル by Takahiro Kawabata
実演 AppExchange アプリケーション ライフサイクル実演 AppExchange アプリケーション ライフサイクル
実演 AppExchange アプリケーション ライフサイクル
Takahiro Kawabata312 views
Developer-Controlled Packages (DCPs) を試してみた by Takahiro Kawabata
Developer-Controlled Packages (DCPs) を試してみたDeveloper-Controlled Packages (DCPs) を試してみた
Developer-Controlled Packages (DCPs) を試してみた
Takahiro Kawabata992 views
Code igniterでテスト駆動開発 資料作成中 by Takako Miyagawa
Code igniterでテスト駆動開発 資料作成中Code igniterでテスト駆動開発 資料作成中
Code igniterでテスト駆動開発 資料作成中
Takako Miyagawa4K views
Cloud Foundry構成概要 111018 by Uemura Yuichi
Cloud Foundry構成概要 111018Cloud Foundry構成概要 111018
Cloud Foundry構成概要 111018
Uemura Yuichi12.3K views
Salesforce DUG meetup09 summer15 by Ikou Sanuki
Salesforce DUG meetup09 summer15Salesforce DUG meetup09 summer15
Salesforce DUG meetup09 summer15
Ikou Sanuki1K views
Rails基礎講座 part.2 by Jun Yokoyama
Rails基礎講座 part.2Rails基礎講座 part.2
Rails基礎講座 part.2
Jun Yokoyama680 views
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java) by Shinya Nakajima
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Visual Studio App Centerを公式サンプルアプリから学ぼうiOS(swift),Android(java)
Shinya Nakajima7.7K views
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座 by DIVE INTO CODE Corp.
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座

More from Takeo Noda

スタートアップにやさしいAWS by
スタートアップにやさしいAWSスタートアップにやさしいAWS
スタートアップにやさしいAWSTakeo Noda
32 views25 slides
Vue入門 by
Vue入門Vue入門
Vue入門Takeo Noda
5.8K views54 slides
Prometeusについてはじめてみよう / Let's start Prometeus by
Prometeusについてはじめてみよう / Let's start PrometeusPrometeusについてはじめてみよう / Let's start Prometeus
Prometeusについてはじめてみよう / Let's start PrometeusTakeo Noda
5.2K views18 slides
負荷テスト入門 by
負荷テスト入門負荷テスト入門
負荷テスト入門Takeo Noda
2.4K views33 slides
データ解析入門 by
データ解析入門データ解析入門
データ解析入門Takeo Noda
2.7K views26 slides
Zabbixで学ぶ統計解析入門 by
Zabbixで学ぶ統計解析入門Zabbixで学ぶ統計解析入門
Zabbixで学ぶ統計解析入門Takeo Noda
2.4K views22 slides

More from Takeo Noda(10)

スタートアップにやさしいAWS by Takeo Noda
スタートアップにやさしいAWSスタートアップにやさしいAWS
スタートアップにやさしいAWS
Takeo Noda32 views
Vue入門 by Takeo Noda
Vue入門Vue入門
Vue入門
Takeo Noda5.8K views
Prometeusについてはじめてみよう / Let's start Prometeus by Takeo Noda
Prometeusについてはじめてみよう / Let's start PrometeusPrometeusについてはじめてみよう / Let's start Prometeus
Prometeusについてはじめてみよう / Let's start Prometeus
Takeo Noda5.2K views
負荷テスト入門 by Takeo Noda
負荷テスト入門負荷テスト入門
負荷テスト入門
Takeo Noda2.4K views
データ解析入門 by Takeo Noda
データ解析入門データ解析入門
データ解析入門
Takeo Noda2.7K views
Zabbixで学ぶ統計解析入門 by Takeo Noda
Zabbixで学ぶ統計解析入門Zabbixで学ぶ統計解析入門
Zabbixで学ぶ統計解析入門
Takeo Noda2.4K views
Laravelとテストについて by Takeo Noda
LaravelとテストについてLaravelとテストについて
Laravelとテストについて
Takeo Noda6.7K views
Zabbix入門 by Takeo Noda
Zabbix入門Zabbix入門
Zabbix入門
Takeo Noda3.1K views
映像・音響機材入門 by Takeo Noda
映像・音響機材入門映像・音響機材入門
映像・音響機材入門
Takeo Noda4.4K views
サイト運用者に向けたバージョン管理について by Takeo Noda
サイト運用者に向けたバージョン管理についてサイト運用者に向けたバージョン管理について
サイト運用者に向けたバージョン管理について
Takeo Noda810 views

Laravel5を使って開発してみた