SlideShare a Scribd company logo
LaravelでFacadeを使わない開発
kenjiro kubota
2017/06/23
Profile
Kenjiro Kubota
istyle.inc
 PHP, HHVM/Hack, Javascript 
DTPDesigner
WebDesigner
FrontEnginner
WebApplicationEngiiner﴾now﴿
みなさんLaravel使ってますか?
Facade使ってますか?
LaravelにおけるFacadeとは
Facadeはサービスコンテナで利用可能なクラスへの ''static'' イ
ンタフェースを提供
Facadeはサービスコンテナからオブジェクトへのアクセスを
提供するクラス
デザインパターンのファサードパターンのことではありません。
こういうやつです
Route::get();
Input::get();
スタティックでどこからでも呼び出せる
めっちゃ便利
そう思っていた時期が私にもありました
しかし複数人で開発していく上で
弊害になることも・・・
例えば
@if (Input::has('hoge'))
    <p>hogeがあるよ</p>
@endif
Viewテンプレートでリクエストパラメータ値を評価したり
﴾これはまだましかも﴿
とか
class hogeController extend Controller
{
    public function insertHoge(): int
    {
        return DB::table('hoge')
                   ‐>insertGetId(['fuga' => 'piyo']);
    }
}
コントローラーでデータアクセス層が出てきたり
最悪なのが
class UserStorage
{
    public function insert(array $array): bool
    {
        $hoge = Input::get('hoge');
        ...
    }
}
逆にデータアクセス層でHttpリクエストを取得していたり
たとえしっかり設計していても
どこでも呼べてしまうFacadeに汚染される可能性がある
破綻の日は近いぞ
というわけで、Facadeをあえて封印して開発してみよう
まずはエイリアスを消してしまおう
 config/app.php 
'aliases' => [
    'App' => IlluminateSupportFacadesApp::class,
    'Artisan' => IlluminateSupportFacadesArtisan::class,
    'Auth' => IlluminateSupportFacadesAuth::class,
    'Blade' => IlluminateSupportFacadesBlade::class,
    ~~~
],
次は元から絶ってしまおう
 bootstrap/app.php 
$app‐>singleton(
    IlluminateContractsHttpKernel::class,
    AppHttpKernel::class
);
$app‐>singleton(
    IlluminateContractsConsoleKernel::class,
    AppConsoleKernel::class
);
 AppHttpKernel::class 
が継承してる
 use IlluminateFoundationHttpKernel as HttpKernel; 
protected $bootstrappers = [
    IlluminateFoundationBootstrapLoadEnvironmentVariables::class
    IlluminateFoundationBootstrapLoadConfiguration::class,
    IlluminateFoundationBootstrapHandleExceptions::class,
    IlluminateFoundationBootstrapRegisterFacades::class,
    IlluminateFoundationBootstrapRegisterProviders::class,
    IlluminateFoundationBootstrapBootProviders::class,
];
 RegisterFacades を消したいので↑をコピーして
 AppHttpKernel::class 
protected $bootstrappers = [
    IlluminateFoundationBootstrapLoadEnvironmentVariables::class
    IlluminateFoundationBootstrapLoadConfiguration::class,
    IlluminateFoundationBootstrapHandleExceptions::class,
    IlluminateFoundationBootstrapRegisterProviders::class,
    IlluminateFoundationBootstrapBootProviders::class,
];
 RegisterFacades をなかったことにしてオーバーライド
