SlideShare une entreprise Scribd logo
1  sur  51
【PHP入門】開発効率向上のためのナレッジ紹介
2018/07/25
株式会社 Rosso
茂木 伸幸
1
自己紹介
• 株式会社 Rosso 技術推進室 TechLead
• 主な業務
• Webアプリケーション開発・保守
• 言語
• PHP、Ruby
• フレームワーク
• Laravel、ZendFramework、Rails
茂木 伸幸
も ぎ の ぶ ゆ き
Qiita(n_mogi)
2
本日のアジェンダ
• PHPの概要
• 静的コード解析ツールの説明
• PHPUnitの説明
• 「Laravel」の便利機能の紹介
3
今回の説明で得られる知識
• PHPの開発PJにて、整ったコードを書くためのツールの使い方
• PHPUnitの使い方
• Laravelの基礎知識
4
PHPの概要
5
PHPとは?
• Webアプリ開発の世界で広く使用されているスクリプト言語。
• HTMLの親和性が高い。
• すぐに画面を表示させることが可能で学習コストも比較的低い。
• LaravelやCakePHPなど、web開発を円滑に進めるためのFWも
多く存在する。
6
静的コード解析ツールの説明
7
静的コード解析ツールとは?
• PHPのソースコードのチェックをしてくれるツール。
• コーディング規約違反、冗長なコードを見つけてくれるなど、
複数のものが存在する。
• メリット
• 人が手動でチェック・修正するよりもツールに任せた方が効率がかな
り高くなる。
8
今回紹介するツール
• PHPCS
• PHPMD
⇒ コーディング規約違反をチェック
⇒ 冗長なコードをチェック
9
ツールその① 〜PHPCS〜
• 「PHP_CodeSniffer」の略称。
• PHPパッケージ管理ツール「composer」でインストールでき
る。
• 機能
• コードがコーディング規約に合っているかをチェックしてくれる。
10
PSR-2
• 今回採用するコーディング規約名は「PSR-2」。
• そもそもPSRとは?
• PHP-FIGが策定しているコーディング規約で、世界で知られている。
• PSR-0、PSR-1というような連番になっている。
• PSR-2とは?
• 多くのPJや一部のFW(Laravel)でも採用されているコーディング規約。
11
PHPCSの実行
• 実行方法
• AtomなどのエディタにPHPCSのプラグインを入れる。
• コマンドで実行する。
⇒ 今回はコマンドで実行します!
12
PHPCSの実行
• コマンド説明
• 例
$ phpcs --standard=規約名 ファイルパス
$ phpcs --standard=PSR2 ./
PSR2を指定
13
チェックするコード
IFの後は半角スペースが必要
引数のカンマの後は
半角スペースが必要
14
PHPCSの実行結果
FILE: /var/www/php/src/Phpcs/PhpcsSample.php
----------------------------------------------------------------------------
FOUND 2 ERRORS AFFECTING 2 LINES
----------------------------------------------------------------------------
9 | ERROR | [x] Expected 1 space(s) after IF keyword; 0 found
14 | ERROR | [x] Expected 1 space between comma and argument "$b"; 0 found
----------------------------------------------------------------------------
PHPCBF CAN FIX THE 2 MARKED SNIFF VIOLATIONS AUTOMATICALLY
----------------------------------------------------------------------------
行数と警告メッセージ
ファイルパス
[x]となっているものは、
PHPCSと同時にインストールされるPHPCBFで自動修正可能
⇒ PHPCBFはこの後説明します!
15
PHPCBFについて
• 機能
• 規約違反のコードを自動修正してくれる。
• PHPCSと同じようなコマンドで実行できる。
• コマンド説明
• 例
$ phpcbf --standard=規約名 ファイルパス
$ phpcbf --standard=PSR2 ./
同様にPSR2を指定
16
PHPCBFの実行結果
PHPCBF RESULT SUMMARY
------------------------------------------------------------------------------------------
------------------------
FILE FIXED REMAINING
------------------------------------------------------------------------------------------
------------------------
/var/www/php/src/Phpcs/PhpcsSample.php 2 0
------------------------------------------------------------------------------------------
------------------------
A TOTAL OF 2 ERRORS WERE FIXED IN 1 FILE
------------------------------------------------------------------------------------------
------------------------
Time: 872ms; Memory: 4Mb
修正済の数
修正できていない数
修正したファイル
⇒ 修正方法が複数パターンあるものについては
修正できないこともある
17
ツールその② 〜PHPMD〜
• 冗長なPHPのコードをチェックして警告してくれる。
• PHPパッケージ管理ツール「composer」でインストールでき
る。
• 主なチェック内容
• 短すぎるor長すぎるプロパティ名、変数名などのチェック。
• 複雑すぎる表現、例えばif文の多用などをチェック。
• 未使用の引数、メソッド、プロパティをチェック。
18
PHPMDで使用するルール
ルール名 説明
Clean Code Rules 綺麗なコードを保つためのルール。
Code Size Rules コードのサイズに関連するルール。
Controversial Rules PJのコーディングルールによっては採用しても良いルール。
チェック対象からは外しても問題ないことが多い。
Design Rules コード設計の問題を無くすためのルール。
危険なPHPの関数を使用していないかなどをチェックする。
Naming Rules 命名に関するルール。
プロパティ名や変数名が長すぎないかなど。
Unused Code Rules 未使用の定義に関するルール。
未使用のプロパティや変数がないかをチェックする。
19
PHPMDの実行
• 実行方法
• AtomなどのエディタにPHPMDのプラグインを入れる。
• コマンドで実行する。
⇒ PHPCSと同じくコマンドで実行します!
20
PHPMDの実行
• コマンド説明
• 例
$ phpmd ファイルパス 出力形式 ルール1,ルール2,・・・
$ phpmd ./ text cleancode,codesize,controversial,design,naming,unusedcode
21
チェックするコード
【違反しているルール】
Naming Rules
【内容】
プロパティ名が短すぎる
22
PHPMDの実行結果
/path/to/PhpmdSample.php:7 Avoid variables with short names like $a.
Configured minimum length is 3.
違反内容
対象ファイル:行数
⇒ PHPMDは自動修正の機能が無いため手動での修正が必要
23
PHPUnitの説明
24
PHPUnitとは?
• ユニットテストを自動化するためのツール。
• テストコードを書くための機能が様々存在する。
• PHPパッケージ管理ツール「composer」でインストールでき
る。
25
テストコードのメリット
• 人が手で画面のテストをするよりもテストコードを書いて自動
実行させた方が正確で速い。
• 修正作業の際に、予想外のところでバグが新たに生まれた時に
気がつくことができる。
• テストコードを書くことで、対象のメソッドがどういう振る舞
いをするのが正解なのかが実装者以外にも分かる。
⇒ PHPUnitの基本的な書き方を見ていきます
26
テスト対象のコード
第1引数と第2引数の計算
結果を返すメソッド
27
テストコード
TestCaseクラスを継承してそ
のクラスのメソッドを使う
@testは、テストコードのメ
ソッドという扱いになる
第1引数:期待値(予測値)
第2引数:メソッドの結果
28
PHPUnitの実行
• コマンド説明
• 例
$ phpunit ファイルパス(ディレクトリ or ファイル名)
$ phpunit ./tests/
29
PHPUnitの実行結果
bash-4.2# phpunit ./tests/
PHPUnit 7.2.7 by Sebastian Bergmann and contributors.
. 1 / 1 (100%)
Time: 419 ms, Memory: 4.00MB
OK (1 test, 1 assertion)
テストが通った数と割合
実行に要した時間とメモリ
テストメソッドの数と
アサーションメソッドの数
30
基本的な書き方を紹介した上で…
• データプロバイダの使い方
• モックの使い方
⇒ 他に便利なPHPUnitの機能を紹介します!
31
データプロバイダ
• 1つのテストに対して複数パターンのデータでテストしたい場
合に有効
• データを配列形式で定義したメソッドを用意する。
32
データプロバイダのコード
データプロバイダー
それぞれの配列の値がsum()の
引数に渡される。
@dataProviderでデータプロバ
イダ名(メソッド名)指定。
テストメソッドの引数を定義
できる。
データプロバイダから引数が
渡される。
33
モックの使い方
• そもそもモックとは?
• あるクラスのメソッドの戻り値をダミー値にすることができる。
• そうすることでメソッドの振る舞い(処理内容)を意識しなくて済む。
• モックが使用される場面
• メソッドの中で他のクラスのメソッドを呼んでいる場合
• 他のクラスのメソッド振る舞いを意識せずに自分のメソッドの処理だ
けに集中してテストをしたい場合
⇒ モック使用対象となるコードをまずは見ていきます
34
モック化のイメージ
⇒ 実際のコードを見ていきます
【Class A】
とあるメソッド
【Class B】
Aから呼び出されているメソッド
テスト対象のメソッド
モック化対象
35
ソースコード 〜モック化対象〜
うるう年かどうかを
boolean型で返すメソッド
36
ソースコード 〜テスト対象〜
LeapYearクラスのメソッドを
呼んでいる。
前スライドのLeapYearクラスを
コンストラクタに渡して
プロパティにオブジェクトを入れている
37
テストコード 〜モック〜
指定したクラスをモック化
モック化したクラスのメ
ソッドの振る舞いを指定
38
Laravelの便利機能の説明
39
Laravelとは?
• PHPのフレームワークで最近人気が出てきた。
• 基本はMVCモデルが採用されているフレームワーク。
• 公式ドキュメントが分かりやすく、翻訳も比較的早い。
• artisanコマンドで様々な機能が提供されていて場合によっては
開発工数を大きく削減できる。
40
紹介するLaravelの機能
• マイグレーション
• 認証機能の自動生成
• ルーティング
• ミドルウェア
⇒ webアプリケーション開発で良く使いそうな機能
41
マイグレーション
• 役割
• データベーステーブルのバージョンコントロール。
• テーブル定義が記載されているマイグレーションファイルを利用して
テーブルを作成する。
• Artisanコマンドで実行可能
• php artisan migrate(テーブル作成)
• php artisan migrate:rollback(マイグレーションの巻き戻し)
42
マイグレーションファイルの中身
• ソースコード(一部抜粋)
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
});
}
テーブル名
increments:主キー
string:VARCHARカラム
43
認証機能の自動生成
• Artisanコマンド
• php artisan make:auth
• 自動生成されるもの
• ユーザ情報テーブルのマイグレーションファイル
• 認証関連の画面(ログイン、ユーザ登録等)
• パスワード暗号化
⇒ まともに自作しようとすると数日かかりそうな認証機能を
一瞬で作成してくれる
44
ルーティング
• そもそもルーティングとは?
• ここではURLのパスを定義しているもの。
• 特定のコントローラの特定のメソッドがどのURLパスに該当するか。
• 特徴
• 単純な記述でルーティングを定義することが可能。
• Laravelの定義は自由度が高く、好きなURLパス名に簡単に出来る。
• 他のフレームワークでは、コントローラ名やメソッド名にURLパス名
が依存することが多い。
45
ルーティングの書き方
Route::get(‘path1/', ’HogeController@index');
Route::get(‘path2/', ’HugaController@create');
URLパス
好きなパスを設定でき
る
メソッド名
コントローラ名
46
ミドルウェア
• 役割
• URLにアクセスした際、画面を表示させる前にフィルターをかける。
• 例)標準で用意されている認証のミドルウェア(auth)
• ⇒未ログイン状態では見れない画面を定義できる。
• ルーティング定義の部分に適用させたいミドルウェア名を記載するこ
とで特定のURLのみに適用させることが出来る。
47
ミドルウェア使用例
Route::middleware('auth')->group(function () {
Route::get(‘path1/', ’HogeController@index');
Route::get(‘path2/', ’HugaController@create');
});
⇒ この単純な記述で未ログインでのアクセスを拒否できます
ミドルウェア名
ミドルウェアを
適用させたいURLパス
48
まとめ
• 静的コード解析ツール
• 整ったコードの作成を補助してくれるので効率良く実装を進められる。
• PHPUnit
• テストコードツールを使用することで品質を担保することができる。
• Laravel
• 自動生成機能などを駆使することで開発工数の削減につながる。
49
参考・引用リンク
• PHPCS
• https://github.com/squizlabs/PHP_CodeSniffer
• PHPMD
• https://phpmd.org/
• PHPUnit
• http://phpunit.readthedocs.io/ja/latest/
• Laravel
• https://laravel.com/docs/
50
ご清聴ありがとうございました!
51

