Treasure2018に参加しました

概要

8月13日から8月31日に株式会社VOYAGE GROUPのインターンシップであるTreasure2018に参加しました。

自分がどのような経緯でこのインターンシップに参加したか、また参加してみてどうだったかを中心にまとめています。

来年度などにTreasureに参加してみたいけどどんなインターンなんだろうと思っている人が少しでも参考になるようなことを残せたらな〜なんて思っています。

どんなインターン

Treasureのテーマは「Go言語を使って学ぶ、価値のあるもの創りとチーム開発」です。3週間あるインターンシップの前半で技術的な講義やアイデアソンやチーム開発手法の講義を行い、後半はチームに分かれて実際にプロダクトの企画から実装までを行います。

参加した動機

このインターンシップに限らずなのですが、僕がサマーインターン に参加した動機は、同年代の同じような業界を目指す人たちに実際どのような人がいるのかなというのを知ることや、今まで自分がやってきたことの力だめしなどが主な目的でした。また、気になっていた企業について、説明会などの短い時間ではわからない本当の社内の雰囲気などをもっと知りたいなと思っていました。

選考について

選考は人によって若干違いがあるようで、僕の場合は他のイベントなどでVOYAGE GROUPの方と何度かお話させていただいたのもあり、書類選考は免除で面接からでした。

面接では、エンジニアの方2人と人事の方1人の計3人の方と一日で面接をするような形でした。また、僕は実際に面接会場に向かうことが難しかったのでSkype面接で選考をしていただけました。

内容ですが、これも人によるという感じがしていて、僕は自分が作っていたサービスに関して難しかったところなどを話しました。結構雑談で進んでいき、楽しかった記憶があります。

前半の講義について

無事参加が決まり、インターン前半は講義を行います。 講義の内容は以下のような内容でした。(簡単にしているため、本当はもっともっと内容があります!)

  • Go言語
    • CLIツールを作ってみる
    • テンプレートアプリからWebアプリの作り方を学ぶ
  • フロントエンド
    • フロントエンドの歴史
    • Reactについて
    • 周辺ツール(Babelやwebpack)
    • Redux
  • WebAPI
    • WebAPIの設計
    • RESTful API
  • セキュリティ
    • 実際にアプリに攻撃しながら実例を学ぶ
  • DB
  • チーム開発

前半は怒涛の講義があり、始めは消化不良な部分が多くなりそうだなと思っていました。しかし、最初の土日に中間課題があり、そこで学んだことを元に作りながら知識を落とし込むことができました。しかも、常にサポーターの方がついていてくれ、わからないことはいつでも質問をすることができました。

チーム開発について

インターンの後半では実際にチームでサービス開発を行います。 チーム開発ではまず何を作るかというのを決めるところが最初の難関でした。 今の世の中の動きはどのようになっているのかというところから実際にユーザに使ってもらえるようなサービスを考えます。

僕たちのチームはたまたまみんなが同じ問題意識を持っていたことがあったため、それをサービスにしようと考えました。 しかし、実際にサービスに落とし込むためには様々な問題がありみんなが納得いくサービスとなるまで考え続ける必要がありました。 この過程はとても大変で、結局丸2日間くらいを使ってアイデアを詰めていきました。 しかし、みんなが目指す場所がきちんと合っていると後半の開発が始まっても途中で立ち止まることがほとんどなく、サービス開発においてとても大事な過程なのだなということを身を以て実感しました。

サービス開発はとっても楽しかったです。みんなが作った機能が合わさって本番環境に初めてデプロイされた時は少しうるっとしました笑。と同時に、ここからもっと良いものを作っていくぞという気合が入った瞬間でもありました。

最終日には実際に作ったものの発表会があります。僕たちのチームは最終的に3位となりました。悔しさもありましたが、どのチームも完成度が高くて短い期間でこんなに作り込んでくるのかというものばかりのもので、その中で入賞できたのはとても嬉しかったです。

感想

他のブログでも多くの人が書いているのですが、「Treasureは最高」この一言に尽きます。

参加前は頻繁に圧倒的成長というワードが使われるので、ちょっと胡散臭いな笑という気持ちもありましたが、間違いなく技術的にもサービス開発の考え方という面でも参加前では考えられないくらい圧倒的成長ができたと思っています。

