レビュー時間を50%削減、コード品質も抜け・漏れのない自動コードレビューで向上
C/C++での組み込み製品向けソフトウェア開発時のコードレビューの確実性を上げるためにSider Enterprise for GitLabを導入

株式会社フィックスターズについて

自動車、医療、金融などさまざまな分野の国内大手企業のソフトウェアを高速化する株式会社フィックスターズ。機密性の高い顧客のコードを管理しながら開発していくため、同社のバージョン管理システムはオンプレミス版のGitLab Enterpriseを使用しています。また、顧客のアプリケーションに合わせてC/C++やPythonを始めさまざまなプログラミング言語でソフトウェアを開発しています。

なぜSiderを選んだか?

グループ会社のSider社で提供しているSiderが組み込み向けの開発環境に対応したのが使用したきっかけです。私が実装に使用するC/C++をサポートしたこと、また、会社の標準開発環境のGitLabに対応したので試してみようと思いました。

いままでもGitLab上でCIを組み込むツールの存在は知っていたのですが、実際に導入するには意外とハードルが高く、思ったよりも時間がかかってしまうので使っていませんでした。Siderは導入が簡単で、今回のプロジェクトに数クリックで導入できたのでとても楽でした。

また、特に良い点・選んだ理由を挙げるとすると以下の3つです。

  1. プロジェクトに合わせたコーディングガイドを簡単にルール化できる
  2. マージリクエストの度に指摘が出るので担当プログラマが自分ですぐに修正できる
  3. C/C++やPythonなどさまざまな言語に対応しているので使い勝手が良い

効果

弊社ではお客様の実現されたい機能について、アルゴリズム開発からプロセッサへの実装までを一貫してサポートしています。私の担当するプロジェクトは組込機器向けが多く、アルゴリズムはPythonなどで開発しますが、実装は組込プロセッサ向けにC/C++言語で実装することが多いです。

今回の対象となる画像処理のアルゴリズム開発のプロジェクトでは、週1-2回程度、1回あたり2-3時間くらいコードレビューを行っていました。時にはレビューに1日以上かかるときもありました。レビュー時の指摘は本質的なものもありましたし、インデント有無などフォーマットに関しての細かな指摘も数多くありました。そのためレビュー時間が取りきれずレビューの品質が落ちたと感じたこともありました。また、翌週のレビューの際に前回での見落としを気づくこともありました。


アルゴリズム開発を終えてC言語での実装に移行するタイミングでSiderを導入しました。Gitを用いた全体の業務フローやレビューフローは特に変更せず、メンバーにはコードレビュー前にSiderによる指摘を可能な限りPassするようにしてもらい、その後レビューに入るようにしました。それにより、細かな指摘やうっかりミスなどはレビューに入る前に未然に防ぐことができました。

Siderの指摘のルール・設定については今までの自分の経験やプロジェクトの過去の背景から選定・変更を行いました。今回のプロジェクトではお客様から特にコーディングガイドの指定はなかったのですが、過去の経験からお客様の会社の標準的なルールを作成して適用しました。具体的にはSiderのデフォルトルールのうち、対応するコストが高すぎると感じたものは無効化するなどを行いました。例えば「インクルードガードの命名規則」や「ファイルの先頭にコピーライトを入れる」などコーディングスタイルの問題に関するルールの無効化です。

Siderは設定ファイルでルールの選定が出来るので、適切なレベルでのルール化を行うことで、これまでのレビューではおざなりになっていた指摘も出来るようになりました。

1) コードレビューの時間を50%削減

これらのSiderによるチェックをレビュー前に行ってもらうことにより、それまで週1回の頻度で2-3時間掛かっていたレビューが、1時間半ほどで終わるようになり、30%から50%の時間削減になりました。

2) うっかりミスの低減・単純なミスを繰り返し指摘する

また、パフォーマンスの低下防止にも役立ちました。たとえば、fabs()のように複数の型に対して用意されている関数で、 float型を使うべき箇所でdouble型の関数を利用しており暗黙の型変換が入っていました。こういったものはレビューで気づけば指摘していましたが気づかないこともありました。今はSiderが指摘してくれるようになったので、うっかりミスを防げるようになりました。

3) メンバー間のストレスの解消

個人的に嬉しいのは精神的な負担が減ったことです。いままでは簡単な事項の指摘や繰り返しの指摘をしなければいけないことがありましたが、それらがSiderにより自動化・機械化され、メンバーとのコミュニケーションが楽になりました

解析結果まで30秒。
無料ではじめられます

オープンソースプロジェクトはすべての機能が無料。
プライベートリポジトリは無料トライアルでお試しいただけます