SlideShare a Scribd company logo
エキテンとLaravelと私
イアン
私の名はイアン
名前:ブライソン イアン(22)
所属:デザインワン・ジャパン
仕事:エンジニア(PHP, Laravel?)
補足:日英のハーフです
今日のアジェンダ
に、入る前に
を知っていますか?
エキテンは12年目を迎えたオールジャンルの口コミ・ランキングサイト
そう、12年目に突入しているサービス
ユーザーから見たエキテン
エンジニアから見たエキテン
データベース
店舗用
管理画面 一般画面
その他いろいろ
バッチ社内スタッフ用
管理画面
そんななか、
社長「このまま2倍3倍と成長するぞー!」
開発「こんな状態じゃ無理...」
エキテンマイクロサービス化プロジェクト始動
まずは部分的に切り出してみよう!
そこに採用されたのが
 ・PHP 7.1
 ・Laravel 5.4
 ・Blade + Vue.js
 ・レイヤードアーキテクチャ
およそ1年半をかけて切り出し成功!
今後もさらなるマイクロ化に向けて頑張るぞ!
と、まるで全てが順調のようですが
そんなわけはありません
今日は、このマイクロサービス化プロジェクトに
学生時代にLaravelの経験があったことなどを理由に
入社した4月にプロジェクト半ばでジョインし
少しずつ会社・プロジェクトの歴史的経緯を知っていきながら
開発・社内広報担当をやってみた新卒の僕の目を通して思った
うまくいってること・うまくいってないことなどを共有して
何かみなさんの教訓になれば嬉しいです
要するに、イアンの感想を聞いてください
へーーって思ってくれたら嬉しいです
今日のアジェンダ
1. ヤバイこと
2. 良いこともあるよ
3. おまけ(学生向け)
今日のアジェンダ
1. ヤバイこと
2. 良いこともあるよ
3. おまけ(学生向け)
ヤバイこと(その1)
Laravelに乗っかっていない
実際には
× Laravelに乗せなかった
○ Laravelに乗せられなかった
・根幹とも言えるモデルのデータが複数テーブルにまたがる
・一つのモデルを複数テーブルが持っている
・等々
↓
Eloquent ORMが使えず
LaravelのORMが使えないと芋づる式に自作
・Entity: 自作
・Data Access: 自作
・API: 自作
機能的な理由からService Container(DI)なども使えず
Laravelに頼れる部分は思ったより少ない
Laravelに乗っかっていない(まとめ)
外的要因が想像以上にプログラムに影響を与えるケースがある
覚悟を持って突っ込むか、賢い順番で解決しないといけない
※エキテンは突っ込まざるを得なかった
ヤバイこと(その2)
オレオレフレームワークの闇
Laravel + 自作 ≒ オレオレフレームワーク
恐れていたことが起きる...
当時の設計者がやめてしまう
・新しい開発者への共有が大変
・悩まなくていいところで、悩んだりボトルネックになったり
・なんでこうなってるんだ?→真相は闇の中...が稀だが起きる
オレオレフレームワークの闇(まとめ)
開発の初期が少数精鋭になるのはわかる
少数になったときこそ何か残す努力をしないといけない
ヤバイこと(その3)
定めきれなかった方向性
先輩「これ、実はプロトタイプの予定だったんだよ」
・当初のプランはあった
・複雑すぎる、データストアの状況やサービスのロジック
・予想できないことの連続のなかで判断をするのは至難の業
定めきれなかった方向性(まとめ)
予想できないことが起きるのは仕方がない
事業会社にしかできない勇気ある方向転換は時として必要
今日のアジェンダ
1. ヤバイこと
○ Laravelに乗っかっていない
○ オレオレフレームワークの闇
○ 定めきれなかった方向性
2. 良いこともあるよ
3. おまけ(学生向け)
良いこともあるよ(その1)
モダンな開発に近づいた
・古き良きVagrantからDockerに
・CIツール導入で自動テストや
 ブルーグリーンデプロイが可能に
・実装→レビュー→テスト→デプロイ
 のサイクルがスムーズに
モダンな開発に近づいた(まとめ)
アクセスの70%がマイクロ化されており、
重要な施策が打ちやすくなった
良いこともあるよ(その2)
開発のスピード・質の上昇
・腐敗防止層が頑張ってくれているおかげで
 ドメイン層以上は綺麗に保てている
