見出し画像

株式会社MIXI モンスト サーバチームでインターンをしてきました DIVE INTO MIXI 2023-2024

こんにちは 東京電機大学大学院1年の山田です。
2023年12月中旬から2ヶ月間、株式会社MIXIのインターンシップ  ”DIVE INTO MIXI 2023-2024” に参加してきました。インターン参加の経緯から、取り組んだこと、感想をまとめます。


参加経緯

もともと、私自身がモンスト(モンスターストライク)というゲームが大好きで、就職活動が始まる際には、株式会社MIXIのインターンに参加してみたいと思っていました。そうした中、昨年2月に行われたBug Shooting Challengeのほうに参加しました。

Bug Shooting Challenge

参加をする中で、次に長期のインターンであるDIVE INTO MIXIの方に挑戦したいと考え、長期インターンの方に申込みました。しかし、当時は、IT就活未経験であったことに加え、自分の実力不足ということもあり、インターンの方は落ちてしまいました。

その後、再度、夏の方で申し込もうか申し込まないか迷っているときに、
昨年5月に行われたRubyKaigi2023に参加しました(過去のブログを参照)

RubyKaigi2023

その2日目の際に、株式会社MIXIのモンストのサーバーチームの方とたまたま、お会いしました。お話しする中で、長期のインターンシップに挑戦してみたいと思い、RubyKaigi2023が終わり次第申し込み、選考を進めていき、無事にインターンシップの方に参加できることになりました。応募したのは「DIVE INTO MIXI 2023 夏季」のほうでしたが、私は週4日(1日8時間)で12月中旬から2ヶ月の期間で参加しました。

具体的に取り組んだタスク

担当したタスクの中から代表的なものを2つ紹介します。

signupの際のクエリー削減

signupをした時のinit処理のsql効率をあげるため、signupの際のクエリー削減を行いました。
処理の置き換えを行った後に、下記のようなメソッドを定義して、ローカルで時間比較を行ったところ、実行速度が2.3倍ほどになりました!

def x
   Benchmark.benchmark { |b| b.report {
       1000.times {
            #ユーザ生成時の処理
       }
     }
  }
end

マスターデータのvalidationをGitHub Actionsで回す

github上にマスターデータをpushする際に、Jenkinsを使い、validationをかけるプログラムを実行しておりました。しかし、Jenkinsでの実行では1回につき5分以上かかり、他のを実行すると待ちが発生する問題がありました。
そこで、JenkinsからGithub Actionsに変更することで待ち発生の減少と実行時間の短縮を図りました。

今回のタスクでは、JenkinsからGitHub Actionsへの置き換えを日本版のデータに加え、グローバル版などにもかけていきました。今回の改修により、実行時間は2分弱で終わるようになりました🎉

インターン中の生活

今回のインターンでは、週の半分をリモート、週の半分を対面として、インターンシップを行っておりました。私はオフィスまでは、大体1時間でしたので、基本的に実家から通っておりました。お昼は主に社食で頂いており、ご飯がめちゃくちゃおいしく、いっぱい食べていました。

お昼 in 社食

このインターンシップを通して学んだこと

今回のインターンシップで学んだことは3つあります。

  • 10年の年季のあるコードに触れるということ

  • コードレビューについて

  • 今回初めてちゃんと書いたRspec

10年の年季のあるコードに触れるということ

モンストは昨年10月で10周年を迎えました🎉
これは同時に裏側で動いているメインのプログラムも10年物のプログラムになっているということです。今回のインターンシップの中で、様々なタスクに触れていきましたが、実際のコードを読む中で当時の方がどのように考えて実装したのかを考えながら読み解くことの難しさを本インターンシップで、痛感しました。普段のコードでは、ここまで前のコードを読む経験はなかったため、個人的に良い経験となりました。

コードレビューについて

モンストのサーバーチームは、今まで行ったどの会社よりもコードレビューが根付いているチームであり、今回のインターンシップでは、自分自身初めてとなるコードレビューに挑戦していきました。実際に、コードレビューを経験する中で、レビューを行うことの難しさについて、実践する中で学んでいきました。人のコードを読むことは、めちゃくちゃ大変なことだと知りました。

今回初めてちゃんと書いたRspec

普段はハッカソンなどでRailsも書くのですが、あまりRspecについては書いたことがなかったので、今回のインターンシップで実際に書いてみる中で難しいと思いました。Rspecの書き方になれていないのはあると思いますが、色々な書き方ができるということが悩みの種でした。

今後の課題

今後の課題として、自分が取り組んでいきたいこととして、ソフトウェア設計やテストなどの基本的な技術の勉強をあげます。

実際の業務を進める中で、まだまだソフトウェア設計やテストといった基本知識が足りていないということを実感しました。このあたりについては、就職までの残り一年間で埋められる部分まで、埋めていきたいと思います。
そして、残りの学生生活で悔いのないように、しっかりとやっていきたいと思います!

おわりに

実際の業務を通じ、仕事の難しさやMIXIの雰囲気について知ることができたように思います。大変充実した2カ月間でした。

最後になりますが、インターン期間中にお会いした皆様、日々業務を支えてくださったバックオフィスの皆様、人事の方々、そしてメンターさんをはじめとするモンストサーバーチームの皆様、ありがとうございました!


この記事が気に入ったらサポートをしてみませんか?