開発ツールを使ってリモート開発
自己紹介
仕事
- numa08さんの前職の同期。TakkuMattsuさんの同僚。
- 突然始まる「面白いこと言います」を優しく聞いてあげる係
- numa08さんが広げまくったツールやサーバーの管理人
- AndroidよりiOS案件多め
- 自社作業がメインなので雑用係になりつつある
最近気になってるもの
- Mithril.js
- ミニマルなフロントエンドFW。SPA作りたい。
- golang
- python並みのシンプルさ
- AWS
- API Gateway + Lambda 楽しい
- DynamoDB の上手い使い方知りたい
今日話すこと
- 「運用面」にフォーカスをした意見交換
- 今の開発環境(リモート)
- うまくいっていること
- やってたけどやめたこと
- 改善したいこと
今の開発環境
3チーム体制
- サービサー(客先)
- フロント, テスター, 分析, 企画...
- サーバー(客先)
- WebAPIサーバー, Web管理画面
- モバイルアプリ(新宿)
- iOSアプリ, Androidアプリ
使っているツール
- GitLab
- Redmine
- Jenkins
- スレーブは客先、自社の2つ
- DeployGate
- Slack
全体像
うまくいっていると感じてること
ブランチ戦略
- Githubフローを元に柔軟に対応
- master: リリース版
- develop: 最新の動くもの
- feature/Hoge: 機能開発ブランチ
- test-release/10.x.x: 結合試験用 => 開発アプリ配信
- hotfix/***: 結合/受入バグ対応用
- release/10.x.x: 受入試験用 => 本番アプリ配信
- developを介して下位バージョン間の修正を最新に取り込む
テストアプリの配信
- 開発アプリ, 本番アプリでパッケージ名を分けている
- jp.co.hoge, jp.co.hoge.test
- APIのアクセス先が違う
- アクセス先変更のための再インストール不要
- 開発環境
- ステージング環境(DNS設定)
- 本番環境
- Deploygateで違うアプリとして認識されるので探しやすい
リモートでも大きな不便はない
- JenkinsやDeployGate, Slackのおかげ
- 可能な限り早めのレスが必要
- テスターやサーバー実装者とも直接やりとり
- 顧客による部分が大きい
- 仕様に困っても即レスしてもらえる
- アプリ専任チームがいないとつらいと思う
やってたけどやめたこと
テスト
- アプリ側にロジックが少なく, APIからの情報表示がメイン
- 月一リリースで製造のみでもかっつかつ
- サービサー側に専任のテスターがいる
Slackと開発ツールの連携
- 自動だと更新頻度が多すぎて結局見ない
- 全体グループで個人宛のNotifyを飛ばす
- こういうチケット切ったのでお願いします
- 大事なチケットを追える
- みんなが見てるのでいい感じにプレッシャーを与えられる(笑)
改善したいこと
本番リリース直後に毎回違うURLを設定したバイナリが必要
- WebページのテストURLが毎回違う
- 今は都度ビルドしてる
GoogleAnalytics試験用のバイナリをDeploygate配信できない
- 反映されるまでタイムラグがある
- 試験中に別端末から飛んでると試験ができない
- いまは試験版配信のタイミングで都度ビルドしてる
テスト書ける体制作り
- コードを書けば動かせるようにはなっている
- 時間がない中でどうテストコードを書いていくか