狠狠撸

狠狠撸Share a Scribd company logo
Laravelから学び
レガシーと闘いはじめた
Laravel Meetup Tokyo Vol.9
2017.07.12
Yuta Ohashi
2
blue_goheimochi
blue-goheimochi
Laravel歴 4年
3
目次
? Laravelで学んだこと
? レガシーと闘いはじめた話
? まとめ
レガシーと闘ってますか?
https://www.flickr.com/photos/fredc81/15061179493/
5
? PHPのバージョン
? 本番環境
? 開発環境
? コード
? ツール
6
PHPのバージョン
PHP7.1.x ?
7
PHPのバージョン
PHP7 ?
8
PHPのバージョン
PHP5.6 ?
9
PHPのバージョン
PHP5.5 ?
10
PHPのバージョン
PHP5.4 ?
11
PHPのバージョン
PHP5.3.2 ?
12
PHPのバージョン
Composer ?
13
PHPのバージョン
PHP5.1 ?
14
PHPのバージョン
PHP4 ?
15
本番環境
CentOS 5 ?
16
開発環境
XAMPP?
17
コード
テスト?
18
コード
SVN?
19
コード
バージョン管理?
20
コード
コーディングルール?
21
ツール
チャット?
22
ツール
ビルドツール?
23
ツール
デプロイ?
https://www.flickr.com/photos/donnieray/9436653177/
レガシー
ちゅらい
25
選択肢は3つ
26
選択肢は3つ
やめる
or
あきらめる
or
たたかう
27
選択肢は3つ
やめる
or
あきらめる
or
たたかう
28
Laravelで学んだこと
29
Laravelで学んだこと
? Composer
? Homestead
? Vagrant
? オートロード(PSR4)
? DBマイグレーション
? サービスコンテナ
? Dependency Injection
? テスト
? セキュリティ対策
? Bootstrap
? Elixir(Gulp)
? PSR-2
? Vuejs
? Laravel Mix
? Laravel Dusk
? CI
? DDD
? Go
? OPPAI
? デプロイ
? etc…etc….etc…..etc……
30
Laravelで学んだこと
? Composer
? Homestead
? Vagrant
? オートロード(PSR4)
? DBマイグレーション
? サービスコンテナ
? Dependency Injection
? テスト
? セキュリティ対策
? Bootstrap
? Elixir(Gulp)
? PSR-2
? Vuejs
? Laravel Mix
? Laravel Dusk
? CI
? DDD
? Go
? OPPAI
? デプロイ
? etc…etc….etc…..etc……
Laravel リファレンス
31
Laravelで学んだこと
? Composer
? Homestead
? Vagrant
? オートロード(PSR4)
? DBマイグレーション
? サービスコンテナ
? Dependency Injection
? テスト
? セキュリティ対策
? Bootstrap
? Elixir(Gulp)
? PSR-2
? Vuejs
? Laravel Mix
? Laravel Dusk
? CI
? DDD
? Go
? OPPAI
? デプロイ
? etc…etc….etc…..etc……
5.25.1 5.4 5.4
PSR-2
バージョンアップを追う
32
Laravelで学んだこと
? Composer
? Homestead
? Vagrant
? オートロード(PSR4)
? DBマイグレーション
? サービスコンテナ
? Dependency Injection
? テスト
? セキュリティ対策
? Bootstrap
? Elixir(Gulp)
? PSR-2
? Vuejs
? Laravel Mix
? Laravel Dusk
? CI
? DDD
? Go
? OPPAI
? デプロイ
? etc…etc….etc…..etc……
Laravel界隈をウォッチする
「Laravel」で検索 & フォロー
勉強会?もくもく会?関連するすごい人たち
33
学びが多い
(情報過多???分からないこと大杉内???)
34
どうやって学ぶ?
惑わされず
何かやりきってみる
35
Laravelの学び方
? Laravelリファレンスをやりきる
? チュートリアルをやりきる
? 罢辞顿辞リスト作成をやりきる
36
Laravelの学び方
? Laravelリファレンスをやりきる
? チュートリアルをやりきる
? 罢辞顿辞リスト作成をやりきる
自分のやりたいようにまずやってみて、そのあと他と比べてみる。
ToDoリストじゃなくて、自分の作りたいものでもOK。まずやりきる
37
自分なりにやりきってみた
https://pilebookmark.herokuapp.com/
38
やりきること
動く=すごい
39
まだまだ学ぶことはたくさん???
学びながら育てる
40
レガシーと闘いはじめる
41
レガシーと闘いはじめる
武器はいくつか得た
42
43
テスト書くぞ!
書けない???
https://www.flickr.com/photos/peterhess/2976755407/
45
https://saien.connpass.com/event/27540/
46
/t_wada/test-strategy-and-tactics/12
47
いきなり本丸(コード)を
切り崩すのは難しい??
外堀から攻める
https://www.flickr.com/photos/kmf164/953214920/
49
(なるべく)
コードを
触らない
50
Laravelを学んで得た武器
? Composer
? Homestead
? Vagrant
? オートロード(PSR4)
? DBマイグレーション
? サービスコンテナ
? Dependency Injection
? テスト
? セキュリティ対策
? Bootstrap
? Elixir(Gulp)
? PSR-2
? Vuejs
? Laravel Mix
? Laravel Dusk
? CI
? DDD
? Go
? OPPAI
? デプロイ
? etc…etc….etc…..etc……
51
その中でも???
? Laravel Homestead(開発環境)
? Laravel Dusk(E2Eテスト)
? PSR-2(コーディングルール)
? Laravel Mix(タスクランナー)
52
Laravel
Homestead
53
Laravel Homestead
? Laravel公式の仮想環境
? Vagrant + VirtualBox,VMWare
? 環境構築が楽ちん
54
抱えていた問題
? 本番?検証では起きないエラー
? 人によって環境がまちまち
? 開発環境多すぎ問題
? 再構築大変問題
55
バージョン違い
56
57
+
58
+
59
VirtualBox + Docker
? 仮想環境1つで大丈夫
? ローカルだけのエラーほぼなし
? Ansibleでみんなで管理できる
? コードいじらなくて大丈夫
? 1人ではじめられる
60
現在、抱えている問題
? コンテナ多すぎ問題
? コンテナ(OS)が古い問題
? メンテナンスする人问题
61
Laravel Dusk
62
Laravel Dusk
? E2Eのテストツール
? デフォルトでChromeDriver使用
? Seleniumに変更も可能
63
抱えていた問題
? テストコードがない
? デグレが発生する
? デザイン崩れに気づかない
64
抱えていた問題
約70項目のデグレに関する検証
テスト化
65
どんな感じ?
Webサーバー
ローカルPC
1. JenkinsでPHPUnitを実行
2. PHPがSeleniumを実行
3. Seleniumがブラウザを起動
4. Chromeがテストを実行
66
どんな感じ?
Webサーバー
検証用機CIサーバーぽい機
67
スクリーンショットも取れます
iPhoneなど
68
差分を取得して変更を検知
Before After
69
PHPerでも怖くない!
composer.json
"require_dev": {
"facebook/webdriver": "^1.1",
"phpunit/phpunit": "^4.8"
}
PHPUnitでSeleniumのテストかけます!
70
E2Eテスト
? デグレがたまに拾える
? デザイン崩れがたまに拾える
? コードいじらなくて大丈夫
? 1人ではじめられる
71
現在、抱えている問題
? Seleniumたまに不安定問題
? デザイン更新エラーになる問題
? ブラウザ実機問題
? メンテナンスする人问题
72
PSR-2
73
PSR-2
? Laravel 5.1から採用
? PHP-FIGが策定
? コーディングに関するルール
74
抱えていた問題
? タブがばらばら
? 改行コードがばらばら
? 好みが分かれる問題
? レビューでそこ指摘する?問題
75
ものすごく参考になるスライド
やさしいコーディング規約の導入
https://speakerdeck.com/fortkle/yasasiikodeingugui-yue-falsedao-ru
76
抱えていた問題
composer.json不在
77
抱えていた問題
? リポジトリにコミット必要
? 何でいれるの?
? 何でやるの?
許可を求めるな
謝罪せよ
https://www.flickr.com/photos/diegosilvagalan/4179111284/
79
積極的に許可を求めに行くスタイル
80
やったこと
? 上長に許可をもらう
? 少人数(仲間を見つけて)で開始
? 実施のためのWiki作成
? メンバーに許可をもらう
? 開発フローに組み込んでもらう
81
導入してもらうためのフォロー
82
PSR-2
? 数人ではじめられて
? 開発フローに組み込めた
? Jenkinsでエラー検知&周知
? コードはほとんど触らなくてOK
83
現在、抱えている問題
? 後回しにされちゃう問題
? まだ全体に浸透してない問題
? どこまでやるか問題
? フォローする人問題
84
Laravel Mix
85
Laravel Mix
? Laravel 5.4から採用
? Laravel Elixer から Laravel Mixに
Gulp から npm script に
? ビルドツール
? アセットパイプライン
86
抱えていた問題
? CSS?JSの圧縮
? バージョニング
? ES2016書きたい問題
? Sass書きたい問題
87
抱えていた問題
package.json不在
88
抱えていた問題
? リポジトリにコミット必要
? 何でいれるの?
? 何でやるの?
89
積極的に許可を求めに行くスタイル
90
やったこと
? 上長に許可をもらう
? package.json追加
? 空の驳耻濒辫蹿颈濒别.箩蝉を追加
91
やったこと
? 上長に許可をもらう
? package.json追加
? 空の驳耻濒辫蹿颈濒别.箩蝉を追加
めちゃくちゃ小さな1歩だけど、1歩目を踏み出すの大事
92
感じたポイント
? 外堀から攻める
? 小さくはじめる
? 初動の仲間づくり
? 目標(なんのためにやるか?)
? チームに浸透させるためのフォロー
チームで
大きな敵と闘う
https://www.flickr.com/photos/navcent/24387378922/
94
まとめ
95
まとめ
? Laravelから学び、やりきってみる
? レガシーは外堀から攻めてみる
? 闘う (やばかったらとっとと逃げる)

More Related Content

尝补谤补惫别濒から学びレガシーと闘いはじめた