・影響範囲の限定により大型変更にも強い
開発のスピード・質の上昇(まとめ)
昔と比較して重要ページの改修が爆速でできた
今日のアジェンダ
1. ヤバイこと
○ Laravelに乗っかっていない
○ オレオレフレームワークの闇
○ 定めきれなかった方向性
2. 良いこともあるよ
○ モダンな開発に近づいた
○ 開発のスピード・質の上昇
3. おまけ(学生向け)
おまけ(学生向け)
リファクタは難しいよ
汚いコードを見たときに
【学生時代】
時間かけてでも良いコードにリファクタしよ!
【学生時代】
時間かけてでも良いコードにリファクタしよ!
【会社】
時間かけてでも良いコードにリファクタしよ!
【会社】
時間かけてでも良いコードにリファクタしよ!
企画立案者のお仕事は、サービスの中身の向上
企画立案者のお仕事は、サービスの中身の向上
リファクタリングでは、サービスの中身は変わらない
マイクロサービス化もリファクタ(に見えてしまう)
マイクロサービス化もリファクタ(に見えてしまう)
なぜやるのか、どんな効果があるのかを説明できないといけない
これがめっちゃ難しいんだけどね...笑
今日話したこと
1. ヤバイこと
○ Laravelに乗っかっていない
○ オレオレフレームワークの闇
○ 定めきれなかった方向性
2. 良いこともあるよ
○ モダンな開発に近づいた
○ 開発のスピード・質の上昇
3. おまけ(学生向け)
○ リファクタは難しいよ
ご静聴ありがとうございました

More Related Content

What's hot

What's hot (20)

Electron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリElectron で作るはじめてのguiアプリ
Electron で作るはじめてのguiアプリ
 
インフラエンジニアが プログラミングで業務改善していく話
インフラエンジニアが プログラミングで業務改善していく話インフラエンジニアが プログラミングで業務改善していく話
インフラエンジニアが プログラミングで業務改善していく話
 
数千人が利用する楽天Redmineの過去と未来 - The past and future of Rakuten Redmine that is the...
数千人が利用する楽天Redmineの過去と未来 - The past and future of  Rakuten Redmine that is the...数千人が利用する楽天Redmineの過去と未来 - The past and future of  Rakuten Redmine that is the...
数千人が利用する楽天Redmineの過去と未来 - The past and future of Rakuten Redmine that is the...
 
納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み納品のない受託開発を支える レガシーコードを作らない仕組み
納品のない受託開発を支える レガシーコードを作らない仕組み
 
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例Go言語のフレームワークRevelの紹介とサービスにおける活用事例
Go言語のフレームワークRevelの紹介とサービスにおける活用事例
 
Codevs5.0勉強会
Codevs5.0勉強会Codevs5.0勉強会
Codevs5.0勉強会
 
スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方スタートアップにおける技術チームの作り方
スタートアップにおける技術チームの作り方
 
Laravel管理画面ジェネレーター
Laravel管理画面ジェネレーターLaravel管理画面ジェネレーター
Laravel管理画面ジェネレーター
 
NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )NoSQL勉強会資料(2015/03/12@ヒカラボ )
NoSQL勉強会資料(2015/03/12@ヒカラボ )
 
Webエンジニアのサバイバル英会話
Webエンジニアのサバイバル英会話Webエンジニアのサバイバル英会話
Webエンジニアのサバイバル英会話
 
5min ques#1 150806
5min ques#1 1508065min ques#1 150806
5min ques#1 150806
 
九州ソフトウェアテスト勉強会Vol.16 発表資料 150810
九州ソフトウェアテスト勉強会Vol.16 発表資料 150810九州ソフトウェアテスト勉強会Vol.16 発表資料 150810
九州ソフトウェアテスト勉強会Vol.16 発表資料 150810
 
副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト副業が私にもたらした2つのシフト
副業が私にもたらした2つのシフト
 
PHPカンファレンス2015
PHPカンファレンス2015PHPカンファレンス2015
PHPカンファレンス2015
 
エンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なことエンジニアが働きたい場所で働けるために、チームに必要なこと
エンジニアが働きたい場所で働けるために、チームに必要なこと
 
コンポーネント単位で考えるWeb制作
コンポーネント単位で考えるWeb制作コンポーネント単位で考えるWeb制作
コンポーネント単位で考えるWeb制作
 
非エンジニアカンファレンス資料の抜粋
非エンジニアカンファレンス資料の抜粋非エンジニアカンファレンス資料の抜粋
非エンジニアカンファレンス資料の抜粋
 
Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)
 
Redmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのか
Redmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのかRedmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのか
Redmine勉強会vol.1 なぜ組織にはドキュメンテーションが必要なのか
 
Devlove仙台20130309 レガシープロジェクト脱出大作戦
Devlove仙台20130309 レガシープロジェクト脱出大作戦Devlove仙台20130309 レガシープロジェクト脱出大作戦
Devlove仙台20130309 レガシープロジェクト脱出大作戦
 

Similar to エキテンとLaravelと私

