ETロボコンにおける開発環境 - Cpplint
はじめに
本記事では、ETロボコンに参加するうえでの開発環境にCpplintを導入して、使用することに関して記載します。
そもそも、ETロボコンとは何か?ということですが、ETロボコンは、2002年から開始されたソフトウェア重視のロボットコンテストであり、組込み技術者の育成を目的としています。このコンテストは、その長年にわたる開催と貢献により、経済産業大臣賞を受賞しています。
詳細は、下記を参照してください。
ETロボコンにおける開発環境
ETロボコンの開発環境の概要としては、以下の通りとなります。
- WSL上のUbuntuを使用
- 統合開発環境としてVisual Studio Codeを採用
- プログラミング言語はC++/C
- Unityで動作するシミュレータを利用
- 実機はRaspberry Pi + SPIKE上で動作
これらの環境は、主催者から基本的に提供されます。
想定読者
- ETロボコンに参加する開発者
- C++を用いた開発に携わる者
Cpplintとは
Cpplintは、Google C++ Style Guideに準拠しているかをチェックするための静的コード解析ツールです。ソースコードのスタイルやフォーマットの問題を指摘し、一貫性のあるコーディングスタイルの遵守を促します。
Cpplint Github
なぜ、Cpplintか?
複数の開発者が共同でプロジェクトに取り組む場合、コーディングスタイルを統一することは、余計なコミュニケーションコストをかけない、という意味でプロジェクトの成功に不可欠です。特にC++は様々な文化が混在しているため、コーディングスタイルの統一が他の言語に比べて特に重要となります。世の中で広く使われる、Google C++ Style Guideを基準にしたコーディングスタイルの選択は、開発プロセスをスムーズにし、時間の節約につながります。
詳細は、下記記事に記載しています。
そして、この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上で以下の手順で行います:
- Cpplintのインストール
Cpplintをダウンロードまたはインストールします。通常は、pip3を使用してPythonパッケージとしてインストールできます。sudo apt-get update pip3 install cpplint
- wslのパスワードを聞かれた時は、PCにサインインした時のパスワード等をいれる。
- pip3がなければ、インストールする。
pip3ではなく、pipでも正常にインストールできるかもしれないが、試していないので、ここでは記載していない。
-
拡張機能のインストール
Visual Studio CodeにCpplintを統合するための拡張機能cpplintをインストールしてください。
-
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」からの相対パスで指定する。 例) .
良くわからなければ、「.」でいいだろう。
- cpplintの警告を修正する
Visual Studio Code で、C++のソースファイルを開くと、「PROBLEMS」に下記のように警告が表示されます。
その警告の根拠になるGoogle C++ Style Guide の箇所も表示されているので、警告の詳細は、そちらを参照する。その記載に従って、警告をひとつひとつ潰していく。
おわりに
CpplintをETロボコンの開発環境に導入することで、チーム内でのコーディングスタイルの統一を促進し、より効率的で読みやすいコードの開発を実現できます。本ツールは、コーディングプロセスを支援し、最終的な製品の品質向上に貢献します。この導入ガイドが、あなたのETロボコンチームの躍進に役立つことを願っています。
Discussion