#自己紹介
@pugiemonn といいます。
オンラインサロンプラットフォームを手掛けるシナプス株式会社で開発とマーケティングを担当しています。
#今日の話
1年前にレガシー環境に参加したメンバーがレガシーな問題に対して、どのような取り組みを行ってきたかお話します。
#開発チームメンバーゼロ問題
#社長1人で3年開発していた
- 1人で走るのはつらい
- 突然ユーザー数が増加しはじめピンチに
#求人がんばった結果
チームメンバー10名(インターン生含む)になりました✨
バージョン管理されてない問題
#1人だったのでバージョン管理など無かった
GitとGithubを導入した結果
- まずはSourceTreeから
- 作業ログがわかるようになった
- 問題発生箇所の調査が容易に
#作業がチケット化されていない問題
#1人だったのでチケットなど無かった
- 何のタスクかわからない
チケット管理した結果
- 何の作業かわかるようになった
- 現在はBacklogを使用
- Githubとの連携で調査が容易に
#デプロイがSFTP問題
#FTPクライアントTransmitでアップロード
- ちょっときつい😓😓😓😓😓
デプロイの自動化を進めた結果
- ひとまずgit pullでデプロイするように✨
- 後にシェルを作ってデプロイ✨✨
次はElastic Beanstalkかも✨✨✨
#ローカル開発環境が存在しない問題
#当時は本番環境が開発環境
- 本番のEC2のコードをそのまま修正
#開発環境をVagrantで作成した結果
- ローカル開発環境が誕生✨
- 開発環境をチームで統一化✨✨
- 開発環境の自動化✨✨✨
ちょっとずつ改善されています😘
#1つのEC2インスタンスに全部乗っている問題
LAMPが1つのEC2インスタンスに全部入っている
- MySQLもストレージも全部入っている
- 10GBのHD使用率が90%越え
- HDが溢れてしょっちゅう止まる
#AWSのサービスに分散
- S3を使用することで、HDが溢れて止まることがなくなる ✨✨✨
#DBを手動バックアップ問題
手動でたまにdump
- EC2インスタンスが壊れたりするとまずい
#MySQLをRDSに変更
- もしものときも復帰可能に!
#1人でがんばっちゃう問題
#3日くらい徹夜すればできるはず
- チーム開発経験が少ない
- 1日は72時間あるから大丈夫など迷言増加
#大変なときはチームを頼ろう
- 徹夜作業の減少✨
- 負債の減少✨✨
チームに共有する文化ができてきました😘
#無駄なコード多すぎ問題
#過去のチャレンジの負債
- CMSが何個もリポジトリに
- 1つのコントローラが1万行以上
#不要なものを削除したり分割中
- 不要なコード、CMSやライブラリを削除
- コントローラを分割
徐々に見やすくなってます😘
#命名適当すぎ問題
読んでもわからないコード
-
s
、test1
のようなアクション名 -
wpprpayment
のような謎の変数名
#コーディング規約を入れたり勉強会した結果
- PSR-2を導入
- リーダブルコードの内容を一緒に勉強
少しずつ読みやすくなっていますす😘
#型が適当すぎ問題
何でもテキストで判定
- Stringをキーにして判定
- Trueの代わりに1という文字列が返る
#APIで返す型だけは担保
- JsonSchemaを導入
APIの不具合が減少😘
参考 : JSON SchemaとPHP
#DB管理と設計が適当すぎ問題
開発の度にカラムを足していた
- 1テーブルのカラム数多すぎる
- 型が適当で正規化されていないテーブル
- 必要なカラムだがぱっと見で意味不明なカラム名
#正規化して型を指定
- 正規化してテーブルを分割
- 命名を変更、型変更や制限を追加
日々の改善でだんだんわかりやすく😘😘😘
#PHPやライブラリ古すぎ問題
バージョンが古い問題
- 遅いだけでなくいろいろ大変
- 新しいライブラリが入れられない
#PHPもSDKもバージョンアップ
-
array()
いらずなど - パフォーマンスも改善
#CakePHP古すぎ問題
CakePHP1.3系がメインだった
- 1.3
#APIに切り出してCake2系に
- 既存ソースを使いたかったのでCakePHPを選択
- APIで主要機能を切り出しCakePHP2.X系に
#バグ多すぎ問題
とにかくバグ多すぎ
- 土日にSlackへ緊急対応依頼がとぶ
- 手動テストの限界?
#CIでテストを実行した結果
- CircleCIを利用
- PHPUnitとSeleniumでカバー
休日の緊急依頼が減少 😘😘😘
#色々ありました
#まだまだレガシー感あります
#1人で走るのは大変だったけど
#チームで走ればなんとかなるかも
#すこしずつ楽になっています
一緒に環境をよくしてくれる人募集しています
シナプス株式会社 http://corp.synapse.am/recruit
#ありがとうございました
このスライドは 第103回 PHP勉強会@東京 でLTとして発表予定のスライドです。