※Consoleも同様に
もうこのLaravelからFacadeは呼べなくなりました
...あれ?
Facadeが使えないとAuthとかSessionとかどうするの?
実体をそのまま呼び出せばOK
Auth::なら
use IlluminateAuthAuthManager;
public function __construct(AuthManager $authManager)
{
    $this‐>auth = $authManager‐>guard('web');
}
Session::なら
use IlluminateSessionSessionManager;
public function __construct(SessionManager $sessionManager)
{
    $this‐>session = $sessionManager‐>driver('memcached');
}
Input::は
use IlluminateHttpRequest;
public function __invoke(Request $request)
{
    $input = $request‐>all();
}
Log::は特に簡単
use PsrLogLoggerInterface;
public function __construct(LoggerInterface $logger)
{
    $this‐>logger = $logger;
}
PSR‐3のLoggerInterfaceにIlluminateLogWriter﴾Monolog﴿がバインドさ
れているのでコンストラクタインジェクションで入る
簡単ですね
依存しているものはuseを見ればわかる ‐> 破綻しにくい
実はちょっと落とし穴が...
 database/migrations/2014_10_12_000000_create_users_table.php 
use IlluminateSupportFacadesSchema;
...
public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table‐>increments('id');
        $table‐>string('name');
        $table‐>string('email')‐>unique();
        $table‐>string('password');
        $table‐>rememberToken();
        $table‐>timestamps();
    });
}
LaravelのデフォルトのマイグレーションでFacadeを使ってるの
に $bootstrappers から消し去ったので動かなくなります
こういうtraitを用意して
trait Helper
{
    /**
     * @return IlluminateDatabaseSchemaBuilder
     */
    protected function getSchemeBuilder()
    {
        return app('db')‐>connection($this‐>getConnection())
            ‐>getSchemaBuilder();
    }   
}
こんな感じでやればOKです
public function up()
{
    $this‐>getSchemeBuilder()
        ‐>create('users', function (Blueprint $table) {
            $table‐>increments('id');
        });
}
拙作のリポジトリで参考が置いてあるのでパクってください。
https://github.com/kubotak‐is/laravel‐web‐site‐boilerplate
 app/Providers/AuthServiceProvider.php も死ぬ
 app/Providers/BroadcastServiceProvider.php も死ぬ
 app/Providers/EventServiceProvider.php も死ぬ
これらは継承元のServiceProviderでFacadeを使っているので各親
を継承しないようにして自前で書いてください。
これも拙作のリポジトリで参考が置いてあるのでパクってください。
https://github.com/kubotak‐is/laravel‐web‐site‐boilerplate
まとめ
LaravelのFacadeは便利だけど多様すると見通しが悪い
Facadeを使わなくても特に困らない
とはいえ便利なので小規模なアプリや個人的に使う分には良
いのでは
余談ですが弊社にはFacade警察が居るのでFacadeを使うとレ
ビューで煽られます
おわり

More Related Content

What's hot

例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
 
小さなサービスも契約する時代
小さなサービスも契約する時代小さなサービスも契約する時代
小さなサービスも契約する時代
Ryo Mitoma
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
Yuji Otani
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
 
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
shinjiigarashi
 
いまどき(これから)のPHP開発
いまどき(これから)のPHP開発いまどき(これから)のPHP開発
いまどき(これから)のPHP開発
Kenjiro Kubota
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
 
AWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメするAWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメする
Taichi Inaba
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
disc99_
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
KEISUKE KONISHI
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
Kumazaki Hiroki
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
ota42y
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
Yoshifumi Kawai
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
Seiya Mizuno
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
Takanori Suzuki
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
naoki koyama
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
shinjiigarashi
 

What's hot (20)

例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
小さなサービスも契約する時代
小さなサービスも契約する時代小さなサービスも契約する時代
小さなサービスも契約する時代
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
導入から 10 年、PHP の trait は滅びるべきなのか その適切な使いどころと弱点、将来について
 
いまどき(これから)のPHP開発
いまどき(これから)のPHP開発いまどき(これから)のPHP開発
いまどき(これから)のPHP開発
 
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptxネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
AWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメするAWS CDKに魅入られた PHPer がオススメする
AWS CDKに魅入られた PHPer がオススメする
 
マイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPCマイクロサービスバックエンドAPIのためのRESTとgRPC
マイクロサービスバックエンドAPIのためのRESTとgRPC
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話Swaggerでのapi開発よもやま話
Swaggerでのapi開発よもやま話
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
マイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦いマイクロサービスにおける 結果整合性との戦い
マイクロサービスにおける 結果整合性との戦い
 
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭するCEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
CEDEC 2018 最速のC#の書き方 - C#大統一理論へ向けて性能的課題を払拭する
 
