こんにちは ユオレイです。
今回はPIXIV SPRING BOOT CAMP 2024に参加してきたのでその感想等を書いていこうと思います。
*この記事はピクシブ株式会社の許可をいただいて公開しております。
PIXIV SPRING BOOT CAMP 2024 とは
PIXIV SPRING BOOT CAMP 2024は 創作を支える大規模サービスで 圧倒的な猛者になるを大きな目標としたインターンです。
内容に関しましてはいくつかのコースから1つを選択して8日間、そのチームで実際の現場にあるタスクをこなしてく就業型インターンになります。その中でピクシブの開発環境や社風を体験することが出来るインターンです。
なぜ応募したか
実は夏にもこのインターンに申し込んだのですが、面接で落ちてしまいました。そこでリベンジとしてもう一度申し込みました。
今回参加した理由はユーザー数が多いサービスはどのようなことを考えながら開発しているのか、自分のエンジニアとしての実力を試したかった、またピクシブがどんな会社なのかを実際に働いて確かめたかったので応募しました。
コース
今回はBOOTHと広告に申し込んでBOOTHに行くことになりました。
BOOTHは実際に使ったことがあったのと、ユーザー数の多いECサイトということもあり気になりました。また広告は使っている技術が面白そうだったため応募しました。
選考
ESを出してエンジニア面接をして合格という流れです。エンジニア面接ではコーディング面接がありました。夏に受けた時にどんな問題か、どんなレベルかは知っていましたのでそれ相応の対策をして挑戦しました。
面接ではBOOTHと広告の2人のメンターさんがきました。
参加前に
BOOTHに参加するにあたってRubyやRailsを触ったことがほとんど(イベントで2日しか)なかったため勉強をしてから参加しました。
インターン
やったことは以下のことをやりました。
- 文言の修正
- 管理画面の修正
- リダイレクト先の改善
- 認証周りの改善(㊙️)
BOOTHコースの内容はこのようになっています。
具体的には要件定義や設計、実装、テスト、デプロイといった作業の一部、または全部を実施していただきます。
全部やるよ〜
環境構築
必要な環境構築を行いました。Docker Composeを使って開発を行います。その中でMySQLを使います。しかし問題が発生。MySQLが起動しない!
調べたらMacのバージョンが問題だったため、Macのアップデートしてコマンドラインツールを入れてBOOTHの開発画面を開くことに成功しました。
初日は環境構築で終わってしまいました。
文言の修正
文言に一部誤りがあるというissueがありました。そちらを直していきます。てことで修正してデプロイ。オンボーディングタスクとしてやらせていただきました。
これでBOOTHコントリビューターだぜ!イエイ
管理画面の修正
BOOTHには以下の画像のようにお知らせ画面があります。

