😊

ETロボコンにおける開発環境 - Cpplint

2024/02/03に公開

はじめに

本記事では、ETロボコンに参加するうえでの開発環境にCpplintを導入して、使用することに関して記載します。

そもそも、ETロボコンとは何か?ということですが、ETロボコンは、2002年から開始されたソフトウェア重視のロボットコンテストであり、組込み技術者の育成を目的としています。このコンテストは、その長年にわたる開催と貢献により、経済産業大臣賞を受賞しています。

詳細は、下記を参照してください。
https://www.etrobo.jp/

ETロボコンにおける開発環境

ETロボコンの開発環境の概要としては、以下の通りとなります。

  • WSL上のUbuntuを使用
  • 統合開発環境としてVisual Studio Codeを採用
  • プログラミング言語はC++/C
  • Unityで動作するシミュレータを利用
  • 実機はRaspberry Pi + SPIKE上で動作

これらの環境は、主催者から基本的に提供されます。

想定読者

  • ETロボコンに参加する開発者
  • C++を用いた開発に携わる者

Cpplintとは

Cpplintは、Google C++ Style Guideに準拠しているかをチェックするための静的コード解析ツールです。ソースコードのスタイルやフォーマットの問題を指摘し、一貫性のあるコーディングスタイルの遵守を促します。

Cpplint Github
https://github.com/cpplint/cpplint

なぜ、Cpplintか?

複数の開発者が共同でプロジェクトに取り組む場合、コーディングスタイルを統一することは、余計なコミュニケーションコストをかけない、という意味でプロジェクトの成功に不可欠です。特にC++は様々な文化が混在しているため、コーディングスタイルの統一が他の言語に比べて特に重要となります。世の中で広く使われる、Google C++ Style Guideを基準にしたコーディングスタイルの選択は、開発プロセスをスムーズにし、時間の節約につながります。
詳細は、下記記事に記載しています。

ETロボコンにおけるコーディングスタイルの統一

そして、このGoogle C++ Style Guideに沿っているかをチェックする静的チェックツールが、「Cpplint」になるわけです。上記記事にも記載している、「Clang-format」とともに使うことで、より一層の効果を発揮することができます。

Cpplintを導入するとどんな感じになるか?

Cpplintを導入すると、Visual Studio Code上でソースファイルを開いた際に、Visual Studio Codeの「PROBLEMS」にスタイル違反に関する警告が表示されます。

これにより、コードをGoogle C++ Style Guideに準拠させるための修正を促進できます。しかし、すべての規則がCpplintによってチェックされるわけではないようです。例えば、関数名(メソッド名)の命名規則は、Cpplintではチェックしてくれない。完全な準拠を目指すにはGithub Copilot等の導入が効果的かもしれません。その点は、別の記事にも書きたいと思っています。

Cpplintの導入方法

Cpplintの導入はVisual Studio Code上のTERMINAL上で以下の手順で行います:

  1. Cpplintのインストール
    Cpplintをダウンロードまたはインストールします。通常は、pip3を使用してPythonパッケージとしてインストールできます。
    sudo apt-get update
    pip3 install cpplint
    
  • wslのパスワードを聞かれた時は、PCにサインインした時のパスワード等をいれる。
  • pip3がなければ、インストールする。
    pip3ではなく、pipでも正常にインストールできるかもしれないが、試していないので、ここでは記載していない。
  1. 拡張機能のインストール
    Visual Studio CodeにCpplintを統合するための拡張機能cpplintをインストールしてください。

  2. Visual Studio Codeの設定
    Visua Studio Codeで、「Settings > Extensions > cpplint」の下記項目を設定する。その他の項目は最初はデフォルトのままにして、必要に応じて徐々に変えていく、というスタンスで良いでしょう。設定後、Visual Studio Code を再起動してください。

  • Cpplint Path
    cpplintが存在するパスを指定する。 例) /usr/local/cpplint
    パスがわからない場合は、TERMINALで、which cpplintとコマンドを実行することで、情報が得られる。
  • Repository
    リポジトリのTOPディレクトリを指定する。 例) /home/wsl/etrobo/workspace
  • Root
    Headerガードを適用するRootディレクリを、「Repository」からの相対パスで指定する。 例) .
    良くわからなければ、「.」でいいだろう。
  1. cpplintの警告を修正する
    Visual Studio Code で、C++のソースファイルを開くと、「PROBLEMS」に下記のように警告が表示されます。

その警告の根拠になるGoogle C++ Style Guide の箇所も表示されているので、警告の詳細は、そちらを参照する。その記載に従って、警告をひとつひとつ潰していく。

おわりに

CpplintをETロボコンの開発環境に導入することで、チーム内でのコーディングスタイルの統一を促進し、より効率的で読みやすいコードの開発を実現できます。本ツールは、コーディングプロセスを支援し、最終的な製品の品質向上に貢献します。この導入ガイドが、あなたのETロボコンチームの躍進に役立つことを願っています。

Discussion