WebエンジニアのLoL日記

LoLをプレイしたりLJLの試合を見たりするのが好きなエンジニア。LoLのイベントやパッチノートなど気になった点を記事にしたり、LJLについの記事をかいたりしています。某社でWeb系のエンジニアとして働いているので、技術系の記事もたまに書きます。コンタクトを取りたい場合はtwitterまで。

OSSでプルリクを出すために、GitHubが出している「どうやって完璧なプルリクエストを書くか」を読む

f:id:yoshiki_utakata:20190108224629p:plain

はじめに

playframework/playframework にプルリクエストを出そうとしたら、GitHubHow to write the perfect pull request を読んでねと書いてあったので読む(ざっくり日本語に訳す)。

github.com

若干忙しい人向けです。フルで読みたい人は GitHub「完璧なプルリクの書き方を教えるぜ」 - Qiita を読んでください。

どうやって完璧なプルリクエストを書くか

プルリクエストの書き方

  • プルリクエストの目的を書いてください
  • なぜプルリクエストを出したのか概要を書いてください。関連リンクなどがあると良いでしょう。このプルリクエストを出した経緯をみんなが知っているわけではありません。
  • みんながプルリクエストを見られるということを意識してください。
  • どんなフィードバックを得たいのか明確にしてください。「コードに目を通してほしい」「技術的な議論がしたい」などなど
  • もしWIP(作業中)であればタイトルの先頭に [WIP] とつけてください
  • 特に議論に参加してほしい人がいる場合は @名前 でメンションしましょう。そしてメンションの理由を添えましょう。
  • チームへのメンションも同様です。

プルリクエストにフィードバックする場合

  • プルリクエストの経緯や理由について把握しておきましょう
  • プルリクエストの内容に強く反対したい場合、すぐに書き込むのではなく数分落ち着いて考えましょう
  • 命令するより質問しましょう。「こうしろ」ではなく「こういう方法はいかがでしょうか」
  • コードの変更を求める場合はその理由も添えましょう
  • 簡単にコードを良くする方法を提案しましょう
  • 「ばか」のようなひどい言葉は避けましょう
  • 謙虚になりましょう
  • 誇張しないようにしましょう
  • 議論を通して専門的なスキルやグループの知見、プロダクトの品質の向上を目指しましょう
  • オンラインの発言はネガティブに取られがちなことを認識してください。
  • 発言のトーンをわかりやすくするのに絵文字を使いましょう 👍✨

フィードバックへの応答

  • フィードバックに感謝しましょう
  • わからない場合は明確化のために質問しましょう
  • できればすべてのコメントに応答してください
  • 関係するコミットやプルリクエストへのリンクを貼りましょう
  • 議論が錯綜してきたら、自分の書いた文章が本当にそれで大丈夫なのか検討してください

このガイドラインhttps://github.com/thoughtbot/guides/tree/master/code-review にインスパイアされて作成しました。