image
こちらAdmin画面でお知らせを書いて投稿する仕組みとなっていますが、その際にAdmin画面のプレビューと実際のお知らせ画面と見た目が異なっていて余白であったりテーブルは線が引かれるタイプなのかどうかがわからないといった問題がありました。
原因としましてはadmin画面ではadmin用のCSSが適応されていて、お知らせ画面ではお知らせ画面用のCSSが適応されていました。
てことで解決するにはadmin画面のプレビューの部分だけを実際に使われているお知らせ画面用のCSSを適応させなければいけません。
どうするんだ🤔がんばってCSS上書きをするのか?
なんとフロントエンドのメンターさんがiframeというものを提案してくれました。
iframeとは現在のページに他のページを埋め込むことができます。
Google Formsを思い出してもらうとわかりやすいです。自分のページに埋め込む際にこのiframeを使うことでGoogle Formsを別ページとして埋め込むことができます。
ということでiframeを使って修正していきます。
ここでjQueryを初めて触りました。そのあたりを修正してプレビュー画面は別ページとして切り出して、そこにお知らせ画面用のCSSを適応させて実際のお知らせ画面と同じ見た目にすることができました。とってもチームの人が喜んでくれました。このように喜びの声が聞けるのはとってもよかったです。
先ほどの画像のお知らせの投稿日は2024/3/3だからデプロイ後なので僕が修正したプレビュー画面を使われているはずです!イエイ
リダイレクト先の改善
メール認証後のリダイレクト先に違和感があるというissueがありました。なのでどうしてそのリダイレクト先なのかを調査して、それ次第で改善するかどうか判断するということになりました。
ここで活躍するのが git blame
ということで調査していきます。
7 years ago,10 years ago
😳😳😳😳😳😳😳😳😳😳😳😳😳
ハイ。BOOTHは2023/12に10周年を迎えました!長く運営されているサービスだと改めて感じました。
調査結果
なんかわかんないけど突然変わっていた
MR(Merge Requests)で特に記載がなく変更されていました。
てことで改善しちゃいます!
ここでrubyを書いていきました。この際にどのページからメール認証画面に来たかを判定する必要がありました。CookieやRedisにコンテキストを持たせて判断するかなどといった考えも出ました。しかしBOOTHには前ページのURLを取得できる活用的なメソッドがあったためそれを使うことで簡単に改善することができました。
またE2Eテストを修正しました。
認証周りの改善(㊙️)
㊙️です。実装まではできたのですがテストの修正が間に合いませんでした。もう少し時間があればできたかもしれないです。
これをやっている最中に自分が触った記憶のない部分でテストが落ちていたため、よくよく実装を見てみたら消してはいけないものまで消していたことに気づきました。改めてテストは大事だと思いました。
その他
BOOTHチームの雰囲気もとてもよく快適に過ごすことができました。
インターン参加のノベリティも豪華でした。なんとパーカーをいただけます!
また偶然ですがインターン中の2024年02月27日にBOOTHではシステムメンテナンスがありました。メンテナンスの様子を知ることができました。
最終発表
今回のインターン行ったことを発表しました。上記のようなことを話しました。そして社員のみなさま、同じインターン生から質問が飛んできます(コワイ)。
しっかり発表をして、飛んできた質問にも無事回答しておえることができました。
VPoEの方がすべてのインターン生に質問と総評をしていてすごかったです。
みなさん難しそうなことや、面白そうなことをやっていてとてもよい発表会でした。
社内行事・イベント
社内にはいろいろな行事・イベントがありました。インターン参加中には以下のようなものがありました。
全社会
毎週水曜日には全社会というピクシブ社員が全員GoogleMeetに集まる会がありました。ラジオ体操から始まります。その後はそれぞれのチームが報告をしたり、社内共有事項を供するような会でした。なぜか猫ミームをみることができました。
白米Fes
定時後の社内イベントです。ピクシブでは定期的に社内イベントがあるそうです。その一環として今回のイベントが行われました。
このイベントは白米を食べよう!というそのままのイベントです。全国各地のご飯にあう食材が用意されて白米を食べて社員、インターン生と交流することが目的のイベントです。明太子が一番おいしかったです。また社員の方やインターン生と様々なお話ができました。白米Fesは初めてのイベントだったそうです。
ピクシブがだしている詳しいブログはこちら

白米Fes
社内イベント②
ここでも社員やインターン生とお話をしました。
ランチ
インターン期間中は毎日豪華な食事に連れて行ってもらいました。また社員の方と技術、趣味、就活、ピクシブのことなどのさまざまなお話をしました。

ランチ
感想
非常によい経験ができてとても充実したインターンとなりました。特にユーザーに関わるところにも携わることができて、達成感がとてもありました。それをデプロイまで持っていけることもできてよかったです。
また就業型ということでタスクが社員と同じような内容をやることができたこともよかったです。設計を考えて、実装をしてテストを書いてレビューをもらってデプロイするという一連の流れをやることができてBOOTHでの開発体制を学ぶことができました。
またメンターさんや他のピクシブ社員とも色々なお話ができてよかったです。
インターン期間内に白米Fesといった社内イベントに参加できたこともよかったです。ここでも社員の方や他のインターン生とお話しすることができました。社内でこのようなイベントがあることもしれてよかったです。
発表も十分に発表することができて大変満足しています。メンター、VPoE、CTOの方たちの総評もいただけて自分がどのような影響を与えたのかをあらためて実感しました。
本当に色々なことを学べて、経験できてよかったです。
まとめ
とってもよかったので興味があればぜひ参加をオススメします!