Sider

Sider(サイダー)は、ソフトウェア開発のプラットフォームであるGitHubと公式に連携しているコードレビュー自動化ツールである。また、GitLabにも対応している。静的コード解析に基づいて設計されており、いくつもの静的コード解析ツールと連携することができる。Siderの使用により、コーディングスタイル違反、コードの品質、コードのセキュリティー、依存性などをチェックすることができる。

Siderの前身となるコードレビュー自動化ツールSideCIは、日本の東京に本拠地を置く株式会社アクトキャット（現：株式会社Sider）によって2014年4月に開発された。2016年8月からは汎用プログラミング言語Rubyに対応して技術的負債を可視化する「負債カンバン」の提供を開始し、2017年6月にこれを終了している。

株式会社アクトキャットは2018年1月に社名をサービス名と同じSideCI株式会社へと変更、さらに2018年6月にサービス名がSideCIからSiderへ改称されたことを受け、社名もSideCI株式会社からSider株式会社へと変更された。その後、2019年10月にSider株式会社は株式会社フィックスターズの100%子会社である株式会社スリークへ譲渡され、Sider事業の運営会社が株式会社スリークに変更された。その後、2020年12月に株式会社スリークが株式会社Siderに社名変更を行った。

2020年7月現在、Siderの解析システムはRuby、PHP、JavaScript、TypeScript、CSS、Java、Kotlin、Python、Go、Swift、C/C++、C#、Shell Script, Dockerfile, Markdownなどのプログラミング言語に対応している。

背景 
1990年代半ばからプログラミング開発現場では、従来のウォーターフォール形式での開発の厳格さへのアンチテーゼからアジャイルソフトウェア開発の手法が取られることが多くなり、1996年に開発され1999年に書籍が発表されたエクストリームプログラミングが普及により、チームによる共同開発が主流になった。そのためコードは従来のようにプログラムを実行した際に与えられた要件を正確に動作するかという観点だけではなく、共時的ないし通時的に開発に関わるメンバー全員が理解しやすいかどうかという観点も重要視されるようになった。

この正確性と平易性の保持のためには開発中の恒常的なコードレビューは避けられない。だが全自動の静的コード解析には多額のコストが必要であるうえ、実行時エラーを全て検出することは不可能であることが証明されており、任意のプログラムが正しく動作するかエラーになるかを判定する機械的手法はない。そもそもどの視点で解析するかに端を発する理論上の実現不可能性を抱えている（チューリングマシンの停止問題およびライスの定理）ため、実際には人力による動的プログラム解析を待つ必要がある。とはいえ全てのコードを逐一チェックする人的コードレビューには膨大な時間が掛かるため現実的とは言えない。

以上のような状況を鑑みて2014年4月に開発されたコードレビュー自動化システムがSideCI(現：Sider)である。

Siderは先述のコードレビューにかかる包括的なコスト問題について、ユーザー体験をデザインすることで解決に導いている。Siderが扱う数種の静的解析ツールはGitHub上でプルリクエストをした際に自動的かつ一斉にコードの検証を行い、問題を含む可能性のある部分を検出する。ここでは不適切とみなされたコードの自動書き換えが行われないため、ユーザーは解析ツールが不適とみなしたものの人的判断では問題のないコードがいつのまにか書き換わっているというリスクを犯すことなく、問題を含む部分のみを自らのチームで検証あるいは修正することができる。

特徴 
 30秒で初期設定ができる。設定が完了する前でも、テストモードを利用するとSiderからGitHub 上のプロジェクトを選択することで即時に解析を行うことができる。
 20以上の解析ツールに対応し、標準的なコーディング規約・ベストプラクティスをサポートする。
 GoodcheckやQuerlyを使用し、コードを書かずにカスタムルールを追加することができる。
 希望に応じてSlack (ソフトウェア)等との外部連携が可能である。
 Siderはユーザーがプルリクエストをした際、自動でスタイルの問題点、複雑性、重複、セキュリティーの脆弱性について瞬時に読み取り、指摘する。ユーザーは既存のコードレビューのフローを変更することなくマージする前にチームで問題点について話し合い、直すことができる。
 正確で多様な解析を絶え間なくすることで技術的負債のリスクを下げ、コードをきれいに保つことができる。
 技術者によるサポートチームがあり、導入時やトラブルシューティングのサポートを受けられる。
 Siderはオープンソースのプロジェクトに関して無料で使用できる。また、すべての GitHubユーザーは無料で14日Siderを試すことができる。

対応言語・解析ツール 
 Ruby
RuboCop
 Brakeman
 Reek
 Querly
 Rails Best Practices
 haml-lint
 PHP
 PHPMD
 PHP_CodeSniffer
 JavaScript
 ESLint
 TSLint
 JSLint
 CoffeeLint
 CSS
 Stylelint
 SCSS-Lint
 Java
 PMD
 Checkstyle
 Go
 Go Meta Linter
 Go vet
 Golint
 Python
 Flake8
 Swift
 SwiftLint
 Other
 Misspell
 Goodcheck

受賞歴 
 Ruby biz Grand prix 2016 特別賞

出典

関連項目 
 オープンソース
 静的コード解析
 ソフトウェア開発ツール

外部リンク 
 Sider (official website)

技術のウェブサイト
フリーソフトウェアのプロジェクト