Sourcetrail:他人のコードを理解し、頭を撃たないためのツール





残念ながら、最近、素因数と三目並べのプログラムをもう一度確認しましたが、コメントやドキュメントはまったくありません。

--Donald E. Knuth



すべてのプログラマーは、この関数またはそのクラスが何のためにあるのか、そしてそれが一般的にどのように相互接続されているのかを知らずに、他の誰かのコードを読まなければならない状況に繰り返し遭遇しました。



これは、書き込み専用YPで記述された独自のプログラムやスクリプトでも発生します。



そのようなコードを扱う才能を持っている開発者は、チームで高く評価されています。



ソースコードに次のような奇跡的な迷路があります。



  • 一貫性のない開発スタイル
  • 過度に複雑で紛らわしいプログラム構造
  • 明らかな論理的エラーまたは脱落
  • 忘れる


ライブワーキングコードと一部の教育および教育コードには大きな違いがあることを理解する必要があります。最初のケースでは、開発プロセスは、さまざまな技術的、商業的、さらには国内的な理由によって影響を受ける可能性があります。彼らの影響下で、最も厳格でエレガントなソフトウェア設計でさえ、スパゲッティに変わる可能性があります。この変態の主な理由は、多くのプログラマーによく知られています。



  • 動作するプログラムの最初の基本的な要件は、今ここで、多くの場合、さまざまなデバイスやプラットフォームで実行する必要があるということです。ドメインポリシーによって課せられた制限のために奇妙な回避策を考え出す必要がある場合、これらのソリューションは間違いなく発明され、実装されます。
  • AppleStoreのソフトウェア開発、Wireguardの例はかなり明らかになっています。
  • . , .
  • , .
  • PHP, JavaScript.




イチジク。1お母さんの搾取



ソースコード解釈学には、特別なスキルとツールが必要です。この種のスキルには経験が必要ですが、言語の構文上の特徴と付属のドキュメントを完全に理解していると、実務経験が不足している人にとっても簡単になります。もう1つのそのような支援は、専用のソースコード調査ツールです。



救助へのソーストレイル



Sourcetrailは、高度なインタラクティブエクスプローラーおよびパーサーであり、構造データにインデックスを付けて収集することにより、ソースコードをアクティブに探索できます。アプリケーションインターフェイスには、3つの主要部分が含まれています。





イチジク。2Sourcetrailインターフェース



  • ソースコード内のインデックス付きシンボルのクイック検索と選択。オートコンプリートウィンドウは、コードベース全体で一致するすべての結果の概要を即座に提供します。あいまい検索がサポートされています。
  • グラフには、ソースコードの構造が表示されます。現在選択されているシンボルに焦点が当てられ、図は他のシンボルへのインバウンドとアウトバウンドの依存関係を明示的に示しています。
  • リストのビューコードには、現在選択されている文字のすべてのソースコードが表示されます。


起動時に、Sourcetrailはプロジェクトを選択するように要求します。セットには、サポートされているすべての言語の教育およびトレーニングコースがいくつか含まれています。プロジェクトを選択した後、Sourcetrailはソースコードにインデックスを付け、プロジェクトでの作業を開始できます。





イチジク。3プロジェクトの選択



構造とクラスは灰色で表示されます。パッケージ、モジュール、名前空間- ピンクがかった; 関数とメソッドは 黄色で、変数とスコープは青色で示されてい ます現在、次のプログラミング言語がサポートされています:



  • C / C ++;
  • Java;
  • Python。




イチジク。4メソッド実行



tictactoe_cppプロジェクトを選択してから、Runメソッドを選択しました。グラフを使用すると、メイン関数からRunが1回呼び出されていることがはっきりとわかります。グラフの頂点に加えて、エッジにも有用なセマンティックロードがあります。



  • ファイルからのテキストを含める:緑→緑。
  • タイプを使用します:黄色→灰色。
  • 可変使用法:黄色→青。
  • 関数呼び出し:黄色→黄色。




図5グラフのエッジの指定



さらに、オーバーライド(左)とメソッド継承(右)の定義があります。





図6メソッドをオーバーライドおよび継承するためのエッジの表記



