LoginSignup
19

More than 5 years have passed since last update.

Cloud9 で golang プロトタイピング

Last updated at Posted at 2014-12-29

小物の開発テストに Cloud9 を使ってみたところ、小規模開発や実験に有用だねと思ったのでご紹介。

Cloud9 って?

ブラウザエディタを軸としたオンライン開発サービスです。

ide.c9.io_2014-12-29_15-37-25.png

WEBブラウザだけでちょっとしたサーバーサイドアプリケーションの開発ができてしまいます。
ChromeBook の上でプログラム開発を行うために、開発環境のクラウドサービスがないものかなあと探して出会ったものです。実際、インターネットアクセスができる ChromeBook があれば開発ができちゃいます。

最大の特徴は簡易ホスティングで、ソースコードエディタだけでなく VM ベースのホストマシンとプレビュー公開の http アクセスを提供してくれます。ホストマシンへのコンソールもWEBブラウザ上でアクセスできるので、ソースコードを書いてコンソールでビルドしたり実行したりといったプロトタイプ開発が行えます。

有料コースだとホストが VM になって、プライベートプロジェクトが 5つまで使える様です。
無料コースだとホストは Docker コンテナで、プライベートプロジェクトは 1つだけ、かな。

go言語の開発はできるの?

ホストコンテナは ubuntu ベースで golang もインストールされています。

無題の画像0.png

WEB開発がメインターゲットなのでスタートアップ時のテンプレートに go はいません。
元々 node.js の開発をターゲットに作られたみたいなので、cloud9 が真価を発揮するのは node.js プロジェクトでしょう。実際、WEB IDE によるソースコードデバッグは javascript のみとなっています。

テンプレートから 'Custom' を選ぶと何でもできるホストが用意されます。
gcc, g++, go, perl, ruby, python, node あたりは最初から入っていますし、clang が欲しいなら apt-get することで利用する事が可能です。

Custom の場合はプレーンなコンテナが一個用意されるだけなので必要なプロジェクトは自分で用意することになります。go言語の場合は IDE のエディタ機能を利用して、bash コンソールでビルド&実行をすることになります。
残念ながらデバッガは使えませんが WEBブラウザプレビューが IDE の上で行えますので、それなりに快適な開発サイクルが実現できます。

WEB版 Hello, World を作る

ide.c9.io_2014-12-29_15-44-35.png

Custom から Workspace を作ったばかりの時は真っ新な状態です。
GOPATH 環境変数を確認すると $home に設定されているようなので、ユーザーディレクトリ部分がまるっと GOPATH になっています。なので src/プロジェクト名/ というディレクトリを作成してその中で go言語開発を行うのが良さそうです。

無題の画像.png

単純にポート 8080 を listen して "Hello, World!" を返す WEBサーバーを作成します。

main.go
package main

import (
        "fmt"
        "net/http"
    )

func pageRequest(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, World!")
}

func main() {
    http.HandleFunc("/", pageRequest)

    // do serve
    err := http.ListenAndServe(":8080", nil)

    // error abort
    if err != nil {
        fmt.Println(err)
    }
}

ビルド&実行するにはコンソール上で行います。

無題の画像2.png

エディタ上でメインパッケージである main.go を開いている状態で [RUN] ボタンを押すと、編集中の言語を認識して実行してくれます。go言語でも反応してくれるので、RUN ボタン一発で動作確認することが可能です。

WEBサーバーとして動作しているとき、それがポート 8080 であったらプレビュー機能が利用できます。

無題の画像3.png

IDE 上にプレビューが開いてサーバーの動作状況が確認できます。

ide.c9.io_2014-12-29_16-03-53.png

go言語でWEBサーバープログラムを書いて、実行&動作確認ができました。
これがWEBブラウザの上ですべてこなせます。

その他情報

  • DB はローカルコンテナにインストールされているものを使う様です。必要な物がなければ apt-get でインストールすることになるでしょう。

  • git-hub や Bitbucket のアカウントでログインすることでリポジトリからのプロジェクトインポートができるようになります。ただし push はコンソールから行うことになるので、この連携はあまり使わないでコンソール上で clone, push することになるんじゃないかと思います。

Cloud9 を使うとWEBブラウザ一つでどこでも開発ができる様になるだけでなく、手元に言語環境を揃えなくても開発ができるようになります。普段使わない言語のプロトタイプを手軽に行うという場面で威力を発揮するのではないでしょうか。

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
19