これも、Treasure期間内に全力でコミットしてくださるVOYAGE GROUPのクルーの方々やスーパーエンジニア揃いの講師の方々、そしてTreasure2018に一緒に参加してくれた仲間たちのおかげだと思っています。もしTreasureってどんなインターンなんだろう?とか参加に迷っている人がこの記事を読むことがあったらぜひ!ぜひ!ぜひ参加してほしいです。

f:id:guri3:20180925214549j:plainf:id:guri3:20180925214243j:plain
Treasureは本当におすすめです

その他

毎日のおやつタイムが楽しかったです。 f:id:guri3:20180925215148j:plainf:id:guri3:20180925215153j:plain

VOYAGE GROUPクルー行きつけの橙というお店でめちゃくちゃ辛いものが食べれます。 f:id:guri3:20180925215256j:plain

AJITOで毎日定時後にお酒がタダで飲めます。(写真がなかった。。。)

後日談

最終日なみだなみだのお別れをしたのに、別のインターンで普通に再会したり、AJITOに飲みに行ったりして割とすぐみんなに会えたのは嬉しいながらちょっと恥ずかしかったです笑。終わった後も開発を続けているチームがあったり、こういう形で関係が続いていくのがTreasureの面白い、良いところだなと改めて感じました。

Herokuを使ってサービス公開するときによく使うHerokuコマンド一覧

コマンド一覧

アプリケーションの再起動

$ heroku restart --app (APP_NAME)*1

アプリケーションをWebブラウザで確認する

$ heroku open --app (APP_NAME)

ログの確認

$ heroku logs -t --app (APP_NAME)

環境変数の確認

$ heroku config --app (APP_NAME)

データベースのリセット

$ heroku pg:reset --app (APP_NAME)

*1:以下、--appは-aでも可

DockerでGin+Reactアプリの開発環境を整備する

概要

Gin+ReactでWebアプリケーションの開発をすぐに始めるためのテンプレートを作成しました。

https://github.com/guri3/gin-react-docker

手順

Dockerのインストールが必要です。
READMEにも書いてありますが、以下のコマンドでサービスを立ち上げることができます。

$ git clone git@github.com:guri3/gin-react-docker.git <任意の名前>
$ cd <任意の名前>
$ docker-compose build
$ docker-compose up

その他

内容については、また別の記事で整理できたらと思っています。

参考にしたサイト

Docker + Webpack4でReactの環境構築 | 学生エンジニアのプログラミング

Docker + Go + Gin の開発環境を準備する - Qiita

GitHubのユーザー名を変更する

なぜしようと思ったか

はじめにGitHubに登録したユーザー名が適当すぎたため、そのうち変更したいな〜と考えていたため実施しました。

何をしたか

  • GitHub上でユーザー名の変更
  • 自分が使用するPCの設定を変更

手順

1. GitHub上でユーザー名を変更する

この変更は、GitHubサイト上のSettingsAccountChange usernameから行えます。

Change usernameを押すとダイアログが表示され、それに同意するとusernameの編集が行えます。

注意として、GitHub側で変更前のリポジトリから変更後のリポジトリへのリダイレクトは設定してくれるみたいですが、ユーザープロフィールなどはリダイレクトが設定されずにNot foundとなってしまうようです。
ダイアログをよく読んで、それでもよいということであれば実行しましょう。

2. Gitの設定

まずは自分のPCのgitの設定を確認してみます。

ターミナルを開いて

$ git config --global -l

を入力します。

すると、一度設定したことがあるなら

user.name=<以前のユーザー名>
user.email=<使用しているメールアドレス>

という表示があると思います。

このユーザー名を変更後のものに直すために、以下のコマンドを実行します。

$ git config --global user.name "<変更後のユーザー名>"

これでGitの設定は完了です。

3. ローカルリポジトリの設定

次に、もしすでに自分のリポジトリをローカルで開発している場合に必要な設定をします。

まず、実際に開発しているローカルのリポジトリに移動し、

$ cd <開発しているディレクトリへのパス>

そして、$ git remote -vを実行すると

origin   git@github.com:guri3/note.git (fetch)
origin  git@github.com:guri3/note.git (push)

という表示があることがわかります。

これは、git fetchgit pushする際のリモートリポジトリを示しているので、この値を変更後のものに合わせます。

$ git remote set-url origin git@github.com:<変更後のユーザー名>/<リポジトリ名>.git

これで、ユーザー名を変更しても以前のようにGitHubを使用することができます。

まとめ

gitの設定に関する詳細はこのページから読めます。

使い始める-最初のGitの構成

もっと良い方法や、間違いなどありましたら指摘いただきたいです。