Apache Avro vs Protocol Buffers
Apache Avro vs Protocol BuffersApache Avro vs Protocol Buffers
Apache Avro vs Protocol Buffers
 
人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate人生がときめくAPIテスト自動化 with Karate
人生がときめくAPIテスト自動化 with Karate
 
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
新たなgitのブランチモデル「Git Feature Flow」!Git Flow,Git Hub Flow,Git Lab Flowを超えれるか?
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 

Similar to Laravelでfacadeを使わない開発

Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミLaravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
Shohei Okada
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
leverages_event
 
転職とLaravel
転職とLaravel転職とLaravel
転職とLaravel
kasikasikasi
 
NanoA
NanoANanoA
NanoA
Kazuho Oku
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
アシアル株式会社
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011Hiroh Satoh
 
Windows Windows上に作るチーム開発環境
Windows Windows上に作るチーム開発環境Windows Windows上に作るチーム開発環境
Windows Windows上に作るチーム開発環境
Tadahiro Ishisaka
 
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
Tatsuyoshi Mashiko
 
phpcon2013_zf
phpcon2013_zfphpcon2013_zf
phpcon2013_zfsasezaki
 
Scalaで型クラス入門
Scalaで型クラス入門Scalaで型クラス入門
Scalaで型クラス入門
Makoto Fukuhara
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
龍一 田中
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in Dart
Goro Fuji
 
Laravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならLaravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するなら
Shohei Okada
 
laravel x モバイルアプリ
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリ
Masaki Oshikawa
 
Step by stepで学ぶTerraformによる監視付きAWS構築
Step by stepで学ぶTerraformによる監視付きAWS構築Step by stepで学ぶTerraformによる監視付きAWS構築
Step by stepで学ぶTerraformによる監視付きAWS構築
Yo Takezawa
 
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
Yuuki Takezawa
 
From Java To Clojure
From Java To ClojureFrom Java To Clojure
From Java To Clojure
Kent Ohashi
 
3 tips of Laravel
3 tips of Laravel3 tips of Laravel
3 tips of Laravel
Kazuaki KURIU
 

Similar to Laravelでfacadeを使わない開発 (20)

Laravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミLaravel における Blade 拡張のツラミ
Laravel における Blade 拡張のツラミ
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
 
ATN No.2 Scala事始め
ATN No.2 Scala事始めATN No.2 Scala事始め
ATN No.2 Scala事始め
 
転職とLaravel
転職とLaravel転職とLaravel
転職とLaravel
 
NanoA
NanoANanoA
NanoA
 
今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4今、最もイケてるPHPフレームワークLaravel4
今、最もイケてるPHPフレームワークLaravel4
 
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
ぼくのかんがえたさいきょうのうぇぶあぷりけーしょんふれーむわーく - YAPC Asia 2011
 
Windows Windows上に作るチーム開発環境
Windows Windows上に作るチーム開発環境Windows Windows上に作るチーム開発環境
Windows Windows上に作るチーム開発環境
 
<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー<第1回>Laravelハンズオンセミナー
<第1回>Laravelハンズオンセミナー
 
phpcon2013_zf
phpcon2013_zfphpcon2013_zf
phpcon2013_zf
 
Scalaで型クラス入門
Scalaで型クラス入門Scalaで型クラス入門
Scalaで型クラス入門
 
Web技術勉強会 第33回
Web技術勉強会 第33回Web技術勉強会 第33回
Web技術勉強会 第33回
 
Inside frogc in Dart
Inside frogc in DartInside frogc in Dart
Inside frogc in Dart
 
Laravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するならLaravel で API バージョニングを実装するなら
Laravel で API バージョニングを実装するなら
 
