はてなサマーインターン2020に参加しました

インターンの概要

マイクロサービスで構成されたブログサービスに様々な機能を追加する感じになってます!

github.com

インターン生2人に対してメンターが一人つくというかなり手厚いサポート!

課題

  1. ブログ記事に、様々なmarkdown記法を実装する
  2. 独自の記法を考えて実装する
  3. タイトルを省略したリンク記法のタイトルを自動取得する
  4. 大量のタイトル省略のリンク記法があった場合の対策を考える

1日目

HTTP通信は何をやっているのか、からマイクロサービス・k8sなどに関する講義がありました。 夜には歓迎会を開催してくれて、そこで他の参加者のことを知ることができました!

2日目

コードを読み込み一通りやってから、markdown記法を実装しました。 独自記法どうするか少し考えたが何も思いつかず。。。

3日目

タイトルの自動取得をするサービスをマイクロサービスで作りました。 また目次を生成してくれる独自記法(qiitaでよく見るやつ)を実装しました

4日目

LGTM画像の自動生成を実装していきました。

5日目

成果発表日 やはりみなさんレベルが高く自作パーサー作る人いたり、Rast・Kotlinで実装する人がいたりとずっと感心していました! 発表自体は5分のところ少しオーバーして6分になってしまいましたが特に問題なく終わりました。

工夫したところ

タイトルの自動取得

取得すべきURLが複数ある際は全部まとめてからgRPC通信をするようにしました。

message FetcherMultiRequest {
 repeated string urls = 1;
}
message FetcherMultiReply {
 map<string, string> titles = 1;
}

LGTM自動生成

画像加工などの重い処理は裏で非同期に動かし、結果を取得する用のURLを即時に発行するようにしました。 f:id:bambootuna:20200828172914p:plain

ブログサービスにこの機能いる?って声多いと思いますが、画像を切り抜いたりと色々応用聞く機能ではないかと思っています!

成果発表資料

docs.google.com

まとめ

オンラインでの開催でうまくコミュニケーションが取れるか不安でしたが、スタッフの手厚いサポート・メンターが常駐してくれたおかげでスムーズに行きました! 終わった後に他のインターン生とご飯とかいけないのは残念でしたが、ランチルームに集まって雑談したのは楽しかったです!

短い間ですが、課題作成やサポートなどスタッフの皆さんありがとうございました!