blog.takurinton.dev

Treasureに参加した話

2020-09-02

はじめに

こんにちは。僕です。

以前の記事にも書きましたが、VOYAGE GROUPのTreasureというインターンに参加したのでまとめたいと思います。

結論から言うと最高のインターンでした!!(迷惑かけてばっかりだったけど)

来年以降インターンシップに行きたいと思ってる人はぜひTreasureにも申し込んでみてください!

そもそもTreasureってなんだ

TreasureとはVOYAGE GROUPの夏インターンです!

詳しくは[こちら](https://voyagegroup.snar.jp/jobboard/detail.aspx?id=upwT50B8xR8)をご覧ください!

Treasureは始まってから16年の歴史があるインターンらしいですが、オンライン開催は今年が初めてだったようです。

今年は全国からツヨツヨ学生が24人参加しました。マジでみんな強すぎ。

詳細はこんな感じになってます。

| | |

| ---- | ---- |

| 開催期間 | 2020年8月1日・8日・15日・17日 ~ 2020年8月28日 |

| 時間 | 10:00〜18:00 |

| 内容 | 前半は講義、後半は1チーム4人でチーム開発 |

| 報酬 | 12万円 |

| 参加資格 | 2020年4月以降で大学3年生、大学院修士1年生、高専専攻科1年生を対象 (文理不問) |

こんな感じのインターンです!

前半の講義

詳しくは過去の記事を参照していただけたら良いかと思います。(まだ書ききれてない記事がありますが下書き保存してるのでいつか出します)

ざっくりとした内容は

  • JavaScript講義
  • Go講義
  • DB講義
  • インフラ講義
  • アイディア講義
  • こんな感じになっていました。

    それぞれの講義の中では議論をする場があったり演習の時間があったりしてとてもいい勉強になりました。

    個人的にはデータベースのモデリングとAPIのエンドポイントの設計の講義が楽しかったです(自分の知らない分野だったので)

    後半のチーム開発

    前半の講義で勉強したことやこれまでの経験を活かしていよいよチーム開発です!

    チームは僕を含めて4人のチームで、チーム名は「小賀さんからの着信です」でした。ふざけてません、本当です。

    実装にあまり時間を割くことができないため、まずは最低限の機能だけ確実に実装していく形で設計を行う方針で意思を固めて取り組みました。

    また、自分たちは「他のチームの進捗確認駆動開発」というスタイルをとっていました。

    アイディア出し

    まずは社会の時流によって生まれた揺らぎを考えるところから始めました。ホワイトボードのツールとしてmiroというものを使用しました。最初miro舐めてましたが、miro最強でした。笑笑

    miroを使いながら揺らぎからニーズとソリューションを考えてアイディアにつなげて開発するものを決めるという一見普通のことでしたが、これがとても辛かったです。

    時間の使い方がうまくいかなかったり、意見がまとまらずに最初の段階に戻ったりを繰り返しながら、僕たちが作るものが決定したときには金曜日になってました。(例年に比べたら少し進捗としては遅いらしい)

    まあ決まればOKですよね。

    DB・API設計

    僕たちは日曜日を使ってDBとAPIの設計を行いました。

    DBでは最低限の機能を実装するための最低限のテーブルしか作らないことを意識し、中間テーブルではナチュラルキーを使用しました。

    また、テーブルに付随しているが更新が頻繁に行われるもの(Twitterでいういいねとか)は別のテーブルを準備しました。

    APIの設計ではレストっぽく書くことを意識しました。最初はしてなかったけど、、、。

    レストっぽい定義は

  • エンドポイントは簡潔に
  • 動詞は使わずに名詞を使う
  • /post/{id}/good よりも /post/{id}/like とかの方がいい(これはやってない)
  • 同じエンドポイントをリソースごとに使い分ける
  • /post というエンドポイントに対してget, post, put, delete を送ることができ、それぞれの動作を行う
  • /post/delete にpostリクエストを送る みたいな書き方はしない
  • といった感じです。

    全てを落とし込むことはできませんでしたが、ここら辺を意識して実装を行いました。

    実装

    日曜日に作業をしたため、自分たちのチームは月曜の午前中に改めて最低限の機能について考えたり、見直しをしたり、自分たちの中での意識共有をして午後から実装に入りました。

    フロントエンド2人とバックエンド2人に分かれ、自分はフロントエンドの実装を行いました。

    フロントエンドはペアの人が強すぎてえぐかったのでいつも助けられてばかりでしたが、なんとか食らいついて頑張りました。コードレビューしっかりしてくれるしわからんところは優しく教えてくれるしで感謝しかありません。ほんとに短い期間だったけど彼のおかげでフロントエンドはめちゃくちゃ成長できた気がする。

    また、バックエンドの2人は開発スピードが鬼すぎてエンドポイント作ってって言ったら2秒くらいで作るし変更点もすぐに実装してくれるしで最高でした。

    開発途中につまづく点などがありましたが、なんとかサポーターの方や講師の方を頼りにしながら頑張りました。

    毎晩面談があり、「取調室」で振り返りなどをしてまた明日も頑張ろうスイッチをオンにして頑張ってました。

    最終日は朝の6時までBootstrapと仲良くして完成して眠りにつきました。徹夜してたチーム多かった気がします。

    実装では力不足でついていけないところもありましたが、全体的に成長することができたと思います!

    発表

    最終日には発表がありました。

    発表ではどのチームもギャグを入れてきていました。真面目に発表したのは自分たちのチームくらいでした。♪(´ε` )

    冗談はここら辺にして、発表はみんなに聞いてもらえないと意味がないという講師の方のお言葉があったので、どうやったら聞いてもらえるかを考えて茶番気味のネタをやることになりました。本来目立つべき人よりも目立ってる人がいたり、思ったよりウケたりしてとても楽しかったです。発表賞あったら取れたんじゃないかなとか勝手に思ってます。

    結果ですが、グランプリをとることはできませんでしたが、API設計賞をもらうことができました。

    リソースの使い分けもしっかりしてるしよかったとのことなのでそこに関しては自信になりました。しかし、グランプリをとることができなかったのは素直に悔しいです。これは入社して活躍するしかなさそうです。

    また、この経験は他のインターンでも活きてくると思うので頑張りたいと思います!

    終わりに

    最後になりますが、Treasureはとてもいい人が多く、常に前だけ見てる人が多いです!笑顔が素敵で技術力も高くて最高なインターンでした。

    まだ手元に修了証書がないので写真はありませんが、そんなやつももらえるみたいです。笑笑

    チームメイトのみんな、講師の方々、Traesure生のみんな、短い間だったけどありがとうございました!

    オフ会楽しみにしてます!