徒然技術日記

Object.prototype.__noSuchMethod__

3ヶ月間インターンシップに参加して実感したドワンゴの魅力

f:id:Nodaguti:20151224192227j:plain

10月から12月にかけてドワンゴインターンに行ってきました.

参加の経緯は

nodaguti.hatenablog.com

をご覧ください.

なお,この記事は ドワンゴ Advent Calendar第2のドワンゴ Advent Calendar の記事ではありません.枠争奪戦に敗北しました.

インターンの経過

10月〜11月

面接での希望通り,ニコニコ動画を開発しているチームに配属となりました!

元々は JavaScript をバリバリ書いてプレイヤーを改善していくぞ!💪💪💪 という意気込みでいたのですが,タイミング悪くプレイヤー関連では特に大きなタスクがなかったらしく,11月末あたりまでは総合トップのデザイン変更という案件に関わらせていただきました.

https://blog.nicovideo.jp/2015/11/post_268.php

「デザインの変更」というと CSS (とせいぜい DOM)の変更が主という印象を受けるかもしれませんが,実際は

  • PHP フレームワークのバージョンアップと,それに伴うテンプレート・CSS・JS の全書き換え
  • 新しい情報が出る部分のサーバ側(PHP)実装とキャッシュ構築

という非常に大規模な案件でした.

このうち,デザイン,static な DOM 構築および CSS はデザイナーの方が担当され,私は

  • 既存の総合トップとその周辺の PHP をコードリーディング
  • 新規枠向けの PHP 実装 (70%ほど)
  • ページのベースとなるテンプレートを作成するなど,テンプレートの「継承」における基礎部分を構築
  • デザイナーの方が構築された DOM をテンプレートに繋ぎこみ (70%ほど)
  • JavaScript の実装(検索窓, タブなど)

など,インターン生にも関わらずかなりの部分を担当させていただきました.

さらに,初めてコードレビューを「する」側としてレビューに参加させていただきました.新卒ですらないのにコメントしていいのだろうかと思いながら,これまで独学で学んできた謎の美意識に基づいて好き勝手書かせていただきました.そうしたレビューを許容してくださったチームメンバーの懐の広さにとても感謝しています.

まだまだ細かなコーディングスタイルやネーミングなど狭い視野でのコメントにとどまり,なかなかコード全体から設計などを考えることができないと実感させられました.

また,社員の方からのレビューコメントや,口頭での議論を通して,「よりよい設計とは何か?」ということを深く考えるきっかけを得られました.もっともっと精進していきたいです.

得たもの

ニコニコ動画の歴史ある重厚なコードを存分に読むことができ,(RC) の頃から愛用しているサービスの中身を垣間見れたことがとても貴重な経験でした.

AB テストリリース直前にはいろいろバグも出してしまい,ご迷惑をおかけしてしまったのですが,大人数がアクセスする総合トップに関わることができ,実際にユーザーの方の反応が得られた時には,感無量でした.

なお,PHP は「あらゆることをトップレベルの関数で行う」という部分が生理的に合わず,これまで避けてきたのですが,今回ついに触ることになりました.

その感想としては,http://qiita.com/nori0620/items/08bba8649fa5b608f695 という感じです.おそらく趣味ではお世話になることはないかと思います,PHP さんありがとうございました.

12月

総合トップの AB テストリリースが終わった12月からは,とある案件のビルド・テスト環境の構築を行いました.

具体的には, gulpfile.babel.js や webpack.config.js を書きまくるタスクです.CA の時にはこれらのファイルはすでに存在していましたし,趣味プログラミングでも本格的に構築したことはなかったため,非常に勉強になりました.一つ一つのパッケージを調べて導入していったことで,ビルドやテスト周りについては基礎知識がついたように思います.

テスト環境周りを構築していた時に,espower-babel のバグを発見して Pull Request を送ったり(人生初の OSS へのコミット),electron-mocha を Gulp から使えるようにする gulp-electron-mocha というパッケージを作成したり(人生初の npm パッケージ公開)しました!

これからも積極的にプロダクトを作っていきたいという気持ちが高まりました.

勤務環境

一言で言うと,「自由」です.そして,その自由さが最大の魅力だと感じました.

ドワンゴでは午前10時は早朝」 という言葉を以前読んだことがあったものの,正直インターンを開始するまでは半信半疑でした.しかし,実際は「午前11時でも早朝」なのでは?という程の人のいなさ加減でした(おそらくチームによっても異なるのだとは思いますが).ちなみに社員の方は「ドワンゴには DST (Dwango Standard Time) というものがあってね...」と話していましたw

また,社内に葉っぱが生えていたり,机の上がダンボールハウスと化していたり,机に芝生が生えていたり,天井からメイド服や謎の提灯がぶら下がっていたりと,かなりカオス自由な環境だったのが特徴的でした.この辺りは以下の記事の写真をご覧いただくと雰囲気がより伝わりやすいのではないかと思います.

http://hrnabi.com/2014/07/25/2102/hrnabi.com

b.hatena.ne.jp

また開発環境については,ディスプレイこそ DELL の22インチディスプレイでしたが,PC は MacBook Pro 13-inch, Early 2015, メモリ 16GB,すなわち最新の MBP (!) を支給していただき,とても快適にプログラミングをすることができました.

おわりに

今回のインターンは前回と同じく週3勤務とはいえ3ヶ月間お世話になったこともあり,総合トップのデザイン変更という大きな案件に関わらせていただくことができました.

また,年末の忘年会にも参加させていただき,改めて,いつの間にかドワンゴは「イベント会社」になっていたのだなあと実感させられました.(なお,福引は外れました)

ディファ有明で行われた忘年会での一幕 (写真はカラオケ大会の様子)

3ヶ月間,目一杯ドワンゴを満喫させていただき,大変お世話になりました.本当にありがとうございました.

ドワンゴの独特な空気は,実際に体験してみてこそです.来年インターンをされる方にはぜひお勧めです!