サイバーエージェントのCA Tech Dojo-サーバーサイド(Go)編-に参加しました

f:id:wada0421514:20210403130834p:plain

CA Tech Dojoについて

3週間でゲームAPIを開発します

参加者4名に対して3名のメンターさんが付いてくれます

www.cyberagent.co.jp

参加までの流れ

  1. 書類選考
  2. 人事の方との面接
  3. 予習

1. 書類選考

割愛

2. 人事の方との面接

質問の例は以下です

  • 自己紹介
  • 業種とその理由
  • 職種とその理由
  • 開発経験
  • 自分の強みと弱み
  • インターン参加後のイメージ
  • 逆質問

3. 予習

面接で教えていただいた以下のリンクを参考に予習しました

やったこと

3週間でRESTのゲームAPIを開発しました。

基礎課題と応用課題があります。僕は基礎課題1週間半、応用課題1週間半かかりました。

開発したのは以下のようなゲームのサーバサイドです。

基礎課題

基本的な処理を実装しました

  • ユーザの管理
  • インゲームの結果を記録
  • ランキングを表示
  • ガチャを引く
  • コレクション一覧を表示

応用課題

基礎課題が終わった時点で、ゲームは仕様通りに動くようになります。

応用課題では、各々がやりたいことをやります。

僕がやったことは以下です。

  • gomock, sqlmockを使って単体テスト
  • Github Actionsによる単体テストの自動実行
  • Zapを使ったアプリケーションのロギング
  • サーバのアプリケーションをDocker上で実行
  • Wireによる初期化関数の自動生成
  • マスタ系データをRedisでオンメモリ化
  • gRPCを利用した通信に変更

技術面の学び

たくさんあります。今回は割愛します。他の記事で書きたいと思います。

コードはGitHubに上げてあります。

github.com

意識面の学び

様々な選択肢を検討して丁寧に実装する

  • 使えそうなフレームワークはあるか?どのフレームワークが適切か?
  • 実行時間をもっと早くできないか?メモリに無駄はないか?
  • コードは見辛くないか?
  • バグは起こらないか?起こりにくい実装になってるか?

大きな問題は細かく分割して取り組む

  • 一気に作らない
  • PRは小さく出す

発表は具体例・図・画像を入れると効果的

同期の記事

note.com note.com hiyoko-coder.hatenablog.com ariku1021.hatenablog.com