SlideShare a Scribd company logo
モダンPHP テクニック12 選
―PsalmとPHP 8.1で今はこんなこともできる!―
五十嵐進士(sji)
自己紹介
sji / sj-i / @sji_ch
SNS 上でのアイコンはGitHub が自
動生成した奴
生まれも育ちも仙台
PHP カンファレンス仙台とかやった
ふつうのサラリーマン
株式会社インフィニットループ仙台
支社所属
スマホゲーのサーバサイドプログラ
マ
その他
一昨年娘ができた
かわいい
WEB+DB PRESS の現PHP 連載担当
12/24(金)発売の126号はPHP
8.1 の紹介
Agenda
PHP の今について
モダンなPHP のテクニック12 個くらい紹介
PHP の今
PHP 8.1 が出た
型の表現力が強化され、扱いも更に厳格化
readonly
never
交差型
Enum、などなど
Fiber で非同期処理が更に便利に
汎用言語化が更に進む
「ゆるふわPHP が汎用言語ですって?」
お前らPHPの型がゆるふわゆるふわ言うけど
な、PHPなら型を宣言した値が勝手にnullに
なったりしねーし
一部の言語、ここで血反吐をはき倒れる
ていうか、今のPHP はもうそんなにゆるふわ
でもないんです!
大静的型解析時代
型情報を使う静的解析ツールが隆盛
PHPStan
Psalm
Phan
静的解析ツールは言語の弱点を補うものとなりがり
PHP はゆるふわな型が弱点
ガチガチな静的解析ツールで補う
JetBrains の調査いわく
「どんな品質ツールを使っていますか」
PHPStan Psalm Phan 計
2019 9% 1% 5% 15%
2020 11% 3% 2% 16%
2021 18% 9% 2% 29%
「静的解析ツールを使ってますか」
はい いいえ なにそれ
2021 33% 38% 28%
https://www.jetbrains.com/lp/devecosystem-2019/php/
https://www.jetbrains.com/lp/devecosystem-2020/php/
https://www.jetbrains.com/lp/devecosystem-2021/php/
静的型解析の何が嬉しい?
実行しなくてもバグに気づける
PHP の言語自体を超えた型の表現力
エディタの補完やナビゲーションの強化
Psalm
Vimeo で使われている静的解析ツール
先日原作者は卒業した、が、今も活発に開発
比較的型の表現力が高い
ここから12 のワザを大紹介
1. クラスをボコボコ生やす
PHP でデータや処理に型をつける
最強の手段
言語機能やツールの恩恵を最大限に
得られる
Constructor Property Promotion
最高
ちょっとした処理や値の表現でもク
ラスを定義
class SomeThing

{

public function __construct(

public int $id,

public string $name,

public Dependency $obj,

) {

}

}
2. DI コンテナでautowiring
多くのDI コンテナで利用可能
Laravel のContainer やPHP-DI
など
コンストラクタへ依存クラスを並べ
ていくだけ
自分でnew するのはVO とかテスト
とかごく一部に
Laravel でもFacade よりDI
// DI コンテナが勝手に依存先を生成

public function __construct(

public readonly Dependency1 $obj1
public readonly Dependency2 $obj2
) {

}
3. 型は早めにつける
@varより@param
どんどん呼び出し元へ追いやる
結果コントローラなどリクエス
トの入口のほうに
誤りは早く検知できるほどよい
リリースの後より前
テスト環境よりCI
CI より手元のエディタ
リクエスト処理の後半より前半


// こっちより

public function f(array $items) {

/** @var Item $item */

foreach ($items as $item) {

}

}



// こっち

/** @param Item[] $items */

public function f(array $items) {

foreach ($items as $item) {

}

}
4. 静的解析可能な入力値検査
一部ライブラリで静的型検査フレ
ンドリーに入力値の検査やキャス
トが可能
webmozart/assert
azjezz/psl
cuyz/valinor
OpenAPI やJSON scheme などIDL
からのクラス自動生成も有効
// webmozart/assert の例

Assert::integer($id);

// $id はこの先 int 扱い



// azjezz/psl の例

$spec = Typeshape([

'id' => Typeint(),

'name' => Typestring(),

'age' => Typeoptional(

Typeint()

)

]);

// $input をバリデーションしつつキャスト