Contenu connexe

Tendances

PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントYoshio Hanawa
 
HTTPメッセージ、PHPの 事情ば分かっとっと?
HTTPメッセージ、PHPの 事情ば分かっとっと?HTTPメッセージ、PHPの 事情ば分かっとっと?
HTTPメッセージ、PHPの 事情ば分かっとっと?sasezaki
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめpospome
 
どこに何を書くのか?
どこに何を書くのか?どこに何を書くのか?
どこに何を書くのか?pospome
 
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~takenao
 
PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性Rina Fukuda
 
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説するphp-buildがいかに便利かを力説する
php-buildがいかに便利かを力説するYoshio Hanawa
 
アプリケーションコードにおける技術的負債について考える
アプリケーションコードにおける技術的負債について考えるアプリケーションコードにおける技術的負債について考える
アプリケーションコードにおける技術的負債について考えるpospome
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるpospome
 
このPHP QAツールがすごい!2019
このPHP QAツールがすごい!2019 このPHP QAツールがすごい!2019
このPHP QAツールがすごい!2019 sasezaki
 
PHP7はなぜ速いのか
PHP7はなぜ速いのかPHP7はなぜ速いのか
PHP7はなぜ速いのかYoshio Hanawa
 
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情PHP7の拡張モジュール事情
PHP7の拡張モジュール事情Yoshio Hanawa
 
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩くPHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩くshinjiigarashi
 