Sourcetrailは、あらゆる方法でインタラクティブな動作を実装するよう努めています。コードビューでグラフオブジェクトを選択すると、対応するシンボルが自動的に強調表示されます。逆もまた真であり、コード表現でシンボルを選択すると、グラフが自動的に再構成されます。グラフで選択した項目がすぐに中央に移動し、コードペインのコンテンツも更新されます。グラフオブジェクトの上にカーソルを置くと、対応するシンボルが長方形のフレームで強調表示されます。繰り返しますが、コードペインの文字にカーソルを合わせると逆になります。 左上隅のトレイルコントロール



を使用して、グラフ作成の詳細レベルと深さを設定でき ます。





イチジク。 7つのグラフ表示設定



このクラスのアプリケーションの興味深いユーザーインターフェイスの概念は、Webブラウザスタイルのナビゲーションです。図では。 2、戻る進むホームボタンが表示されます 。私は言わなければなりません-それは本当に便利です。 [更新]ボタン は、予想どおりグラフを再描画しませんが、ソースコードファイルのインデックスを再作成することをお勧めします。 [ブックマーク]ボタンを 使用すると、お気に入りに記号を追加できます。 トレイルコントロールの



1つ カスタムトレイルです、一番上に。適切なフォームを呼び出すことにより、必要な複合グラフ、詳細、開始ノードとターゲットノード、および構築のタイプを選択できます。





イチジク。8カスタムトレイルを使用してグラフを作成します。



Sourcetrailのインストール



Sourcetrailは、Windows、macOS、およびLinuxで使用できます。Windowsユーザーは通常どおりsetup.exeを実行します。macOSの場合、インストールは標準のオペレーティングシステムツールを使用して行われます。Linuxの場合、2つのオプションがあります。



  1. .tar.gzパッケージをダウンロードしてから、Sourcetrail.shコマンドを実行します。
  2. AppImageをロードし、chmod + xファイル名で実行権限を付与してから、実行します。


設定は以下の場所に保存されます。



  • ウィンドウズ
  • macOS〜 /ライブラリ/アプリケーションサポート/ソーストレイル;
  • Linux〜 / .config / sourcetrail。


Sourcetrailの現在のバージョンでは、Javaプロジェクトにインデックスを付けるためにJava8ランタイムをインストールする必要があります。Sourcetrailバイナリアーキテクチャは、JREのアーキテクチャと一致する必要があります。Sourcetrail 32ビットには32ビットJREが必要であり、64ビットバージョンのアプリケーションにはそれぞれ64ビットJREが必要です。



サードパーティのIDEとエディターのサポート



Sourcetrailは、さまざまなIDEおよびテキストエディタとの統合をサポートしています。すべてのプラグインはオープンソースであり、開発はgithubで実行され ます。



  • 原子;
  • CLion;
  • Eclipse;
  • Emacs;
  • IntelliJ IDEA;
  • Qtクリエーター;
  • 崇高なテキスト;
  • Vim;
  • VisualStudioCode。


CLI機能



コマンドラインを使用して、Sourcetrailでプロジェクトにインデックスを付けたりカスタマイズしたりできます。



sourcetrail index [options...] projectfile

      
      





可能なオプション:



--help;
--version;
--project-file #  .srctrlprj .

      
      





プロジェクトの設定:



sourcetrail config [options...]
--help;
--indexer-threads #  ;
--use-processes #,    C/C++   ;
--logging-enabled #/    /  ;
--verbose-indexer-logging-enabled #  ,  ;
--jvm-path;
--jvm-max-memory;
--maven-path #   maven;
--jre-system-library-paths #  jar   JRE;
--global-header-search-paths;
--global-framework-search-paths;
--show #   ;

      
      





概要



開発者は、新しいコードを書くのではなく、ほとんどの時間を既存のコードの意味を理解することに費やしていると考えられています。Sourcetrailなどのソースコード分析ツールは、品質を犠牲にすることなく、バランスを大幅に傾けて後者を優先することができます。よく考えられた使い慣れた動的ユーザーインターフェイスに焦点を当てていることに注意してください。これは、邪魔にならないアシスタントの役割を完全に果たし、日常の手順にかかる時間を大幅に節約します。






All Articles