読者です 読者をやめる 読者になる 読者になる

インターンブログ3社目(ピクシブ株式会社)

はじめに

ピクシブ株式会社のインターンに参加してきました!
インターンシップの概要は、インターンエントリーページから引用するとこんな感じです。

本プログラムでは、インターン生で複数のチームをつくり、【実際に社内で取り組んでいる課題解決 / 新サービスの企画・実装】などを行ってもらいます。
インターンシップではありますが、企画して終わりではなく、ユーザーに向けてリリースし、結果をユーザーの入会率や開封率など、具体的な数字で振り返ります。
机上の空論ではなく、ビジネスの現場でサービスがどのようにユーザーに評価されるのか、是非このリアルを体験してください。

要約すると、「社員と同じように働く5日間!」という感じですかねー。
企画して終わりではなく、リリースして結果が見れるというのがこのインターンの特徴かと思います。
この記事では、その内容や感想を守秘義務を破らない範囲で書いていこうと思います。

きっかけ

ピクシブさんのインターンに参加したきっかけは、去年誰か(覚えてない...)がFaceBookで、めちゃくちゃ楽しかったと投稿していて、今年もやってないかなというので調べたのがきっかけです。

ssl.pixiv.net

あとは、エントリー方法にGithub選考があり、Githubのアカウント提出するだけでエントリーしたことになる素晴らしい方法があり、エントリーするコストが低くかったのが良かったです(とりあえずダメ元で出してみようと思えた)。
普段からGithub使ってる人はこういうのを活用できると、就活が楽にできるかもしれませんね。

初日

まず、最初に他のインターン生や5日間面倒を見てくれるメンターの方に、自己紹介プレゼンをしました。インターン生は総合職と技術職合わせて15人ほどいて、結構年齢がバラけていてで高校生~M1までいたのが意外でした。

課題

僕は、BOOTHというpixivと連携したネットショップが簡単に作れるサービスを開発しているチームに技術職インターンとして配属されました。

 

最初に今回のインターンで解決して欲しい課題の説明がありました。説明といっても、具体的なやり方の説明はなく、こういう課題があるからなんとかしてほしいという感じでした。


僕が担当した課題は「アイテム一覧画面にスキ数を表示できるようにして欲しい」というものでした。
詳しい説明をすると、BOOTHで出品されているアイテムをユーザが気に入った場合にはTwitterのファボやFaceBookのいいねのように「スキ!」することが出来ます。 アイテムがスキされている数はアイテム詳細ページに訪れると見ることが出来たのですが、アイテムが一覧表示されているページでは見ることが出来ませんでした。

f:id:i101340:20160905221932p:plain

アイテム一覧からスキされた数が見られるようになることで、アイテムに対する他のユーザの評価を見てアイテムに興味を持つようになるのではないかという仮説ものと課題に取り組んでいました。

成果

実装したもの

  • アイテム一覧にスキ数を表示
  • スキした時にスキ数を増やす処理
  • スキ数が0の時に0ではなく「スキ!」を表示
  • その他細かいところの調整

f:id:i101340:20160905221945p:plain

スキのボタンの位置などはデザイナーさんが全部やってくれました(ありがとうございました!!!)。

 

時間ギリギリ(アウト?)でなんとかデプロイすることができました。
実際に動いているサービスにデプロイするのは初めてで、自分が作った部分がサービス上で動いているのを見たときはかなりうれしかったです 。

booth.pm

技術的な話

スキ数を表示するのはそんなに難しくなくて、アイテムに紐付いているスキしたユーザの数をカウントするだけなので、一行書けば表示することができます。

 

しかし、今回はそんな簡単なことはなく、アイテム一覧のテンプレートがフラグメントキャッシュを使って最適化されてたんです。

qiita.com

そのせいで、単純にスキ数を表示したとしても、キャッシュの有効期限の間はスキ数が変化しないという問題がありました。

 

この問題を解決するために、JavaScriptのloadイベントで最新のスキ数をajaxで取得して、スキ数の表示を最新の物に非同期で書き換えるようにしました。
JSの知識不足で、これを実装するのにかなり時間がかかってしまいました(申し訳ありませんでした!!!)。

 

フラグメントキャッシュを使っている部分をいじってみて思ったのは、キャッシュを適応する部分は必要なところだけにして、今回のスキ数のように動的に変わる部分に影響がでないように設計したほうが今後色々変更がある時に楽そうだなということです。


キャッシュを利用してレンダリングを早くするのは結構ありそうだから、今回その辺を触れたのはよかったです。

終わってみて

5日間終わってみると本当にあっという間だったという印象です。
デプロイも出来たし、実際の業務に本当に近かったです。

Webエンジニアとして働くイメージがより強くなったし、自分が足りていないところも沢山見つかったので、とてもおすすめなインターンです。

 

最後に5日間面倒をみてくれたメンターの方々、ピクシブの皆さま本当にお世話になりました。5日間ありがとうございました!