Groovyコンファレンス
GroovyコンファレンスGroovyコンファレンス
Groovyコンファレンス
 
laravel x モバイルアプリ
laravel x モバイルアプリlaravel x モバイルアプリ
laravel x モバイルアプリ
 
Step by stepで学ぶTerraformによる監視付きAWS構築
Step by stepで学ぶTerraformによる監視付きAWS構築Step by stepで学ぶTerraformによる監視付きAWS構築
Step by stepで学ぶTerraformによる監視付きAWS構築
 
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
 
From Java To Clojure
From Java To ClojureFrom Java To Clojure
From Java To Clojure
 
3 tips of Laravel
3 tips of Laravel3 tips of Laravel
3 tips of Laravel
 

More from Kenjiro Kubota

アイスタイル特設サイトにおけるVue.js導入事例(再演)
アイスタイル特設サイトにおけるVue.js導入事例(再演) アイスタイル特設サイトにおけるVue.js導入事例(再演)
アイスタイル特設サイトにおけるVue.js導入事例(再演)
Kenjiro Kubota
 
gRPC入門
gRPC入門gRPC入門
gRPC入門
Kenjiro Kubota
 
アイスタイル特設サイトにおけるVue.jsの導入事例
アイスタイル特設サイトにおけるVue.jsの導入事例アイスタイル特設サイトにおけるVue.jsの導入事例
アイスタイル特設サイトにおけるVue.jsの導入事例
Kenjiro Kubota
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
Kenjiro Kubota
 
フロントエンドエンジニアが知るべきFirebaseの世界
フロントエンドエンジニアが知るべきFirebaseの世界フロントエンドエンジニアが知るべきFirebaseの世界
フロントエンドエンジニアが知るべきFirebaseの世界
Kenjiro Kubota
 
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組みPHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
Kenjiro Kubota
 
カメラを利用したアプリを作って約1000人で遊んだ話
カメラを利用したアプリを作って約1000人で遊んだ話カメラを利用したアプリを作って約1000人で遊んだ話
カメラを利用したアプリを作って約1000人で遊んだ話
Kenjiro Kubota
 
FirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見たFirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見た
Kenjiro Kubota
 
introducing vue-wait-component
introducing vue-wait-componentintroducing vue-wait-component
introducing vue-wait-component
Kenjiro Kubota
 
HHVM/Hackを本番投入した話
HHVM/Hackを本番投入した話HHVM/Hackを本番投入した話
HHVM/Hackを本番投入した話
Kenjiro Kubota
 
HackのAsyncCurlで死んだ話
HackのAsyncCurlで死んだ話HackのAsyncCurlで死んだ話
HackのAsyncCurlで死んだ話
Kenjiro Kubota
 
LaravelでAPI定義を管理する
LaravelでAPI定義を管理するLaravelでAPI定義を管理する
LaravelでAPI定義を管理する
Kenjiro Kubota
 
2017: A CSS Design Odyssey
2017: A CSS Design Odyssey2017: A CSS Design Odyssey
2017: A CSS Design Odyssey
Kenjiro Kubota
 
Introducing hhvm hack-async
Introducing hhvm hack-asyncIntroducing hhvm hack-async
Introducing hhvm hack-async
Kenjiro Kubota
 
Responsableを使ったadr実装
Responsableを使ったadr実装Responsableを使ったadr実装
Responsableを使ったadr実装
Kenjiro Kubota
 
土日でLineみたいなチャット作ってきた!
土日でLineみたいなチャット作ってきた!土日でLineみたいなチャット作ってきた!
土日でLineみたいなチャット作ってきた!
Kenjiro Kubota
 
Viewを活用して複雑化と戦う
Viewを活用して複雑化と戦うViewを活用して複雑化と戦う
Viewを活用して複雑化と戦う
Kenjiro Kubota
 
Laravel aspectで関心の分離
Laravel aspectで関心の分離Laravel aspectで関心の分離
Laravel aspectで関心の分離
Kenjiro Kubota
 