モダン 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
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9Hiroshi Toda
 
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャGoji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャShiroyagi Corporation
 
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告y-uti
 

Tendances (20)

PHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイントPHP7で変わること ——言語仕様とエンジンの改善ポイント
PHP7で変わること ——言語仕様とエンジンの改善ポイント
 
HTTPメッセージ、PHPの 事情ば分かっとっと?
HTTPメッセージ、PHPの 事情ば分かっとっと?HTTPメッセージ、PHPの 事情ば分かっとっと?
HTTPメッセージ、PHPの 事情ば分かっとっと?
 
トランザクションスクリプトのすすめ
トランザクションスクリプトのすすめトランザクションスクリプトのすすめ
トランザクションスクリプトのすすめ
 
どこに何を書くのか?
どこに何を書くのか?どこに何を書くのか?
どこに何を書くのか?
 
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
デザイナーのためのはじめてPHP ~Codex、どう使いこなす?~
 
PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性PHPerに覚えて欲しい日本語の重要性
PHPerに覚えて欲しい日本語の重要性
 
php-buildがいかに便利かを力説する
php-buildがいかに便利かを力説するphp-buildがいかに便利かを力説する
php-buildがいかに便利かを力説する
 
アプリケーションコードにおける技術的負債について考える
アプリケーションコードにおける技術的負債について考えるアプリケーションコードにおける技術的負債について考える
アプリケーションコードにおける技術的負債について考える
 
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考えるGoのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
Goのサーバサイド実装におけるレイヤ設計とレイヤ内実装について考える
 
