GitLabにコントリビュートすると一流エンジニアからRailsのコードレビューをしてもらえる話
昨晩開催された「Rails Developers Meetup #4 リモート会場 - connpass」の『プロを目指すRailsエンジニアのための公開コードレビュー』をYouTubeで視聴していて、一流エンジニアからRailsのコードレビューをしてもらえるエンジニアはあまり多くはないんだろうなと感じました。
なぜなら、過去にきちんとRailsのコードレビューを受けたことがあれば、発表で取り上げられたような読みにくいコードは書かないはずだからです。 一流のエンジニアからコードレビューを受けることで、エンジニアとしてのスキルを飛躍的に高めることが出来ます。 しかし、そのような機会に恵まれるかどうかは、入社した会社の同じチームに優秀なエンジニアが在籍しているかどうかによるところが大きいと思います。
そこで、不幸にも会社の同じチームに優秀なRailsエンジニアがいなかった場合は、「GitLab.org / GitLab Community Edition · GitLab」にコントリビュートすることをオススメします。
GitLabはOSSのGitのホスティングツールとして有名ですが、メインはRailsで作られています。 現在、GitLabはGitLab社によって開発が行われていますが、元々は共同創業者であり現CTOのDmitriy Zaporozhets氏がはじめたOSSの個人プロジェクトでした。 そのような経緯もあり、GitLab社はコミュニティーからのコントリビュートを非常に重視しています。
そのため、GitLab社には「Merge Request Coach | GitLab」というコミュニティーからのマージリクエスト(=プルリクエスト)のコードレビューを業務として行う社員が複数人います。 ちなみにTeam | GitLabを見ると誰が「Merge request coach」なのか分かりますが、Backend Lead | GitLabなどを兼務している上級プログラマーがアサインされているようです。 これは、質の悪いコードがマージされてGitLabのメンテンス性と生産速度が低下するのを防止するためではないかと思います。
ちなみに、私が投稿したAdd filter by my reaction (!12962) · Merge Requests · GitLab.org / GitLab Community Edition · GitLabは、コードレビューで大量の指摘を受けていますが、どうすればメンテンス性の高い綺麗なコードを書けるのか非常に参考になります。 なお、解決済みの指摘事項はデフォルトで折りたたまれて表示されますが、「Toggle discussion」をクリックすると表示することが出来ます。
なお、DBのパフォーマンスに関わるマージリクエストImprove AutocompleteController#users.json performance (!13754) · Merge Requests · GitLab.org / GitLab Community Edition · GitLabは GitLab.comのデータベース障害から学ぶ — A Day in Serenity (Reloaded) — PHP, FuelPHP, Linux or somethingで有名になったDatabase (removal) SpecialistのYorick Peterse (@YorickPeterse) | Twitter からコードレビューとパフォーマンスレビューをしてもらえます。
私は英語が苦手なので英語でのやり取りは大変だと感じていますが、アバウトな英語でも何とかなっています。 また、英語が苦手でコントリビュートの障害となっている場合はJoin gitlab-jp on Slack!の#devチャンネルで質問すれば、日本語でサポートして貰えると思います。
ちなみに来月は、GitLab 10.0という大きめのリリースが予定されているために、GitLab社のリソースが不足しているようです。 そのため、普段よりマージリクエストへのレスポンスが悪くなっているようですが、無視されることは無いと思うので気長に待つと良いです。