$input = $spec->coerce($_POST['input']
// $input はこの先で↓の扱い

// array{id: int, name: string, age?:
5. 静的解析可能なconfig
連想配列のかわりにValueObject を
使う
DI コンテナに登録して取り出すの
もよい
型の保護や補完が効く
名前付き引数を利用
順番の意識が不要に
設定項目の追加や削除なども静
的に検知可能
return new DatabaseConfiguration(

driver: new MySQLDriverConfiguration
host: 'localhost',

port: 3306,

db_name: 'test_db',

username: 'test',

password: 'mogera',

),

)
6. 静的解析可能なCollection を使う
最近illuminate/collections がジェネ
リクスに対応
doctrine/collections も以前からジェ
ネリクスに対応
PhpStorm もそれらのジェネリクス
にある程度対応
あかん場合は@varと@psalm-
ignore-varを併用


/** @param Collection<User> $users */

public function f(Collection $users)
foreach ($users as $user) {

// $user は User として型推論

}

}
7. 静的解析可能なOrm を使う
doctrine/orm
cycle/orm も2 系以降でいくらか
eloquent はlarave-pluginやアノテー
ション生成が必要
Orm を自作してでも静的解析に対
応させる
cuyz/valinor など既存hydrator
の利用も可
// $user は User|null と推論される

$user = $entityManager

->getRepository(User::class)

->find(1);
8. 静的解析可能な配列を使う
psalm の型アノテーションでは配
列のキーや値の型が指定可能
「連番の数値添字が0から順に並ん
だ配列」(list)も指定可能
non-empty-array やnon-empty-list
もある
Shapes で構造体的な配列やタプル
も宣言できる
/** @param array<ItemType> $p */

/** @param array<int, ItemType> $p */

/** @param list<ItemType> $p */

/** @param non-empty-array<ItemType> $p
/**

* @param array{

* id: int,

* name: string

* } $p 

*/

/** @param array{int, string} */
9. 静的解析可能な分岐網羅を使う
PHP 8.0 で入ったmatch は分岐網羅
検査がある
想定してない値が来ると例外
Psalm はdefault のないmatch や
switch で静的に分岐網羅を検査でき
る場合がある
値のUnion やEnum をうまく使う
無闇に可変関数呼び出しなどの動的
処理は使わない、愚直に分岐を書く
enum Result {

case Succeed;

case Failed;

}



// ResultStatus::Failed を網羅してないの
// 静的解析段階でエラーになる

function f(Result $status): int {

return match ($status) {

ResultStatus::Succeed => 1,

};

}
10. 書き込み、状態を減らす
PHP 8.1 でreadonly が追加
Psalm でも@immutable や@pure
などがある
なるべく完全コンストラクタ+不変
状態を持たない= 各生成時点で全情
報が必要
小さなクラスが増え神クラス化
も防ぎやすくなる
class ReadOnlyClass

{

public function __construct(

public readonly int $id,

public readonly string $name,

) {

}

}

/** @psalm-immutable */

class ImmutableClass

{

public function __construct(

public int $id,

public string $name,

) {

}

}
11. なるべく多くを型で表現
ValueObject 、DTO みたいなのをバ
ンバン作る
ID の種類ごとに異なるクラスを定
義する
ジェネリクスを使ってもよい
実クラスを定義しなくとも型
タグを使える
ちかぢか同僚が会社のブロ
グで紹介するかも
trait ItemId {

public function __construct(

public readonly int $value,

) {

}

}

class ConsumableItemId {use ItemId;}

class EquipmentItemId {use ItemId;}



class Consumableuser {

public function useItem(

ConsumableItemId $item_id

): void {

}

}
12. Package-By-Feature (に寄せる)
UserController
UserModel
UserView
ItemController
ItemModel
ItemView
CurrencyController
CurrencyModel
CurrencyView
User Item Currency
Package By Feature


UserModel
ItemModel
CurrencyModel
UserController
ItemController
CurrencyController
UserView
ItemView
CurrencyView
Model Controller View
Package By Layer
PBL (Package-By-Layer) へ寄せすぎない
〜Controllerだけのディレクトリ
〜Repositoryだけのディレクトリ
何が嬉しいのか
@psalm-internal がうまく機能するよう書く
13. みんな(会社を動かして)PHP
Foundation に寄付をするんだ
おしまい

More Related Content

What's hot

BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
日本マイクロソフト株式会社
 
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
Rui Hirokawa
 
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたRedmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
Kohei Nakamura
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみた
y-uti
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
Preferred Networks
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
増田 亨
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
Kazuhiro Suga
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
Kohei Tokunaga
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
Masahito Zembutsu
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】
dcubeio
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
Masahito Zembutsu
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話
y-uti
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
Hideyuki Tanaka
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
Hiroshi Tokumaru
 

