VOOZH about

URL: https://qiita.com/pugiemonn/items/7dc03a0eeeb56a27f992

⇱ レガシー開発環境を今風の開発に近づけるために一年やってきたこと #PHP - Qiita


👁 Image
384

Go to list of users who liked

363

Share on X(Twitter)

Share on Facebook

Add to Hatena Bookmark

More than 5 years have passed since last update.

@pugiemonn(ぷぎえもん)

レガシー開発環境を今風の開発に近づけるために一年やってきたこと

384
Last updated at Posted at 2016-06-29
1 / 56Page 1 of 56

自己紹介

@pugiemonn といいます。
オンラインサロンプラットフォームを手掛けるシナプス株式会社で開発とマーケティングを担当しています。

👁 シナプス画面


今日の話

1年前にレガシー環境に参加したメンバーがレガシーな問題に対して、どのような取り組みを行ってきたかお話します。


開発チームメンバーゼロ問題 👁 :no_good:


社長1人で3年開発していた

  • 1人で走るのはつらい
  • 突然ユーザー数が増加しはじめピンチに

👁 LGTM_tamuken.png


求人がんばった結果 👁 :blush:

チームメンバー10名(インターン生含む)になりました✨

👁 DSC_4888.jpg


バージョン管理されてない問題 👁 :no_good:


1人だったのでバージョン管理など無かった

👁 image.png


GitとGithubを導入した結果 👁 :blush:


作業がチケット化されていない問題 👁 :no_good:


1人だったのでチケットなど無かった

👁 image.png


チケット管理した結果 👁 :blush:


デプロイがSFTP問題 👁 :no_good:


FTPクライアントTransmitでアップロード

  • ちょっときつい😓😓😓😓😓

👁 image.png


デプロイの自動化を進めた結果 👁 :blush:

  • ひとまずgit pullでデプロイするように✨
  • 後にシェルを作ってデプロイ✨✨

次はElastic Beanstalkかも✨✨✨


ローカル開発環境が存在しない問題 👁 :no_good:


当時は本番環境が開発環境

  • 本番のEC2のコードをそのまま修正

👁 image.png


開発環境をVagrantで作成した結果 👁 :blush:

  • ローカル開発環境が誕生✨
  • 開発環境をチームで統一化✨✨
  • 開発環境の自動化✨✨✨

ちょっとずつ改善されています😘


1つのEC2インスタンスに全部乗っている問題 👁 :no_good:


LAMPが1つのEC2インスタンスに全部入っている

  • MySQLもストレージも全部入っている
  • 10GBのHD使用率が90%越え
  • HDが溢れてしょっちゅう止まる

👁 image.png


AWSのサービスに分散 👁 :blush:

  • S3を使用することで、HDが溢れて止まることがなくなる ✨✨✨

👁 s3.jpeg


DBを手動バックアップ問題 👁 :no_good:


手動でたまにdump

  • EC2インスタンスが壊れたりするとまずい

👁 image.png


MySQLをRDSに変更 👁 :blush:

  • もしものときも復帰可能に!

👁 rds.png


1人でがんばっちゃう問題 👁 :no_good:


3日くらい徹夜すればできるはず

  • チーム開発経験が少ない
  • 1日は72時間あるから大丈夫など迷言増加

👁 image.png


大変なときはチームを頼ろう 👁 :blush:

  • 徹夜作業の減少✨
  • 負債の減少✨✨

チームに共有する文化ができてきました😘


無駄なコード多すぎ問題 👁 :no_good:


過去のチャレンジの負債

👁 nayami_thumb.jpg


不要なものを削除したり分割中 👁 :blush:

徐々に見やすくなってます😘

👁 237万行削除

命名適当すぎ問題 👁 :no_good:


読んでもわからないコード

👁 headache.jpg


コーディング規約を入れたり勉強会した結果 👁 :blush:

 少しずつ読みやすくなっていますす😘


型が適当すぎ問題 👁 :no_good:


何でもテキストで判定

👁 image.png


APIで返す型だけは担保 👁 :blush:

 APIの不具合が減少😘

参考 : JSON SchemaとPHP


DB管理と設計が適当すぎ問題 👁 :no_good:


開発の度にカラムを足していた

👁 image.png


正規化して型を指定 👁 :blush:

日々の改善でだんだんわかりやすく😘😘😘


PHPやライブラリ古すぎ問題 👁 :no_good:


バージョンが古い問題

👁 php.png


PHPもSDKもバージョンアップ 👁 :blush:


CakePHP古すぎ問題 👁 :no_good:


CakePHP1.3系がメインだった

👁 cake.jpg


APIに切り出してCake2系に 👁 :blush:

  • 既存ソースを使いたかったのでCakePHPを選択
  • APIで主要機能を切り出しCakePHP2.X系に

バグ多すぎ問題 👁 :no_good:


とにかくバグ多すぎ

  • 土日にSlackへ緊急対応依頼がとぶ
  • 手動テストの限界?

👁 image.png


CIでテストを実行した結果 👁 :blush:

休日の緊急依頼が減少 😘😘😘


色々ありました


まだまだレガシー感あります


1人で走るのは大変だったけど

👁 IMG_2573.jpg


チームで走ればなんとかなるかも 👁 :blush:


すこしずつ楽になっています


一緒に環境をよくしてくれる人募集しています👁 :sparkles:

シナプス株式会社 http://corp.synapse.am/recruit
👁 _DSF8486.jpg


ありがとうございました


このスライドは 第103回 PHP勉強会@東京 でLTとして発表予定のスライドです。

384

Go to list of users who liked

363
3

Go to list of comments

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
384

Go to list of users who liked

363