Sider Blog

コードレビュー自動化サービス「Sider」を運営するSider株式会社のコーポレートブログです。

Sider Code Review Meetup #4 レポート

f:id:sideci:20181019121715j:plain

9月27日、Sider主催による『Code Review Meetup #4 ~Code Reviewで集まろう~』が代官山のOpen Network Spaceにて開催されました。コードレビューをテーマにした本Meetupも今回で4回目。この夜は予約段階で満員・キャンセル待ちも発生するなどの注目をいただき、最終的に30名以上の方々のご参加となりました。この日ご登壇いただいた4名のスピーカーの皆さまからは、コードレビューをテーマにそれぞれ独自の切り口でお話を聞くことができました。

RuboCopコミッターである株式会社永和システムマネジメントの伊藤浩一氏 ( @koic )は、「コードレビューしぐさ」(スライド: https://speakerdeck.com/koic/for-whom-the-quality-exists )と題し、コードレビューがなぜ重要か、また多様なメンバーでプロジェクトを進めるとき、それぞれの環境、関係などで、どんなコードレビューが望ましいかなどを話してくださいました。伊藤氏によると、どのようなメンバー構成でプロジェクトを進めるのであれ、コードの質の期待値に対し共通の認識をもつことが大切とのこと。また、Linterツールによるレビューと人間によるレビューとを比較し、人間の行うレビューにおいて機械にはできない領域のレビューを行うための知識を受け渡していくことの重要性に触れ、一方Linterツールを使用することによって、新しいメンバーに既存のルールを共有しながら、どの部分を機械に任せ、どの部分を人間の手でレビューするかを判断しやすくなる、という大変わかりやすいご説明をいただきました。

f:id:sideci:20181019121739j:plain
コードレビューしぐさのタイトル通り、哲学を聞かせてくださった伊藤氏

続いての登壇者は、株式会社ビットジャーニーのGoro Fuji ( @gfx )氏。gfx氏は、「コードレビューを自動化するために『Querly』(注釈:Siderが提供しているツール)を使用する」というテーマにもとづき、「歴史的経緯の説明 as code」(スライド: https://speakerdeck.com/gfx/li-shi-de-jing-wei-falseshuo-ming-as-code )を会場と共有してくださいました。Querly DSLの例や株式会社ビットジャーニーの提供するサービスKibelaの事例などに加え、LinterとQuerlyの違いとして、「Linterは一般的なルールをチェックするものであるのに対し、Querlyはプロジェクトごとのルールをチェックすることで『歴史的経緯』をコードとして形に残すものである」ということを非常にわかりやすく説明していただきました。 この解説に、参加者さまより「今まで知らなかったけど、Querlyを使ってみたい。他社の事例や一般的なルールを知りたい」というお声も頂戴したので、Siderの中の人の我々も、もっと上手にQuerlyの良さを皆さんに伝えなくては!と感じました……!

f:id:sideci:20181019121827j:plain
こうした生の声の要望はとてもありがたいです。

三番目のスピーカーであるTakeru Yasumoto ( @seteen )氏は、コードが長くなりレビューしづらいこともあるRSpecを短く書けるように、RSpecを拡張したGem、RSpecZの使用法について、「レビューしやすいテストを目指して RSpecZ」(スライド: https://www.slideshare.net/ssuser7aa1e3/code-review-meetup4-rspecz ) というタイトルでお話しいただきました。

f:id:sideci:20181019121859j:plain

上の写真のスライド画面にも現れているように、RSpecZを使用するとコードの長さが半分くらいになるそうです。視覚的にも「これはコードレビューしやすくなりそうだな」というのが非常にわかりやすい発表でした。

そして、この夜のトリを務めました弊社エンジニアのKazuma Watanabe ( @wata727 )は、 「快適なコードレビューを目指して」(スライド: https://speakerdeck.com/wata727/for-a-comfortable-code-review )と題し、コードレビューを行う様々な目的のなかから「問題を防ぐこと」と「知識の共有」に的を絞り、それぞれに対して、弊社にて新しくリリースしたPhinderを使った効果的なレビューの方法について説明しました。Phinderを使うことで、コードの臭いを感じるパターンに対し、過去に発生した問題や懸念事項を提示することができます。また、レビュー時に確認するべき項目を自動でリストアップできます。発表の中には、「人間によるレビューの知識を共有していくために経験をYAMLに書き出す」という、gfx氏のお話と共通する話題もありました。

f:id:sideci:20181019121917j:plain

その後、各プレゼンテーション終了後に開催された懇親会では、軽食を囲みながら参加者の皆さんが熱心に登壇者の方々に質問をされている姿があちこちで見受けられました。 コードレビューをテーマとしているMeetupはまだまだ少ないようですが、より快適な開発や、よりスムーズなコーディングに欠かせないコードレビューを、SiderもブログやMeetupを通じて広めていくお手伝いをしこうと考えています。これからもコードレビューに関わる皆さんの勉強のお役に立てれば嬉しいです。

現時点では次回のコードレビューMeetup開催予定は未定ですが、ConnpassやDoorkeeperでは随時Meetupの情報をお知らせしています。今後のMeetup参加に興味のある方は、ぜひ弊社ConnpassまたはDoorkeeperよりSiderコミュニティをフォローしてください!

ーーー

あなたのチームの開発効率向上に!
Siderの自動コードレビューを14日間の無料トライアルでお試しください!

GitHub認証のスコープの更新

先日、@rmariuzzoの報告によって、SiderがGitHub認証でアカウントの更新に関する権限を要求していることが判明しました。この権限はSiderの動作には不要なもので、平たく言えばバグです。

Siderはリポジトリへの更新権限はWebhookの設定、Pull Requestへの解析結果の送信、コメントの送信などに必要です。一方で、Siderはアカウントの更新をしませんので、更新の権限は必要ありません。

Siderでは、アカウントの更新に必要な権限を要求しないようになりましたので、アナウンスします。

ユーザー体験

ユーザーは次回Siderにサインインするときに、GitHubから権限の確認をするように求められます。これは、Siderがユーザーのメールアドレスという新しいリソースへのアクセスを要求するようになったためです。技術的には、これまで要求していたアカウント更新の権限が、既にメールアドレスへのアクセスを許していたため、この警告には意味がありません。ユーザーの情報の読み取りの権限には、なぜかメールアドレスへのアクセスが含まれていないため、新しく要求する必要がありました。

メールアドレスは、ユーザーの識別やSiderから送信するメールの送り先などに利用されているため、これを要求しないように変更する予定はありません。

権限の更新

この修正によって、新しくサインアップするユーザーにはアカウント更新の権限を要求しなくなりましたが、既存のユーザーに対しては以前に要求されたアカウント更新権限が付与されたままになってしまいます。

既に認可されてしまっているアカウント更新権限を取り除くためには、Siderにログインして操作を行ってください。

アカウント設定ページに「認証のリセット」という項目を追加しています。ここから再度の認可をリクエストし、不要な権限を取り除くことができます。「リセット」ボタンをクリックすると、再度サインインするように要求されますので、サインインしGitHubの認証を行ってください。Siderが要求する権限が更新され、必要最小限の権限のみが認可されるようになります。

GitHubでSiderへの認可をrevokeし、再度Siderにサインインすることでも、権限の更新が可能です。

まとめ

Siderから要求されるGitHub認証の権限を最小化しました。既に認可してしまった権限を更新するためには、アカウント設定ページからリセットの操作をする必要があります。

Siderの挙動でなにかおかしなものを見つけたり質問がある場合は、お気軽にお問い合わせください

10月分の解析ツール更新を行いました

Siderは毎月解析ツールのバージョンを見直しております。このたび、10月分のバージョンアップデートを行いましたのでお知らせいたします。

現在のバージョンについてはドキュメントもあわせてご確認ください。

なお、RuboCop, ESLint, stylelintに関しては、それぞれ任意のバージョンをSider上で動作させることが可能なため、上記のアップデートはデフォルトバージョンの更新になります。詳しくはドキュメントの各解析ツールの設定をご覧ください。

何かご不明点がございましたら、お気軽にSiderの右下のチャットからお問い合わせください。


あなたのチームの開発効率向上に!
Siderの自動コードレビューを14日間の無料トライアルでお試しください!

GitHub Universe開催記念!Sider30日間無料トライアルキャンペーンのおしらせ

f:id:sideci:20181004160247p:plain この秋、Siderが初めてGitHub Universeにスポンサーとして参加することを記念して、通常14日間の無料トライアルを30日間に延長する、スペシャルなキャンペーンを行います!この機会にぜひ、Siderの自動コードレビューをじっくりお試しください!

キャンペーン詳細

適用期間:

2018年10月15日 0:00 PST(日本時間 2018年10月15日 16:00)
から
2018年10月21日 23:59 PST(日本時間 2018年10月22日 15:59)
まで

手順:
  1. SIderのウェブサイトのトップにある『GitHubでサインイン』ボタンをクリック!

  2. Siderを利用するプライベートリポジトリを選択してください!GitHubアカウント上にパブリックリボジトリしかなかった場合、30日間無料トライアルキャンペーンは適用されません。なお、パブリックリポジトリに関しては、Siderは通年無料です。

この無料トライアル30日間延長キャンペーンは、適用期間内に「Siderにサインアップ」したうえで「プライベートリボジトリを作成する」という、2つの条件をクリアした時点で自動的に付与されます。サインアップだけでは適用されませんので、くれぐれもお気をつけください!

Happy coding!
Siderチーム


あなたのチームの開発効率向上に!
Siderの自動コードレビューを14日間の無料トライアルでお試しください!

新しい解析結果ページをリリースしました

こんにちは。プロダクトチームの渡邉です。Siderでは、プルリクエスト上で発生した警告を確認し、その重要度に応じて、ユーザーが対応、未対応の選別ができる解析結果画面を提供しています。

この度、この解析結果ページのデザインをリニューアルしましたので、ご紹介します。

f:id:sideci:20181004181752j:plain

新しい解析結果ページでは、いくつかのレイアウトの変更を行っておりますが、機能に変更はありません。Siderではより快適なユーザー体験を提供するために、今後とも継続的にデザインの変更を行っていきます。

新しい画面についてフィードバックなどございましたら、お気軽にSiderの右下のチャットからお問い合わせください。


あなたのチームの開発効率向上に!
Siderの自動コードレビューを14日間の無料トライアルでお試しください!