What's hot (20)

BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
GoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホンGoによるWebアプリ開発のキホン
GoによるWebアプリ開発のキホン
 
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。 【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
【BS4】時は来たれり。今こそ .NET 6 へ移行する時。
 
PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話PHP 5.5ネーティブキャッシュの話
PHP 5.5ネーティブキャッシュの話
 
Redmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみたRedmine にいろいろ埋め込んでみた
Redmine にいろいろ埋め込んでみた
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
 
JIT のコードを読んでみた
JIT のコードを読んでみたJIT のコードを読んでみた
JIT のコードを読んでみた
 
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
 
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
ゼロから作るKubernetesによるJupyter as a Service ー Kubernetes Meetup Tokyo #43
 
ドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解するドメイン駆動設計 基本を理解する
ドメイン駆動設計 基本を理解する
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】Apiドキュメンテーションツールを使いこなす【api blueprint編】
Apiドキュメンテーションツールを使いこなす【api blueprint編】
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
PHP の GC の話
PHP の GC の話PHP の GC の話
PHP の GC の話
 
関数プログラミング入門
関数プログラミング入門関数プログラミング入門
関数プログラミング入門
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 

Similar to モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―

Osc2014
Osc2014Osc2014
Osc2014
Soudai Sone
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015
Rui Hirokawa
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarSotaro Karasawa
 
PHPの今とこれから2017
PHPの今とこれから2017PHPの今とこれから2017
PHPの今とこれから2017
Rui Hirokawa
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
Rui Hirokawa
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
Rui Hirokawa
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
Hideo Kashioka
 
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそHiromu Shioya
 
PHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionPHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special Edition
Rui Hirokawa
 
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
Hisateru Tanaka
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecation
y-uti
 
PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作ったPHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作った
Hironobu Saitoh
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
shinjiigarashi
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
Hideo Kashioka
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
Takuya Sato
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
Yusuke Ando
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
sasezaki
 
PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~
Rui Hirokawa
 
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerPhpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginer
Hideo Kashioka
 
NanoA
NanoANanoA
NanoA
Kazuho Oku
 

Similar to モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!― (20)

Osc2014
Osc2014Osc2014
Osc2014
 
PHPの今とこれから2015
PHPの今とこれから2015PHPの今とこれから2015
PHPの今とこれから2015
 
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI SeminarModern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
 
PHPの今とこれから2017
PHPの今とこれから2017PHPの今とこれから2017
PHPの今とこれから2017
 
PHPの今とこれから2016
PHPの今とこれから2016PHPの今とこれから2016
PHPの今とこれから2016
 
最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)最新PHP事情 (2000年7月22日,PHPカンファレンス)
最新PHP事情 (2000年7月22日,PHPカンファレンス)
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
 
20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ20090415 すばらしきSymfonyの世界へようこそ
20090415 すばらしきSymfonyの世界へようこそ
 
PHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special EditionPHP Now and then 2018 : WordPress Special Edition
PHP Now and then 2018 : WordPress Special Edition
 
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
第21回関西PHP勉強会 ReactPHPは もっと流行って欲しい #phpkansai
 
RFC: "var" Deprecation
RFC: "var" DeprecationRFC: "var" Deprecation
RFC: "var" Deprecation
 
PHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作ったPHPで並列処理する ライブラリを作った
PHPで並列処理する ライブラリを作った
 
PHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見るPHP で実行中のスクリプトの動作を下から覗き見る
PHP で実行中のスクリプトの動作を下から覗き見る
 
PHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッションPHPカンファレンス2016 初心者セッション
PHPカンファレンス2016 初心者セッション
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
 
8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室8時間耐久 PHP構築の教室
8時間耐久 PHP構築の教室
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
 
PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~PHP4の今 ~日本語対応と最近のトピックス~
PHP4の今 ~日本語対応と最近のトピックス~
 
Phpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginerPhpcon tokyo 20120_bigginer
Phpcon tokyo 20120_bigginer
 
NanoA
NanoANanoA
NanoA
 

Recently uploaded

FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
Yuuitirou528 default
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 

Recently uploaded (16)

FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料CS集会#13_なるほどわからん通信技術 発表資料
CS集会#13_なるほどわからん通信技術 発表資料
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 

モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―