このPHP QAツールがすごい!2019
このPHP QAツールがすごい!2019 このPHP QAツールがすごい!2019
このPHP QAツールがすごい!2019
 
PHP7はなぜ速いのか
PHP7はなぜ速いのかPHP7はなぜ速いのか
PHP7はなぜ速いのか
 
PHP7の拡張モジュール事情
PHP7の拡張モジュール事情PHP7の拡張モジュール事情
PHP7の拡張モジュール事情
 
PHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩くPHP 8 で Web 以外の世界の扉を叩く
PHP 8 で Web 以外の世界の扉を叩く
 
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
モダン PHP テクニック 12 選 ―PsalmとPHP 8.1で今はこんなこともできる!―
 
C#の書き方
C#の書き方C#の書き方
C#の書き方
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
 
Goji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャGoji とレイヤ化アーキテクチャ
Goji とレイヤ化アーキテクチャ
 
広がる .Net
広がる .Net広がる .Net
広がる .Net
 
PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告PHP カンファレンス福岡 参加報告
PHP カンファレンス福岡 参加報告
 
IDEALIZE YOU
IDEALIZE YOUIDEALIZE YOU
IDEALIZE YOU
 

Similaire à Php development efficiency improvement

php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方do_aki
 
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法Rui Hirokawa
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングterurou
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版DIVE INTO CODE Corp.
 
