Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

エキテンとLaravelと私

1,857 views

Published on

現在マイクロサービス化を進めているエキテン。
マイクロサービスの1コンポーネントに採用したLaravelのことや、現場にいる新卒の目を通じて、その光と闇について。

2019/02/16に開催されたLaravel JP Conferenceの発表資料です。
https://conference2019.laravel.jp/

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

エキテンとLaravelと私

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

×