Sider(サイダー)は、ソフトウェア開発のプラットフォームであるGitHubと公式に連携したコードレビュー自動化ツールである。静的コード解析に基づいて設計されており、いくつもの静的コード解析ツールと連携することができた。Siderの使用により、コーディングスタイル違反、コードの品質、コードのセキュリティー、依存性などをチェックすることができた。2022年にサービスを終了し、運営会社の株式会社Siderは2025年3月4日に清算を結了した。
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月時点)には、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 (ソフトウェア)等との外部連携が可能であった。 ユーザーがプルリクエストをした際、自動でスタイルの問題点、複雑性、重複、セキュリティーの脆弱性について瞬時に読み取り、指摘した。ユーザーは既存のコードレビューのフローを変更することなくマージする前にチームで問題点について話し合い、修正することができた。 正確で多様な解析を継続的に行うことで技術的負債のリスクを下げ、コードをきれいに保つことができた。 技術者によるサポートチームがあり、導入時やトラブルシューティングのサポートを受けられた。 オープンソースのプロジェクトに関しては無料で使用できた。また、全てのGitHubユーザーが無料で14日間試用することができた。
対応言語・解析ツール(サービス提供当時) 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)