暮井 慧の突撃インタビュー! gihyo.jp出張版

ハンモックで開発!? Sansan株式会社

この記事を読むのに必要な時間:およそ 3 分

バージョン管理について聞いてみる!

バージョン管理は,git?

坂本 ですです。git+GitHubを利用しています。

GitHubなんだね。gitに関する開発スタイルは何かありますか?

坂本 特に奇をてらったことはせず,一般的なgit-flowの方式で管理していますね。

というと?

坂本 まず,機能を追加するときにはdevelopブランチからfeatureブランチを切って開発します。そして,リリースのスコープに含まれるものが揃った時点で,releaseブランチを切る。

ふむふむ。

坂本 小さいバグの修正などはそのままreleaseブランチにマージしていって,無事リリースが完了したらreleaseブランチをdevelopとmasterにマージしてtagを打つ,という流れです。

なるほど!

開発言語について聞いてみる!

アプリの開発の開発言語について教えてください!

坂本 僕が担当しているiOSは元々のコードベースはObjective-Cで作られています。ただ新しく実装する部分については,つい最近からなのですがSwiftで書き始めました。Androidの方も同じように元々はJavaで開発されていて,新しく作る部分にいてはKotlinで実装しています。

2つの言語を行ったり来たりするのって大変そう……。

坂本 確かに最初は戸惑うのですが,それでもやっぱりSwiftで開発できるメリットのほうが大きいです。

どういうところがメリットなの?

坂本 Swiftは後発の言語だけあって,関数型言語だとかいろんな言語のエッセンスが取り入られててるので。効率もそうですが,何よりコードを書いていて楽しいというのはあります。

楽しいのはいいよね!

プルリクエストについて聞いてみる!

GitHubでは,プルリクエストはどういう風に運用してますか?

坂本 まず,レビュアーの負担が少なくなるようドキュメントをしっかり書くというのは気をつけていますね。

ふむふむ。

坂本 それから修正の規模が大きくなりそうなときはなるべくWIPにして,レビュアーがこまめに修正を見られるようにしています。

WIP? って何?

坂本 Work In Progressの略ですね。完成してなくとも,作業中ブランチをリモートに上げて,プルリクエストのタイトルに[WIP]をつけておくんです。

なるほど~。

坂本 そうすると,実装途中でも意見を交換し合うことができるので手戻りのコストも低くなるし,レビューする側もすべてが完成してからレビューするよりずっと負担が少なくすみます。

よさそう! WIP,私も使っていこうっと。

チラ見せしてもらったEightのプルリクエストの画面。

チラ見せしてもらったEightのプルリクエストの画面。

テスト環境について聞いてみる!

ぶっちゃけた話,テストってちゃんと書いてますか?

坂本 新しく追加するModelについてはユニットテストを書くようにしていますが,UIのテストまでは正直なかなか手が回ってないですね。

UI周りは闇雲に全部テスト書いてもペイしないのでは,という気もします。ただ,社内ではKIFを利用してうまくUIテストを回しているプロジェクトもあるので,その辺の知見を上手く生かして自動化を進めたいな,とは思っています。

テスト用のフレームワークやライブラリは何か利用してますか?

坂本 iOS側のテストは,XCTestを利用して書いています。あとは,通信周りの処理をStubするためにOHHTTPStubsなんかを利用していますね。

アプリ開発についてディスカッションするエンジニアの皆さん。

アプリ開発についてディスカッションするエンジニアの皆さん。

CIについて聞いてみる!

CIとかは,してますか?

坂本 現状はCircleCIを利用してテストを回しています。ただ,まだベータ版の配布やAppStoreへの提出は自動化できてないので,課題として認識しています。

自動化する予定は?

坂本 CircleCIとfastlaneを上手く組み合わせて自動化することを現在検討しています! その辺りの知見があったり興味のあるエンジニアが入社してくれたりしたら嬉しいですね。

さりげない求人!

プロトタイピング/UIデザインについて聞いてみる!

ペーパープロトタイピングとかはしますか?

坂本 ペーパープロトタイピングは現状やってないです。代わりにFlintoというプロトタイピングツールでデザイナーさんがモックを作って,実装に入るまえにいろんなUIを実機で触る,ということは行っています。

なるほど。素材の受け渡しとか,デザインの仕様はどういうふうにしてますか?

坂本 デザイン指示書みたいなのをPowerPointで作ってもらっていた時期もあったんですがあまり上手く行きませんでした。今は,デザイナーさんもエンジニアも全員自分のPCにSketchをインストールして,Sketchのファイルを受け取る,というふうに回しています。

エンジニアもSketchを使うの?

坂本 はい! わざわざ指示書を組んでもらわなくても,細かいマージンはSketchのファイルを見ればわかるし,必要に応じてパーツをエンジニアが自分で書き出せるし,割と上手く回っていると思います。

良い設計を閃いたアプリエンジニアさん。

良い設計を閃いたアプリエンジニアさん。

コミュニケーション/タスク管理について聞いてみる!

社内のコミュニケーションにはどういうツールを利用していますか?

坂本 エンジニア間のコミュニケーションはslackを利用して行っています。また,情報の共有にはQiita Teamを利用しています。

Qiita Teamはどういう使い方?

坂本 実装仕様や,ハマったことなどを各自まとめている形ですね。あとは,アプリのバージョンごとにプロジェクトページを作成して,そこに仕様や課題などへのリンクを集約したりしています。

タスク管理にはどういうツールを使ってますか?

坂本 Pivotal Trackerというツールを利用しています。バグがあったときとかは,すぐに『ピボっ』てます。

ピボっ!

著者プロフィール

暮井 慧(プロ生ちゃん)

都内の公立高校に通う女子高生。部活は,情報処理研究会。身体を動かすのも好きで,気が向いたときはなぜか体育会系の部活に混ぜてもらっていろんなスポーツをすることも。IT・開発系コミュニティのプログラミング生放送のキャラクターとして活動中!

サイト:http://pronama.azurewebsites.net/pronama/
Twitter:@pronama

コメント

コメントの記入