複数人でのWebサービス開発で便利だったもの


遊びに使えるWebサービスを友人と一緒に作成中。
仕事じゃなかなか使えないようなツールやサービスを無料の範囲内で使ってみてるんですが、かなり便利。
忘れないようにまとめてみます。
なおJavaとJavaScriptを使ってるので、それに関する内容が多いかも。

なお、次のような感じで開発進めてます。

  • 週に1回集まってミーティング兼もくもく会
  • 集まらない日は各自のペースで作業
  • 機能などを作ったらプルリクエスト出して承認もらって取り込む
  • サーバー側がJavaでクライアント側がJavaScript

Webサービス

BitBucket

Gitリポジトリをホスティングしてくれるサービス。
他にも類似サービスはいろいろあったけど、非公開リポジトリを無料で作れるってのが決め手。
基本的にソースコードはここで一括管理して、各自が作った機能とかは必ずプルリクエストを出す運用で活用中。
ReadmeとかWikiも便利で、ここに情報まとめとくと情報共有しやすい。
課題管理機能もあってタスクの優先順位とか担当者を設定して便利に使ってますが、期限設定ができないのがちょっと残念。
複数人で開発するなら、こういうホスティングサービスは必須だと思う。

Heroku

アプリケーションをホスティングしてくれるサービス。
自前でサーバー立てなくてもWebサービスとして無料で公開可能。
ちょっとお試しで作ったものを皆に見てもらいたい時とか皆で使おうって時に便利。
無料プランの範囲だと定期的にスリープ(?)するようなので、本番用には有料プランか別の環境の準備をしたほうがいいと思う。

Shippable

無料で使えるCIサービス。
類似サービスはたくさんあったけど、BitBucketのプライベートリポジトリと手軽に連携できるっていうのが決め手。
BitBucketのmasterにマージするだけでHerokuに最新版のソースコードが反映されるよう設定中。
リリースってどうするんだっけ?っていうのがなくなって、複数人での開発でもリリースがスムーズ。

ATLAS

仮想マシンの基であるBoxをホスティングしてくれるサービス。
ここにBoxをアップロードしておけば、開発環境構築はVagrantのコマンド実行だけというお手軽さ。
Boxの保存場所として活用中ですが、他にもいろいろな機能がありそう。
開発環境の共有を行いたい場合は、Vagrantと合わせて使ってみるといいかもしれない。

Trello

カンバンみたいにタスクを管理できるWebサービス。
BitBucketの課題管理機能がエクセルの表で課題を管理してる感じなのに対して、Trelloは付箋を壁に貼って課題を管理してるイメージ。
直感的に使えて見やすく、スマホでも見れてすごい便利。
友人との開発ではBitBucketの方を使うことになったけど、Trelloメインでも十分に課題管理できると思う。

Slack

いろんなサービスと連携できるチャットサービス。
BitBucketの更新やShippableでのテスト結果などをSlackに通知したりと何かと便利。
Botを導入してサービス監視してみたり、いろんなことに応用できそう。
今は個人的な通知用としてしか使ってないので、今後いろいろ試してみたい。

ソフトウェア

Git

ソースコードなどの履歴管理などを行うためのソフトウェア。
いわゆるバージョン管理ソフト。
これなしで開発するのは避けたいくらいに必要なもの。

Gradle

ビルドに関連する作業を一括で行ってくれるJava向けビルドツール。
ビルドに必要なライブラリやGradle自身のダウンロードまでも行ってくれるんで、JDKさえ入れれば開発始められるようになって便利。
主に次のような用途で活用中。

  • 必要ライブラリのダウンロード
  • コンパイル
  • 自動テストの実行
  • 静的解析ツールの実行
  • Gulp(後述)の実行
  • アプリケーション起動

Gulp

JavaScript向けビルドツール。
Gradle経由でダウンロードと呼び出しを行ってます。
主にJavaScriptの静的解析に使用中。

VirtualBox

仮想マシンを動かすためのソフトウェア。
お試し環境を作ってみたい時などに便利。
自分のPCにたくさんの開発ツールを入れたくないというときは、仮想マシン上で開発するという方法もあり。

Vagrant

仮想マシンの作成・起動・破棄などを行ってくれるソフトウェア。
環境作成用のスクリプトを作っておけば、目的に応じた仮想環境を手軽に作れて便利。
新規メンバーが入ってきた時の開発環境構築に役立ちそうだけど、まだ試せてないです。

ライブラリ

SpringBoot

JavaのWebアプリ向けフレームワークのSpringを、手軽に使えるようにしてくれるライブラリ。
たくさんの設定ファイルを作らなくてもよく、ビルドしたらWebサーバーも組み込んでくれるのでWebサーバー構築っていう手間が省けて楽。

使ったけどちょっと不便さを感じたもの

試してみたけれどちょっと不便だなと思うものもありました。
あくまでも仲間内での開発でそう感じただけなので、開発体制によっては不便さを感じないかもしれません。

LINE

説明不要の有名なスマホのチャットアプリ。
PCでも使えるので、意外と開発作業中でも手軽に会話できたりします。
でも、サービス連携ができないので各種通知をLINEに流せないのが辛い。
会話だけならLINE便利だけど、開発ならいろいろ連携しやすいSlackの方が使い勝手よさそう。

まとめ

リストアップしてみると予想以上にたくさんあった。
こういう便利なものをどんどん活用して、開発スピードを上げていきたいです。

・・・でもこういうのばかりじゃなくて、定期的に集まって話しあったり、もくもく会するのが一番開発が進む気がします

※ 2016/02/14 開発体制と不便さを感じたものについて追記しました。