C++やPython向けのコード可視化ツール「Sourcetrail」がオープンソースに:コードを読む時間が一番長いという問題
Coati Softwareは、クロスプラットフォームのインタラクティブなコード可視化ツール「Sourcetrail」を、無料のオープンソースソフトウェアとして公開した。CやC++、Java、Pythonなどに対応している。コードを読むことにほとんどの時間を費やす開発者に役立つツールだ。
オーストリアのCoati Softwareは2019年11月18日(現地時間)、クロスプラットフォームのインタラクティブなコード可視化ツール「Sourcetrail」を、無料のオープンソースソフトウェアとしてGitHubで公開したと発表した。
Sourcetrailは、開発者が他人の書いたソースコードを理解し、生産的にコーディングを行えるよう支援する。開発者は既存のソースコードを理解することに多大な時間を費やすが、一般的なコードエディタは、こういった作業にはほとんど役に立たない。
Sourcetrailの主要開発者であるEberhard Gräther氏は、「Google Chrome」のグラフィックスチームにインターンシップとして参加した2012年時点の経験を次のように語っている。
「割り当てられた単純に見えるタスクに着手し、具体的なコードの改善に取り組み始めるとすぐに、Chromiumの巨大なアーキテクチャを理解する機会が全くないことに気付いた。ドキュメントはあまり役に立たず、開発チームのメンバーは非常に友好的だったが、コードベースについて質問するインターンに邪魔されることを好まないことも分かった。そこで、ソースコードを読んだり、クラスの構造やメソッドが呼び出される位置について雑多なメモを書き下したりすることにほとんどの時間を費やした。2〜3日後になってようやく必要な実装に着手したものの、コードレビューを繰り返し、仕事が終わるまで約1カ月かかった」
Gräther氏は開発に必要だった時間の配分について次のようにまとめている。
「私は作業時間の約95%をソースコードの読み取りに費やしたため、生産的ではないと感じた。だが、ここにいる誰もがほとんどの時間ソースコードを読んでおり、このような大規模なソフトウェアプロジェクトでの仕事として普通のことだ、と上司からなぐさめられた」
同氏がSourcetrailの開発に着手したのはそれから数週間後だったという。
オフラインでも長大なコードの状態を把握できる
Sourcetrailは、インタラクティブな依存関係グラフや簡潔なコードビュー、効率的なコード検索といった機能を組み合わせ、ソースコードの概要と詳細情報を提供する。
動作環境はWindowsやmacOS、Linux、対応言語は「C」「C++」「Java」「Python」だ。カスタム言語拡張を作成するためのSDK(SourcetrailDB)もある。
Sourcetrailと接続可能なエディタは幅広く、「Atom」「Clion」「Eclipse」「Emacs」「IntelliJ IDEA」「Neovim」「PyCharm」「QtCreator」「Sublime Text」「Vim」「Visual Studio」「Visual Studio Code」が利用可能だ。
実行時にはインターネット接続を一切利用せず、完全にオフラインで動作するため、機密性の高いソースコードにも適用できるという。
Coati Softwareは今後、開発者やプロジェクトなどを支援するプラットフォーム「Patreon」を通じて、Sourcetrailの開発やメンテナンスにかかる資金を調達する計画だ。
Sourcetrailの主な機能は次の通り。
静的解析によりソースコードのインデックスを作成
Sourcetrailはまずコードの詳細な静的解析を行う。これによってソースファイル内の全ての定義と参照が分かる。
この機能は静的コードアナライザが実行する。分析を開始するには、既存ビルドの構成をインポートするか、手動のプロジェクトセットアップを選択すればよい。
シンボルの検索がたやすい
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 2022年、開発プロジェクトの4割がAIをチームメンバーに加え、AIを活用したテスト自動化ツールを使う――Gartner
「AIは開発者のコード生成をどう変えるのか」「AIベースのツールは開発チームのテストをどう変えるのか」。Gartner バイスプレジデント アナリストのマーク・ドライバー氏が行った講演の内容をダイジェストでお届けする。 - Microsoft、安全で高効率のプログラミング言語として「Rust」を高く評価
Microsoft Security Response Center(MSRC)は、ソフトウェアのセキュリティ確保と効率性の両方の要件を満たす最も有望なシステムプログラミング言語の一つとして、「Rust」を高く評価した。メモリ破壊バグをそもそも作り込まないことでセキュリティを確保できるという。 - ツールを通じてDevOpsにセキュリティを統合する手助けを――日本シノプシス
@ITは2018年12月14日、「@IT ソフトウェア品質向上セミナー」を開催した。本稿では日本シノプシスの講演「DevOpsにおける品質とセキュリティテスト〜Built-in Security into DevOps ToolChain」の模様をお届けする。