More from Kenjiro Kubota (18)

アイスタイル特設サイトにおけるVue.js導入事例(再演)
アイスタイル特設サイトにおけるVue.js導入事例(再演) アイスタイル特設サイトにおけるVue.js導入事例(再演)
アイスタイル特設サイトにおけるVue.js導入事例(再演)
 
gRPC入門
gRPC入門gRPC入門
gRPC入門
 
アイスタイル特設サイトにおけるVue.jsの導入事例
アイスタイル特設サイトにおけるVue.jsの導入事例アイスタイル特設サイトにおけるVue.jsの導入事例
アイスタイル特設サイトにおけるVue.jsの導入事例
 
Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。Akkaとは。アクターモデル とは。
Akkaとは。アクターモデル とは。
 
フロントエンドエンジニアが知るべきFirebaseの世界
フロントエンドエンジニアが知るべきFirebaseの世界フロントエンドエンジニアが知るべきFirebaseの世界
フロントエンドエンジニアが知るべきFirebaseの世界
 
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組みPHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
PHP,Go,Elasticsearchによる、@cosmeを5倍速くする取り組み
 
カメラを利用したアプリを作って約1000人で遊んだ話
カメラを利用したアプリを作って約1000人で遊んだ話カメラを利用したアプリを作って約1000人で遊んだ話
カメラを利用したアプリを作って約1000人で遊んだ話
 
FirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見たFirebaseとNuxtでLPを作って見た
FirebaseとNuxtでLPを作って見た
 
introducing vue-wait-component
introducing vue-wait-componentintroducing vue-wait-component
introducing vue-wait-component
 
HHVM/Hackを本番投入した話
HHVM/Hackを本番投入した話HHVM/Hackを本番投入した話
HHVM/Hackを本番投入した話
 
HackのAsyncCurlで死んだ話
HackのAsyncCurlで死んだ話HackのAsyncCurlで死んだ話
HackのAsyncCurlで死んだ話
 
LaravelでAPI定義を管理する
LaravelでAPI定義を管理するLaravelでAPI定義を管理する
LaravelでAPI定義を管理する
 
2017: A CSS Design Odyssey
2017: A CSS Design Odyssey2017: A CSS Design Odyssey
2017: A CSS Design Odyssey
 
Introducing hhvm hack-async
Introducing hhvm hack-asyncIntroducing hhvm hack-async
Introducing hhvm hack-async
 
Responsableを使ったadr実装
Responsableを使ったadr実装Responsableを使ったadr実装
Responsableを使ったadr実装
 
土日でLineみたいなチャット作ってきた!
土日でLineみたいなチャット作ってきた!土日でLineみたいなチャット作ってきた!
土日でLineみたいなチャット作ってきた!
 
Viewを活用して複雑化と戦う
Viewを活用して複雑化と戦うViewを活用して複雑化と戦う
Viewを活用して複雑化と戦う
 
Laravel aspectで関心の分離
Laravel aspectで関心の分離Laravel aspectで関心の分離
Laravel aspectで関心の分離
 

Recently uploaded

CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
yamamotominami
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
Yoshitaka Kawashima
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
You&I
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
fisuda
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
You&I
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
ooishi1
 

Recently uploaded (6)

CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdfCO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
CO2排出量見える化・削減・報告クラウド「アスエネ」サービス紹介_Saleshub.pdf
 
Grokking Simplicity探訪
Grokking Simplicity探訪Grokking Simplicity探訪
Grokking Simplicity探訪
 
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
アジャイルの30年(Tree Decades of Agileというブログ記事に関する要約)
 
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
FIWARE Orion Context Broker コンテキスト情報管理 (Orion 4.0.0対応)
 
NIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしようNIST Cybersecurity Framework 2.0の変更点整理をしよう
NIST Cybersecurity Framework 2.0の変更点整理をしよう
 
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
受発注バスターズ説明資料  株式会社batton Saleshub掲載用.pdf
 

Laravelでfacadeを使わない開発