5分でわかる静的解析入門
5分でわかる静的解析入門5分でわかる静的解析入門
5分でわかる静的解析入門Kenta USAMI
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由Kenichi Mukai
 
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜Katsuhiro Miura
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業についてHisatoshi Kikumoto
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情Junichi Ishida
 
レガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合うレガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合うYuta Ohashi
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterMasanori Oobayashi
 
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)Shinichiro Yoshida
 
5分でわかるphalcon php
5分でわかるphalcon php5分でわかるphalcon php
5分でわかるphalcon phpYusaku Kinoshita
 
5分でわかるPhalconPHP
5分でわかるPhalconPHP5分でわかるPhalconPHP
5分でわかるPhalconPHPShohei Tai
 
俺のDrupalとPSR-2が修羅場すぎる
俺のDrupalとPSR-2が修羅場すぎる俺のDrupalとPSR-2が修羅場すぎる
俺のDrupalとPSR-2が修羅場すぎるiPride Co., Ltd.
 
Redmine plugin ハンズオン
Redmine plugin ハンズオンRedmine plugin ハンズオン
Redmine plugin ハンズオンHaruyuki Iida
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxHideo Kashioka
 
PHP初心者セッション2013
PHP初心者セッション2013PHP初心者セッション2013
PHP初心者セッション2013Hideo Kashioka
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座DIVE INTO CODE Corp.
 

Similaire à Php development efficiency improvement (20)

php-src の歩き方
php-src の歩き方php-src の歩き方
php-src の歩き方
 
スクリプト言語PHP攻略法
スクリプト言語PHP攻略法スクリプト言語PHP攻略法
スクリプト言語PHP攻略法
 
DLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミングDLR言語によるSilverlightプログラミング
DLR言語によるSilverlightプログラミング
 
ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版ゼロからのプログラミングRails講座 Codeanywhere版
ゼロからのプログラミングRails講座 Codeanywhere版
 
OSC福岡 20111203
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203
 
5分でわかる静的解析入門
5分でわかる静的解析入門5分でわかる静的解析入門
5分でわかる静的解析入門
 
フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由フレームワークを使うべき 3 つの理由
フレームワークを使うべき 3 つの理由
 
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
PHPアプリの品質を(ある程度)保つために出来る事 〜組織編〜
 
エンジニアという職業について
エンジニアという職業についてエンジニアという職業について
エンジニアという職業について
 
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
 
レガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合うレガシーなWebアプリケーションと向き合う
レガシーなWebアプリケーションと向き合う
 
WTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniterWTM53 phpフレームワーク いまさらcodeigniter
WTM53 phpフレームワーク いまさらcodeigniter
 
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
【OSC2011広島】共有アプリで遊ぼう!(日本Red5ユーザー会)
 
5分でわかるphalcon php
5分でわかるphalcon php5分でわかるphalcon php
5分でわかるphalcon php
 
5分でわかるPhalconPHP
5分でわかるPhalconPHP5分でわかるPhalconPHP
5分でわかるPhalconPHP
 
俺のDrupalとPSR-2が修羅場すぎる
俺のDrupalとPSR-2が修羅場すぎる俺のDrupalとPSR-2が修羅場すぎる
俺のDrupalとPSR-2が修羅場すぎる
 
Redmine plugin ハンズオン
Redmine plugin ハンズオンRedmine plugin ハンズオン
Redmine plugin ハンズオン
 
PHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptxPHPCON_TOKYO_2022_Bigginer.pptx
PHPCON_TOKYO_2022_Bigginer.pptx
 
PHP初心者セッション2013
PHP初心者セッション2013PHP初心者セッション2013
PHP初心者セッション2013
 
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座アイデアを形にする  ③3時間でアプリ公開!ゼロからのプログラミング講座
アイデアを形にする ③3時間でアプリ公開!ゼロからのプログラミング講座
 

Dernier

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/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論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 

Dernier (10)

LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 

Php development efficiency improvement

Notes de l'éditeur

  1. 初心者向けであることを説明する。 ツールの実例を口頭で説明する。(ジョブ組んでるのかとか)
  2. 社内勉強会を開始してみたレポート
  3. ここまで13-14分
  4. ここまで20分
  5. ここまで
  6. ここまで30分
  7. ここまで40分くらい