はじめに
こんにちは!ミクシィのサマーインターンシップに参加して、Diverseでインターンしていたid:anddev68です。
約1ヶ月と短いインターンでしたが、多くの経験を得ることができました。この良き体験を自分自身で整理するため、そしてもっと多くの人に広めるためにインターン体験記&レポートを書きたいと思います。
結論からいうと、時間があるなら今すぐ参加すべきです。
経緯・動機
私の今夏のコンセプトは「非日常な体験をしよう!」でした。
皆さんはデーティングサービスを利用したことがありますか?私もインターンするまでは利用したことがありませんでした。デーティングサービス*1のインターン…今夏のコンセプトにぴったりではありませんか。
また、mixiのインターンに参加すると、東京で生活できる環境が提供されます。これは地方民である私にとって大きなメリットでもありました。
やったこと
大きく分けて4つあります。初週はアプリを徹底的に使い込んでバグを見つける作業でした。アプリとソースコードを合わせながらどこに何があるのか把握するという目的があります。2週目は実際にコードを触ってみたり、開発フローを学ぶために1日1バグの修正。3週目は、1,2週目の総まとめとしてお気に入り画面の作成。4週目は残ったタスク処理と発表会という充実したスケジュールでした。
デバッグ
他の人が作ったアプリのデバッグをしてみて、普段の自分が作ったアプリに対するデバッグの適当さが明らかになりました。これからデバッグを行う際はさらに注意深く見る必要があると思いました。
バグ修正
既知の問題点、あるいは自分が見つけた問題点を直しました。問題点リストから1個ピックして、コードを書き、PRを出して、レビューでチェックしてもらうというのが一連の流れです。コーディング規約*2や設計に従う必要があり、思ったより時間がかかってしまいました。
お気に入りの画面作成
約1週間かかる最も大きなタスクでした。画面を作成するためには、API*3や設計、画面レイアウト、非同期処理*4などを理解する必要がありました。Poiboyではクリーンアーキテクチャーという設計技法に加え、RxJavaという非同期処理用ライブラリが用いられており、苦労しましたが大変勉強になりました。
クリーンアーキテクチャーは、役割ごとにしっかりとレイヤーが分かれていて綺麗な設計でしたが、1機能の実装に4ファイル以上書き換えなければならないという点に苦労しました。また、RxJavaについては、Javaとは名ばかりで、実際には別の言語で書き方を覚えるのが大変でした。
実際に作成した画面がこちらになります。
その他
デザイナー・エンジニアなど業種を問わずインターン生で進捗報告会が数回ありました。進捗報告会では、「VCSってなんですか?」など、共通語だと思っていたものが実は業界用語だったということがありました。自分がやっていることを専門外の人にもわかりやすく説明する技術も必要だと感じました。
おわりに
インターンシップは、非常に多くの体験をし、様々な知識を得ることができました。技術面、その他の面においても、今後に活かしていきたいと思います。
遠方に住んでいる方は特に、東京で働いてみる絶好の機会ですので、是非応募してみてください。