Hatena Summer Internship 2020 に参加してきた
本記事について
9/7(月) ~ 9/11(金)に開催のはてなインターン2020 に参加した justymです
本記事では、はてなインターンの内容や感想についてお伝えできたらと考えております!
各日程について
1日目: 講義、歓迎会
2日目: 全社朝会、課題
3日目: 課題
4日目: 課題
5日目: 成果発表、面談
取り組んだ内容
マイクロサービスとして設計された仮想のブログシステムでサービスをいくつか作成する課題でした。1日目は 課題に取り組むうえで必要な技術の講義でした。2日目以降は実際に課題に取り組みました。そして最終日に成果発表を行ったあとにフィードバックをいただくという流れでした
1日目
各講義について簡単にまとめさせていただきました
Web API
Web APIの講義ではHTTPにはじまり、GraphQLやgRPCなどの概要を学ぶことができました。どのトピックもかなり濃縮された内容でした!
コンテナ
コンテナの講義ではコンテナの概要からはじまりDockerを使ったCTFのような問題にも取り組みました。特に最後の問題はとても難しかったです。これを良い機会にDockerにもしっかり時間をかけて勉強したいです!実際の問題はこちらから覗けます
$ docker run --rm -i hatena/intern-2020-docker-quiz
Kubernetes
Kubernetesの講義ではKubernetesの概要の説明にはじまり、講義内に今後課題として取り組むサービスを利用したハンズオン(サービスの追加,オートスケール, 負荷テスト)を体験しました。K8sを触ったのが今回が初めてだったので自分にとってはとても良い機会でした!
マイクロサービス
マイクロサービスアーキテクチャにおけるシステム・組織設計の方針、メリットやデメリットの他はてなにおけるマイクロサービスの事例について説明していただけました!
これらの講義が1日目の内容でした。どの講義も丁寧でとても濃い内容でした。講義内容については今後公開される予定らしいので興味のある方はご覧になることをお勧めします!
2日目以降
2日目以降は実際に課題に取り組みました。そして最終日に成果発表を行ったあとにフィードバックをいただくという流れでした
課題内容
マイクロサービスアーキテクチャで設計された仮想のブログサービスをもとに
- Markdown記法からHTMLに変換するサービス
- [](URL) -> [URL先のサイトのタイトル ](URL) のように変更するサービス
- 独自の記法を変換するサービス
の実装がメインの課題でした。課題のもとになるtemplate リポジトリが公開されているのでそちらの方を参考にご覧になることをお勧めします!
僕の場合、各サービスはGoで実装していきました。また、MarkdownからHTMLに変換する際にお世話になったのがこちらのパッケージです。
基本的な記法はもちろんですが、emojiやsyntax-hilightなどの拡張機能もすんなりと取り入れることができたのですごく便利でした。また、URLのリクエストに対しては並列化の処理を加えることも発展課題の一部としてあったのですが、そちらの方は準標準のerrgroup pacakge を使用しました。
課題期間中は基本的にメンターの方(id:mangano-ito)と、そして私含めたメンティーの2人の構成でDiscordやScrap Boxを中心にコミュニケーションをとり取り組みました。また、初日は歓迎会を開催していただきました。2日目の全社朝会では社員の方の前で挨拶をする機会をいただけました。暖かい雰囲気でインターン生を歓迎していただけたので感謝しかありません!
最終日
成果発表では各インターン生が独自の新規機能実装やこだわりを披露していて、多くの学びや刺激を受けて今後のモチベーションになりました!最後にフィードバックや面談をいただき、お別れ会に参加して(この記事を書いてる段階ではまだ参加してません)全日程が終了しました。
最後に
KubernetesやgRPCを使用した開発は今回のインターンで初めてだったこともあり戸惑うことがありましたが、本インターンの開催に携わった方々からのサポートもあり無事に成果発表をすることができました。本当にありがとうございました!