社会人になってからでもソフトウェアエンジニアになれる?どんな時代でもなりたい自分でいるために大切なこと [KIKKAKE for Parents#6 イベ...
社会人になってからでもソフトウェアエンジニアになれる?どんな時代でもなりたい自分でいるために大切なこと [KIKKAKE for Parents#6 イベ...社会人になってからでもソフトウェアエンジニアになれる?どんな時代でもなりたい自分でいるために大切なこと [KIKKAKE for Parents#6 イベ...
社会人になってからでもソフトウェアエンジニアになれる?どんな時代でもなりたい自分でいるために大切なこと [KIKKAKE for Parents#6 イベ...
Peatix Japan
 
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
naoki ando
 
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
Mori Keita
 
ON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったことON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったこと
Masakazu Muraoka
 

Similar to エキテンとLaravelと私 (20)

アンラーニング
アンラーニングアンラーニング
アンラーニング
 
楽天エンジニアライフ
楽天エンジニアライフ楽天エンジニアライフ
楽天エンジニアライフ
 
いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介
 
Dev sami 120727_slideshare
Dev sami 120727_slideshareDev sami 120727_slideshare
Dev sami 120727_slideshare
 
エンジニアと"協同"してサービスをつくる
エンジニアと"協同"してサービスをつくるエンジニアと"協同"してサービスをつくる
エンジニアと"協同"してサービスをつくる
 
事業企画
事業企画事業企画
事業企画
 
Web制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテストWeb制作者視点で理解するソフトェアテスト
Web制作者視点で理解するソフトェアテスト
 
確定申告ってなんでやるの?.pdf
確定申告ってなんでやるの?.pdf確定申告ってなんでやるの?.pdf
確定申告ってなんでやるの?.pdf
 
オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3
オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3
オタクエンジニアを熱くさせる!モチベーションと効率をあげるチームビルディング_20210611_TechDay#1_3
 
社会人になってからでもソフトウェアエンジニアになれる?どんな時代でもなりたい自分でいるために大切なこと [KIKKAKE for Parents#6 イベ...
社会人になってからでもソフトウェアエンジニアになれる?どんな時代でもなりたい自分でいるために大切なこと [KIKKAKE for Parents#6 イベ...社会人になってからでもソフトウェアエンジニアになれる?どんな時代でもなりたい自分でいるために大切なこと [KIKKAKE for Parents#6 イベ...
社会人になってからでもソフトウェアエンジニアになれる?どんな時代でもなりたい自分でいるために大切なこと [KIKKAKE for Parents#6 イベ...
 
0からのウェブディレクション講座:制作・開発編 ver 3.00
0からのウェブディレクション講座:制作・開発編 ver 3.000からのウェブディレクション講座:制作・開発編 ver 3.00
0からのウェブディレクション講座:制作・開発編 ver 3.00
 
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLT
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLTVue Fes Japan 2018 LINE株式会社 LunchスポンサーLT
Vue Fes Japan 2018 LINE株式会社 LunchスポンサーLT
 
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
パソナテック Find Your Ability 講演資料 「ディレクターにとってのWeb業界って? 」
 
海外展開と負荷試験
海外展開と負荷試験海外展開と負荷試験
海外展開と負荷試験
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
Deno で始めるフロントエンド
Deno で始めるフロントエンドDeno で始めるフロントエンド
Deno で始めるフロントエンド
 
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
プログラム組んだら負け!実はHTML/CSSだけでできること2015夏
 
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
ABC2013 Spring デザインナーとエンジニアの連携プレイのコツ
 
ON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったことON HTML5 FIELD で書き尽くせなかったこと
ON HTML5 FIELD で書き尽くせなかったこと
 
我が家のフロントエンド開発事情
我が家のフロントエンド開発事情我が家のフロントエンド開発事情
我が家のフロントエンド開発事情
 

Recently uploaded

ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
miyp
 

Recently uploaded (8)

今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料今さら聞けない人のためのDevOps超入門 OSC2024名古屋  セミナー資料
今さら聞けない人のためのDevOps超入門 OSC2024名古屋 セミナー資料
 
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上【登壇資料】スタートアップCTO経験からキャリアについて再考する  CTO・VPoEに聞く by DIGGLE CTO 水上
【登壇資料】スタートアップCTO経験からキャリアについて再考する CTO・VPoEに聞く by DIGGLE CTO 水上
 
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
本の感想共有会「データモデリングでドメインを駆動する」本が突きつける我々の課題について
 
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
Linuxサーバー構築 学習のポイントと環境構築 OSC2024名古屋 セミナー資料
 
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
ビジュアルプログラミングIotLT17-オープンソース化されたビジュアルプログラミング環境Noodlの紹介
 
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
人的資本経営のための地理情報インテリジェンス 作業パターン分析と心身状態把握に関する実証事例
 
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHubCompute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
Compute Units/Budget最適化 - Solana Developer Hub Online 6 #SolDevHub
 
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
エンジニアのセルフブランディングと技術情報発信の重要性 テクニカルライターになろう 講演資料
 

エキテンとLaravelと私