Suche senden
Hochladen
PSR-1 と PSR-2 を5分でざっくり理解する
•
Als PPTX, PDF herunterladen
•
7 gefällt mir
•
17,795 views
Wataru Terada
Folgen
PHP の PSR-1 と PSR-2 を 5分 でざっくり理解するためのスライド。
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 57
Jetzt herunterladen
Empfohlen
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
例外設計における大罪
例外設計における大罪
Takuto Wada
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
C# における Redis 徹底活用
C# における Redis 徹底活用
Takaaki Suzuki
Go入門
Go入門
Takuya Ueda
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
Empfohlen
Unified JVM Logging
Unified JVM Logging
Yuji Kubota
例外設計における大罪
例外設計における大罪
Takuto Wada
PHP AST 徹底解説
PHP AST 徹底解説
do_aki
それはYAGNIか? それとも思考停止か?
それはYAGNIか? それとも思考停止か?
Yoshitaka Kawashima
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
C# における Redis 徹底活用
C# における Redis 徹底活用
Takaaki Suzuki
Go入門
Go入門
Takuya Ueda
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
ミクシィ 21卒向け Android研修
ミクシィ 21卒向け Android研修
akkuma
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
Elasticsearch as a Distributed System
Elasticsearch as a Distributed System
Satoyuki Tsukano
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
Takuya Takaseki
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP
Yusuke Ando
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
DeNA
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発
Arata Fujimura
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料
8a1
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
Weitere ähnliche Inhalte
Was ist angesagt?
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
Yoji Kanno
ミクシィ 21卒向け Android研修
ミクシィ 21卒向け Android研修
akkuma
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
Koichi Tanaka
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
Ito Takayuki
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
pospome
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Masahito Zembutsu
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Shin Ohno
Elasticsearch as a Distributed System
Elasticsearch as a Distributed System
Satoyuki Tsukano
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
Takuya Takaseki
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
Amazon Web Services Japan
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
kwatch
新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP
Yusuke Ando
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
DeNA
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
Takuto Wada
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
Yuta Imai
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
モノビット エンジン
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
Atsushi Nakamura
プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発
Arata Fujimura
Was ist angesagt?
(20)
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
オブジェクト指向エクササイズのススメ
オブジェクト指向エクササイズのススメ
ミクシィ 21卒向け Android研修
ミクシィ 21卒向け Android研修
やはりお前らのMVCは間違っている
やはりお前らのMVCは間違っている
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
CircleCIのinfrastructureを支えるTerraformのCI/CDパイプラインの改善
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Mercari JPのモノリスサービスをKubernetesに移行した話 PHP Conference 2022 9/24
Elasticsearch as a Distributed System
Elasticsearch as a Distributed System
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
VPCのアウトバウンド通信を制御するためにおさえておきたい設計ポイント
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
[Aurora事例祭り]Amazon Aurora を使いこなすためのベストプラクティス
O/Rマッパーによるトラブルを未然に防ぐ
O/Rマッパーによるトラブルを未然に防ぐ
新標準PSRに学ぶきれいなPHP
新標準PSRに学ぶきれいなPHP
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
Unity 2018-2019を見据えたDeNAのUnity開発のこれから [DeNA TechCon 2019]
RESTful Web アプリの設計レビューの話
RESTful Web アプリの設計レビューの話
オンラインゲームの仕組みと工夫
オンラインゲームの仕組みと工夫
ネットワーク ゲームにおけるTCPとUDPの使い分け
ネットワーク ゲームにおけるTCPとUDPの使い分け
世界一わかりやすいClean Architecture
世界一わかりやすいClean Architecture
プラクティス厨から始めるアジャイル開発
プラクティス厨から始めるアジャイル開発
Andere mochten auch
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料
8a1
Play jjug2012spring
Play jjug2012spring
Takafumi Ikeda
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
suno88
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
Shogo Kawahara
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
Masashi Shinbara
traitを使って楽したい話
traitを使って楽したい話
infinite_loop
東京から沖縄に移住したからこそわかるクラウドとコミュニティの有り難み 〜人はもっと自由になれる〜
東京から沖縄に移住したからこそわかるクラウドとコミュニティの有り難み 〜人はもっと自由になれる〜
龍治 常盤木
Laravelのeloquent だけ入れた話
Laravelのeloquent だけ入れた話
Masataka Kono
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Masashi Shinbara
第7回こども病院移転計画調査委員会資料
第7回こども病院移転計画調査委員会資料
f_kodomo
はじめて作ったアプリが10,000ダウンロード達成したから自慢する
はじめて作ったアプリが10,000ダウンロード達成したから自慢する
Natsumi Oki
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
Fumiya Sakai
Electronで社内ツールを作ったお話
Electronで社内ツールを作ったお話
sters
DMMの闇に触れた話
DMMの闇に触れた話
Katsunori Tanaka
Trait とは? その使い道を考えてみる
Trait とは? その使い道を考えてみる
Takuya Fujimura
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Masashi Shinbara
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
Masahito Zembutsu
コンテンツ作りの三原則
コンテンツ作りの三原則
INFOBAHN.inc(株式会社インフォバーン)
Andere mochten auch
(18)
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料
【ハンズオン】初めてのUnityで作る「3D野球盤」_"8a1"20150204発表資料
Play jjug2012spring
Play jjug2012spring
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
NetBeans、FuelPHP と過ごしたこの 2 ヶ月
Composer による依存管理 と Packagist によるライブラリの公開
Composer による依存管理 と Packagist によるライブラリの公開
先取り!PHP 7 と WordPress
先取り!PHP 7 と WordPress
traitを使って楽したい話
traitを使って楽したい話
東京から沖縄に移住したからこそわかるクラウドとコミュニティの有り難み 〜人はもっと自由になれる〜
東京から沖縄に移住したからこそわかるクラウドとコミュニティの有り難み 〜人はもっと自由になれる〜
Laravelのeloquent だけ入れた話
Laravelのeloquent だけ入れた話
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
Twilio を使えば簡単にできる アプリケーションと電話/SMS連携
第7回こども病院移転計画調査委員会資料
第7回こども病院移転計画調査委員会資料
はじめて作ったアプリが10,000ダウンロード達成したから自慢する
はじめて作ったアプリが10,000ダウンロード達成したから自慢する
SwiftとReactNativeで似たようなUIを作った際の記録
SwiftとReactNativeで似たようなUIを作った際の記録
Electronで社内ツールを作ったお話
Electronで社内ツールを作ったお話
DMMの闇に触れた話
DMMの闇に触れた話
Trait とは? その使い道を考えてみる
Trait とは? その使い道を考えてみる
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
レイヤードアーキテクチャを意識した PHPアプリケーションの構築 ver2
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
コンテンツ作りの三原則
コンテンツ作りの三原則
Ähnlich wie PSR-1 と PSR-2 を5分でざっくり理解する
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
Wataru Terada
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
Sotaro Karasawa
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
sters
PHP language update 201211
PHP language update 201211
Moriyoshi Koizumi
JavaScript非同期処理 入門
JavaScript非同期処理 入門
Ishibashi Ryosuke
Hack/HHVM 入門
Hack/HHVM 入門
y-uti
PHPの今とこれから2021
PHPの今とこれから2021
Rui Hirokawa
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
noldor
普通のプログラミング言語R
普通のプログラミング言語R
Shuyo Nakatani
PHPの今とこれから2019
PHPの今とこれから2019
Rui Hirokawa
PHPの今とこれから 2013
PHPの今とこれから 2013
Rui Hirokawa
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Masashi Shinbara
Gaucheでマクロを書こう
Gaucheでマクロを書こう
Hideaki Nagamine
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
CHY72
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Wataru Terada
Cakephp api
Cakephp api
Eiji Yokota
Phpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakada
Junpei Nakada
symfony 1.2を支えるサブフレームワーク
symfony 1.2を支えるサブフレームワーク
Katsuhiro Ogawa
Rubinius Under a Microscope
Rubinius Under a Microscope
高広 内山
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
Kouhei Sutou
Ähnlich wie PSR-1 と PSR-2 を5分でざっくり理解する
(20)
技術ドキュメントで難しい英文に出会ったら
技術ドキュメントで難しい英文に出会ったら
Modern PHP Programming @ PFI Seminar
Modern PHP Programming @ PFI Seminar
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHPBLT#6 PHPの未来に入るかもしれない機能の紹介
PHP language update 201211
PHP language update 201211
JavaScript非同期処理 入門
JavaScript非同期処理 入門
Hack/HHVM 入門
Hack/HHVM 入門
PHPの今とこれから2021
PHPの今とこれから2021
アルゴリズム+データ構造勉強会(8)
アルゴリズム+データ構造勉強会(8)
普通のプログラミング言語R
普通のプログラミング言語R
PHPの今とこれから2019
PHPの今とこれから2019
PHPの今とこれから 2013
PHPの今とこれから 2013
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
Gaucheでマクロを書こう
Gaucheでマクロを書こう
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
知ってるようで意外と知らないPHPの便利関数
知ってるようで意外と知らないPHPの便利関数
Cakephp api
Cakephp api
Phpmatsuri2011 LT j_nakada
Phpmatsuri2011 LT j_nakada
symfony 1.2を支えるサブフレームワーク
symfony 1.2を支えるサブフレームワーク
Rubinius Under a Microscope
Rubinius Under a Microscope
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
PHPでPostgreSQLとPGroongaを使って高速日本語全文検索!
Mehr von Wataru Terada
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
Wataru Terada
PHP選んで良かったこと
PHP選んで良かったこと
Wataru Terada
僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること
Wataru Terada
PHP基本的関数QUIZ
PHP基本的関数QUIZ
Wataru Terada
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
Wataru Terada
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには
Wataru Terada
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
Wataru Terada
初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと
Wataru Terada
単体テストで工数を短縮する
単体テストで工数を短縮する
Wataru Terada
デグレを防ぐテストの書き方
デグレを防ぐテストの書き方
Wataru Terada
CakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrant
Wataru Terada
Mehr von Wataru Terada
(11)
Chrome拡張で改善 表紙
Chrome拡張で改善 表紙
PHP選んで良かったこと
PHP選んで良かったこと
僕がエンジニアとしていつも考えていること
僕がエンジニアとしていつも考えていること
PHP基本的関数QUIZ
PHP基本的関数QUIZ
CakePHP を使ってよかったこと
CakePHP を使ってよかったこと
自動テストで開発効率を上げるには
自動テストで開発効率を上げるには
本当のオブジェクト指向は可読性を上げる
本当のオブジェクト指向は可読性を上げる
初めてのTravisCIでハマったこと
初めてのTravisCIでハマったこと
単体テストで工数を短縮する
単体テストで工数を短縮する
デグレを防ぐテストの書き方
デグレを防ぐテストの書き方
CakePHP の Cookbook に翻訳貢献する方法と vagrant
CakePHP の Cookbook に翻訳貢献する方法と vagrant
Kürzlich hochgeladen
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
atsushi061452
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
WSO2
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
Toru Tamaki
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
CRI Japan, Inc.
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
iPride Co., Ltd.
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
Toru Tamaki
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
sn679259
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
CRI Japan, Inc.
Kürzlich hochgeladen
(10)
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
PSR-1 と PSR-2 を5分でざっくり理解する
1.
PSR-1 と PSR-2
を 5分でざっくり理解する 2016-01-13 PHP BLT #2 GMOリサーチ 寺田 渉 Facebook: twitter: github: 寺田渉 @wa_terada waterada
2.
自己紹介(仕事) - PHP (CakePHP)
を主に使って開発 - 継続的インテグレーション - github + git flow で運用 - PHPUnit で カバレッジ 100% - Behat (Selenium Driver 経由の画面テスト) 利用 - vagrant で開発環境構築
3.
自己紹介(趣味) CakePHP 公式ドキュメント 翻訳
4.
自己紹介(趣味) ボードゲーム 翻訳
5.
自己紹介(趣味) TED 翻訳
6.
プログラミング & 翻訳 大好き人間です 自己紹介
7.
CakePHP に issue
を立てて、 修正を pull request してみた という記事を Qiita で公開致しました。 コーディングスタイル違反 の指摘が 結構ありまして、今一度、 PSR-1, PSR-2 を復習しておこう と思った次第です。
8.
PSR-1 基本コーディング規約 PSR-2 コーディングスタイル 今日、伝えたいこと! サクッと理解してしまおう。
9.
これから問題を出します。 2つの書き方が出ますので、 1 番が PSR
準拠 だと思ったら 手を挙げてください。 で、今日のルール
10.
PSR-1 基本コーディング規約 まずは
11.
<?php $text = "abc"; どっちが準拠? <? $text
= "abc"; 1. 2.
12.
<?php $text = "abc"; どっちが準拠? 1. <?php
か <?= のみ可!
13.
どっちが準拠? 1. 2. PHP ファイルは... BOM付き UTF-8 BOM無し
UTF-8
14.
どっちが準拠? PHP ファイルは... BOM無しで! 2. BOM無し
UTF-8
15.
<?php $aaa = 1; どっちが準拠? <?php $aaa
= 1; define('AAA', 1); 1. 2. aaa_config.php <?php define('AAA', 1); aaa_define.php aaa.php
16.
どっちが準拠? 呼んだだけで動く(副作用有)系 と、 宣言系 は一緒のファイルに書いちゃダメ。 1. <?php $aaa
= 1; aaa_config.php <?php define('AAA', 1); aaa_define.php
17.
class xAbc extends
... どっちが準拠? class XAbc extends ... 1. 2.
18.
どっちが準拠? クラス は 大文字始まり! class
XAbc extends ...2.
19.
public function getValue() どっちが準拠? public
function get_value() 1. 2.
20.
どっちが準拠? メソッド は 小文字始まりのキャメル。 public
function getValue()1.
21.
const MAX_VALUE =
1; どっちが準拠? const maxValue = 1; 1. 2.
22.
どっちが準拠? 定数 は 大文字! const
MAX_VALUE = 1;1.
23.
PSR-2 コーディングスタイル 次に
24.
$a = TRUE; どっちが準拠? $a
= true; 1. 2.
25.
どっちが準拠? 予約語 は 小文字で
! $a = true; 2.
26.
public function getValue() どっちが準拠? public
function getValue() 1. 2. ^^^^ スペース4つ でインデント ^^^^ TAB でインデント
27.
どっちが準拠? インデント は 半角スペース
で! 1. public function getValue() ^^^^ スペース4つ でインデント
28.
}[EOF] どっちが準拠? } [EOF] 1. 2. ファイルの末尾に改行なし ファイルの末尾に改行あり
29.
どっちが準拠? 末尾の改行 必須! } [EOF] 2. ファイルの末尾に改行あり
30.
namespace AaaBbb; use AaaCcc; class
Ddd extends ... どっちが準拠? namespace AaaBbb; use AaaCcc; class Ddd extends ... 1. 2. ← 空白行 ← 空白行 ← 空白行
31.
どっちが準拠? namespace、use、class の間には 空白行! 1. namespace AaaBbb; use
AaaCcc; class Ddd extends ... ← 空白行 ← 空白行
32.
class Foo { public function
get() { どっちが準拠? class Foo { public function get() { 1. 2.
33.
どっちが準拠? クラス, メソッド の
{ の前では 改行! 1. class Foo { public function get() {
34.
if ($aaa) { どっちが準拠? if ($aaa)
{ 1. 2.
35.
どっちが準拠? if の {
の前では改行 しない! if ($aaa) {2.
36.
$f = function() { どっちが準拠? $f
= function() { 1. 2.
37.
どっちが準拠? クロージャ の {
の前では改行 しない! $f = function() {2.
38.
$a = function()
{ return 1; }; どっちが準拠? 1. 2. $a = function() { return 1; };
39.
どっちが準拠? クロージャの { と
} が 同じ行ではダメ! 2. $a = function() { return 1; };
40.
public static function
is() どっちが準拠? 1. 2. abstract public function is(); static public function is() public abstract function is();
41.
どっちが準拠? この順 で! public static
function is()1. abstract public function is();
42.
if ($a) { どっちが準拠? 1. 2.
if($a){
43.
どっちが準拠? 空白必須! if ($a) {1.
44.
for ($i =
0 ; $i < 3 ; $i++) { どっちが準拠? 1. 2. for ($i = 0; $i < 3; $i++) {
45.
どっちが準拠? ; の前 に空白
不要! 2. for ($i = 0; $i < 3; $i++) {
46.
$a = function
($a, $b) use ($c) { どっちが準拠? 1. 2. $a = function($a, $b) use($c) {
47.
どっちが準拠? クロージャの function, use
の前後 に 空白 必須! $a = function ($a, $b) use ($c) { 1.
48.
class A extends
B implements C, D { どっちが準拠? 1. class A extends B implements C, D { 2.
49.
どっちが準拠? class, extends, implements
は 絶対に 同じ行 ! interface を改行で書くなら1行1つ! (※改行せずに全てを1行にしてもいい。) class A extends B implements C, D { 1.
50.
public function abc( $a,
$b) { どっちが準拠? 1. public function abc( $a, $b ) { 2.
51.
どっちが準拠? public function abc( $a, $b )
{ 2. 複数行にするなら 1行につき1引数まで!
52.
$array = array_map( function
($arg) use ($var) { // ... }, $array ); どっちが準拠?1. $array = array_map(function ($arg) use ($var) { // ... }, $array); 2.
53.
どっちが準拠? クロージャは 必ず改行することになる ので 上記のようなパターン
になる! $array = array_map( function ($arg) use ($var) { // ... }, $array ); 1.
54.
switch ($expr) { case
1: echo 'A'; // no break case 2: case 3: echo 'B'; break; } どっちが準拠? 1. 2. switch ($expr) { case 1: echo 'A'; case 2: case 3: echo 'B'; break; }
55.
どっちが準拠? 空でないcase でわざと breakしない
なら その旨の コメント必須 ! switch ($expr) { case 1: echo 'A'; // no break case 2: case 3: echo 'B'; break; } 1.
56.
以上、ご静聴ありがとうございました。 <?php か <?=
のみ BOM無し UTF-8 副作用有無でファイル分ける 大小文字: クラス名 大小文字: メソッド名 大小文字: 定数名 大小文字: true/false/null インデント ファイル末尾の改行 namespace 周りの空行 {}の改行: クラス/メソッド Facebook: twitter: github: 寺田渉 @wa_terada waterada {}の改行: if {}の改行: クロージャ { {}の改行: クロージャ } static/abstractの位置 前後の空白: if 前後の空白: for 前後の空白: クロージャ 複数行: クラス 複数行: 引数 複数行: 引数でクロージャ switch でコメント必須
57.
参考情報: • 承諾された PSR
が置いてある公式github • PSR-1 (英語) • PSR-2 (英語) • 上記を翻訳してくれているサイト (infinite loop様の技術ブログ) • PSR-1 (日本語) • PSR-2 (日本語)
Jetzt herunterladen