MonotaRO Tech Summer internship 2020 エンジニアリングコース フロントエンド 参加レポート 1

はじめに

8/31から9/4までの5日間「モノタロウTechサマーインターン2020」のエンジニアリングコースに参加させていただきました林です。

大学では情報系を専攻しているものの、面接時点ではWeb開発などはほぼ未経験だったのですが、インターンシップへ参加させていただくことができ、とてもうれしかったです。参加できることが決定してからはWebアプリケーション開発についていくつか勉強するなどしていました。

今回のインターンでは、5日間で、実装からリリースまで経験することができ、とても有意義な時間を過ごすことができました。

昨今の状況もあり、今年のインターンシップはオンライン開催で、モノタロウさんとしても初の試みだったそうなのですが、特に大きな不具合を感じることもなく参加することができました。今回のインターンシップのために多くの準備をしてくださったのだと思います。本当にありがとうございました。

やったこと

私は、モノタロウのECサイトのうち、スマホ対応されていなかったページをスマホ対応する業務の一部を担当させていただきました。いわゆるフロントエンド的な部分だと思います。ページをスマホ対応すると、UXが向上するだけでなく、検索上位にくるためにも役立つらしいです。

f:id:monotaro-tech-blog:20210409105853p:plain

私はこのページのうち、画像やキーワードの載っているコンポーネントを担当させていただきました。モノタロウのフロントエンドは、画面を小さなコンポーネントに分割して実装することで、役割の分担や単体テストが容易なように設計されており、とてもよく練られていると感じました。

f:id:monotaro-tech-blog:20210409110012p:plain

インターンの流れ

1日目

挨拶などをしたあと、実習をするチームのオンライン会議へ参加し、もう一人のインターン生とともに、モノタロウのサービスがどのような構成で運営されているかなどについてメンターの方に話をしていただきました。AWSやGCPなどのクラウドサービスが台頭する現代で、耐故障性の高いWebサービスがどのように運営されているかは、知識としては知っていたのですが、この話を聞いたおかげで「本当にこんな感じで運営されているんだ」と明確に実感が湧いたのを覚えています。

その後は、実習でどのような画面を作成するかについてのドキュメントや、既存のコードを読むなどして、実装の方針を考えたりしていました。使用されている言語がPythonだったので、とてもなじみやすかったです。

2日目

2日目は実装を進めていました。Jinja2というPythonのテンプレートエンジンを使用していたのですが、インターンに参加する前に少し触っていたDjangoと同じ感じで使うことができたので、比較的スムーズに作業を進めることができました。動作確認のためにDockerを使用していたのですが、その使用方法を学ぶなどもできました。

2日目はちょうど全社ミーティングが行われる日だったそうで、そこに参加させていただくけました。参加人数が本当に全社員という感じの規模だったので驚き圧倒されました。

3日目

3日目にはだいたい実装が終わっていたので、単体テストを書いたり、コードをプッシュしてレビューしていただいたりなどをしました。自分が書いたコードをレビューしてもらう機会はなかなかないので、とてもいい経験になりました。コードの再利用や、メンテナンス性など、普段からある程度は気にしていたところではあったのですが、レビューをしていただくことで、まだまだ改善の余地があるということが学べました。さらに、コメントやドキュメントに関しては全く書いていなかったので、レビューをいただいて反省しました。

また、メンターの方のチームの勉強会のようなものにも参加することができ、そこでコードレビューの話や、モノタロウの他のチームがどのようなことをしているかなどの話も聞かせていただくことができました。さらにこの日は懇親会もあり、他のチームのインターン生や他のチームのメンターの方とも話をすることができました。

4日目

4日目はコードの修正などを終え、ついに書いたコードをマージしていただきました。本番リリースは影響の少ない定時後に行われるそうで、翌日を楽しみに待っていました。

この日は主に翌日の成果発表会へ向けて、もう一人のインターン生とともに資料の作成を行ったり、メンターの方やチームの方に練習を聞いていただいたりしました。

5日目

5日目の朝起きると、手元のスマホでインターン中作成していたページへアクセスしてみました。すると、4日間作成していたページが返ってきて、とても達成感が得られました。

昼にはCEOの鈴木さんがインターン生と話をしたり質問を受けてくださったりする時間を設けていただきました。

午後は成果発表をしました。他のインターン生がどのようなことをしていたかなども知ることができて良かったです。

感想

今回のインターンシップはとても有意義な時間を過ごすことができました。

技術的な側面では、実装からリリースまで経験することができたのはもちろん、なんとなくで使っていたGitについてもう一歩詳しくなることができたり、名前と概要しか知らなかったDockerを使うことができたりと、多くを得ることができました。

また、社風などについてもオンライン越しながら感じることができました。わからないことがあると気軽に質問できる空気や、充実したドキュメントなどがあったため、とても楽しく効率よく作業を行うことができたと思います。解決を急がないような疑問は日報に書いておくと翌日詳しい方が答えてくれるということもありました。また、チームで行われる毎日の朝会などにも参加させていただいて、社員の方々がどのようにして業務を行っているかなども見ることができたので、就職した後の生活についてもイメージが湧くようになったと思います。

最後に、5日間という短い期間でしたが、とても多くのことを得ることができました。この経験を今後に生かしていきたいです。本当にありがとうございました。