web-dev-qa-db-ja.com

「長い」コードファイルをナビゲートおよび変更するためのプラクティス?

多くの場合、非常に長いコードファイルを処理する必要があります。最小で約5画面ページです。ほとんどの場合、何かがあります上/下に向かって私が下/上にいるときに参照する必要があります(それぞれ)。ファイルパーツ間を絶えず前後にスクロールするのは、巨大なオーバーヘッドです。

ファイル全体のすべてを覚えておくのは認知的過負荷であり、ファイルの一部を参照できるようにする必要があります。

はい、Eclipse/NetBeansなどの一部のエディタのOutlineビューは役立ちますが、そのパーサーによって認識可能な部分に対してのみ適切に機能する場合があります。アウトラインビューが表示されない場合があります。クロージャ/名前空間関数などを使用してCoffeeScriptまたはJavaScriptでコーディングする場合。フォールバックは、手動のスクロールオーバーヘッドです。

では、プログラマーとして、このばかげたオーバーヘッドを減らすために採用できるテクニック/プラクティスのいくつかは何ですか?

はい、できますshortenファイルですが、特にBackbone.jsなどのjavascriptライブラリは、Javaのようなものがないために複数のファイルに分割できないため、すべて1つのファイルになっています- パッケージ。それで、ファイルを分割できないという制約とアウトラインビューが機能しないという制約の下で、長いソースファイルをナビゲートするために使用できるテクニックのいくつかは何ですか?私はEclipse/NetbeansとAptana、そして時にはViによく取り組んでいます(ただし、実稼働環境ではめったにありません)。ウィンドウを2つに分割して、片側に同じファイルを表示し、反対側にコードを表示できると便利です。 Eclipse/NB/AptanaIMOでは実行できません。 Vi、はい、でもいつも使うことはできません。

PS:今のところ、ファイルを複数のエディターに分割しています。 EclipseとAptana。一箇所に置いておくのもいいのですが、それが一番いいのでしょうか? :)

[〜#〜] update [〜#〜]-Eclipseのようですhasこれを行う方法であり、見つけることができます- ここ

3
PhD

では、プログラマーとして、このばかげたオーバーヘッドを減らすために採用できるテクニック/プラクティスのいくつかは何ですか?

ファイルを分割できないという制約の下で、アウトラインビューが機能しない場合、長いソースファイルをナビゲートするために使用できるテクニックにはどのようなものがありますか?

いくつかの異なるエディターウィンドウ(または異なるエディター)でファイルを開きます-関心のある各セクションを異なるウィンドウに配置します。多くの開発者のように、2つ以上のモニターがある場合は、参照用に各ウィンドウを異なるモニターに配置できます。

Eclipse/NB/Apatanaについてはわかりませんが、Visual Studioには split バーがあります。これにより、ファイルの複数の異なる部分を1つのウィンドウで表示できます。おそらく、選択したエディターにもこの機能があります。

5
Oded

この問題を減らすための最も重要なことは、メソッドに適切な抽象化を提供することです。 Fooが毎回何をするかを調べる必要がある場合は、コードをリファクタリングして、メソッドの名前を変更するか、メソッドを別のメソッドに分割するのが適切な理由です。 (分割は、入力に基づく複雑な制御フローがある場合に役立ちます)

リファクタリングしたくない場合は、通常、Visual Studioで、goto定義とマウスの戻るボタンを使用して、さまざまなポイントに移動します。 IDEで同様のショートカットを使用して、手動であまり見回す必要がないようにすることができます。

1
Guvante

C++コードの各ファイルに100クラスの10klocのサイズのファイルを保持できるようにするルールは次のとおりです。

  1. Emacs + esc-<+ C-sを使用して、ファイルの先頭に移動し、「classMyClass」および「:: mymemberfunction」という検索語でクラスを検索します。検索するクラスまたはメンバー関数の名前を覚えておく必要があります。
  2. メモ帳にはC-fでも同じ機能があります
  3. 他のIDEには、すでに開いている単一のファイルからテキストを検索する機能があります。ファイルの先頭に移動するのは見つけるのがより困難です...
1
tp1

私はObjectPascal/Delphiで開発し、長いファイルのナビゲーションを簡素化するためのアイデア(私はそれを Wident と呼びました)を思いついたとき。基本的には、キャレットで識別子をすばやく双方向に検索することです(Ctrl-Alt- [矢印]を使用しました)。たとえば、Ctrl-Alt-Downを押すと、ツールはキャレット位置でキーワードを検出し、キーワードの次の言及に進みます。ジャンプ後、キャレットは同じ単語の異なる位置にのみ配置されるため、次に押すと次の参照にジャンプします(Ctrl-Altを押したままにして、下キーを繰り返し押します)。この時点では、開始点から遠く離れている可能性がありますが、簡単に開始点に戻ることができます。キャレットはまだ名前になっているので、Ctrl-Alt-Upを2回押すと魔法がかかります。

そして、これはほんの一例です。実際には、現在地を完全に制御しながら、ナビゲーションで新しいディメンションをすばやく作成するようなものです。これが機能するのは、変数、関数、型、およびそれらの参照の名前が、ソフトウェアの各部分を意味的に接続するものだからです。

私はDelphiIDE用に開発されたツールを使用していますが、他のエディターでは、対応する関数に新しいキーを割り当てるだけで同様の機能を実装できます。たとえば、notepad ++では、「Find(Volatile)Next」と「Find(Volatile)Previous」です。

1
Maksee

個人的に私は自分の記憶に頼っています。重要なコードを見ているスクロールバーの位置を覚えています。もちろん、スクロールしておおよその位置に移動することしかできませんが、ほとんどの場合、PgUp/PgDownですぐに移動できます。しばらくすると癖になります。

ファイルのスクロール位置は約4〜5個覚えています。約までのファイルに最適です。 2-3kloc。その後、スクロールバーは最小サイズに達し、精度が低下し始めます。

0
Amol