16

私は、本番環境のコードで、初心者プログラマーがバグ修正/変更要求を行っているときに「コードを変更する」ときに経験する問題を解決することを目的としたソリューションに取り組んでいます。ご存知のように、Eclipse は優れた IDE です。コード補完、Open Declaration、Type Hierarchy、Package Explorer、Navigator、Finding References などの機能は、Textpad のようなものを使用する場合と比較して、問題をより迅速に修正するのに役立ちます。

あなたが初心者の Java プログラマーで、Eclipse IDE を使用している場合、Eclipse IDE のどの領域があまり役に立たなかった/直感的ではなかったと思いますか? あなたがベテランのプログラマーである場合、初心者が解決するためにあなたに期待する一般的な問題は何ですか?

ドメインの専門知識 (ビジネス知識)、インフラ (変更をテストする場所など)、パフォーマンス関連 (Eclipse 検索が遅いなど)、特定の言語のスキル レベル (開発者を初心者と考えてください) に関連する問題は無視してください。 .. 1 つの言語を考える - Java

私は小さなチームでローカル調査を行いました。

  • 実行時に実装が提供されるインターフェイスに記述されたコードを処理するために Eclipse を使用する初心者。「オープン宣言」を行うと、常にインターフェースが表示されます。これは時々混乱を招く可能性があります。
  • EJB の開発中、Eclipse は直感的ではありません。確かに、新しい Bean を作成するには、右クリックして [Bean を作成] を実行するだけでよいことはわかっていますが、一度作成すると、次のステップがどうあるべきかについてのコンテキスト ヘルプは表示されません。たとえば、スタブの生成。
  • エンティティ Bean を使用したデータ ソース マッピングでは、何かを変更すると全体の流れが台無しになり、eclpise は文句やヒントを出しません。
  • Struts を使用するアプリケーションを開発する場合、Eclipse は、struts-config.xml を変更すると特定の Web フローが影響を受けることを通知しません。

この時点で、調査のために意見を収集することに関心がある私には、Eclipse がより多くの「コンテキスト ランタイム ヒント」を使用できるように思えます。

コミュニティにはもっと多くのことを追加できると確信しています... あなたの否定的な経験をもっと追加してください (コード変更の観点から)。

編集: 私の質問は長すぎて混乱していたと思います。私はそれを少し言い換えて、短くするつもりです:

「コードを変更する」(コードの書式設定、インフラ関連のアクティビティ、CVS などとは異なり、リファクタリングのようなことを言います) 間、Eclipse IDE のどの機能が最も気に入らなかった/嫌いでしたか? 以下に例を示します。

  • インターフェイスに記述されたコードを変更する場合: 「オブジェクト インスタンスで Open Declaration /F3 を実行すると、実装が実行時に提供されるときにインターフェイスが表示されます」。
  • EJB を使用してアプリを変更する場合: コンテキスト ヘルプなし
  • MVC (Spring / Struts) を使用してアプリを変更する場合: 変更の影響に関する警告はありません。
4

19 に答える 19

17

Eclipse に欠けているものは次のとおりです。

System Complexity View などのソフトウェアの視覚化[Lanza 2003]

また、Lanza による Class Blueprint [Ducasse 2005]

スクリプトの投稿: Eclipse でのソフトウェアの視覚化: X-Ray は、Java プロジェクトの System Complexity View提供します

ソフトウェアの視覚化

そして、協調フィルタリング「このメソッドを編集する前に他の開発者も編集した」[Zimmermann 2005]

そして、閲覧可能な例のコレクション、およびこれらの例のレベルでのオートコンプリート。つまり、たとえば、あなたの書き込み

ByteBuffer buf = file.

オートコンプリートを押すと、コードベースとインターウェブを検索して、ファイルをバイトバッファに変換し、そこに10〜20行を挿入する例を探します。

  • Parseweb は、指定された入力パラメータ タイプから必要な宛先データ タイプを生成するメソッド呼び出しシーケンスを推奨することで、開発者をサポートします。http://doi.acm.org/10.1145/1453101.1453129
  • Prospector は、指定された入力パラメータ タイプから必要な宛先データ タイプを生成するメソッド呼び出しシーケンスを推奨することで、開発者をサポートします。http://doi.acm.org/10.1145/1064978.1065018
  • Strathcona は、開発中のコード フラグメントのソース コードの例と構造的なコンテキストを提供します。http://lsmr.cpsc.ucalgary.ca/papers/holmes-icse-2005.pdf
  • Rascal は、既存のクラスの分析に基づいて、Java Swing などの一般的なライブラリからオブジェクトのメソッドを呼び出す方法とタイミングを推奨しています。協調フィルタリングを使用します。http://dx.doi.org/10.1007/s10462-005-9012-8

そしてもちろん、単体テストを作成すると、IDE がインターウェブでテストに合格したクラスを検索する機能もあります。はい、これはできます!

  • CodeGenie は、単体テストを作成し、Sourcerer ソース コード検索エンジンを使用して合格クラスを見つけることができる Eclipse プラグインです。http://doi.acm.org/10.1145/1529282.1529384
  • Merobase に基づく CodeConjurer もその機能を提供します。http://dx.doi.org/10.1109/MS.2008.110 を参照してください

このリストは延々と続く可能性があります。より多くの作業の出発点は過去の議事録です

これらはすべて ICSE 会議の傘下にあります。

于 2009-11-27T12:24:01.873 に答える
5

「初心者の問題」私は自分自身を見てきました(私はEclipseをかなり長い間使用していましたが、時々私を驚かせ続けています)、Eclipseを使い始めたばかりの同僚を助けています:

  • それは、最初は非常に威圧的になるほど大きくて複雑です。人々は、最初は netbeans の方が使いやすいと考えているようです。同僚の 1 人が VI の編集者と一緒に神を求めて避難しました...
  • プラグインのインストールは難しい場合があります (サイト URL の検索、プラグインの認識、[ヘルプ] メニューの下に「インストール」+「更新」があるのはなぜですか?)
  • Eclipse 3.5/Galileo では、更新はまだ遅い (ただし、以前よりはかなり改善されている)。名前だけでは、インストールするプラグインを理解するのが難しい場合があります。
  • Mac 以外のプラットフォーム - [ウィンドウ] メニューの設定は非論理的ですか?
  • プロジェクトのクラスパスをきれいに設定する方法を理解する。適切なプロジェクト JDK バージョンの設定。
  • ant/maven ビルド ツールのクラスパスと eclipse のクラスパスとの間の相互作用の欠如または予期しない相互作用 (クラスパスが共有されている場合、ant/maven クリーンにより Eclipse コンパイラ エラーが発生するなど)。
  • ビューと (多数の) パースペクティブは、最初は混乱/圧倒されます。どのような場合に役立ちますか? ビューを目的の場所にドラッグする方法、または閉じたビューを復元する方法は?
  • 一部の JDK/Eclipse バージョンの組み合わせでは、デフォルトで利用可能なよりも多くの PermGen スペースが必要であり、診断に時間がかかりました。
于 2009-11-24T23:50:47.307 に答える
5

私にとって、Eclipse の初心者の問題のほとんどは、Eclipse の強み、構成可能性、およびプラグイン構造の 1 つに起因しています。

Eclipse でプロパティを変更する必要がある場合、どこを変更するかを考えるのにいつも数分かかるようです。例: タブの代わりに 4 つのスペースを挿入するように Java エディターを変更します。プロパティの検索バーはいつでも大歓迎です :-)

それと、一部のプラグインのドキュメントがないことで、プロジェクトをセットアップするときはいつも楽しくなります。

編集: ctrl-T を使用して、インターフェイスを実装するクラスをいつでも表示できます。

私が付け加えたいことの 1 つは、複雑なプロジェクトがある場合、Refresh & Project->Rebuild All *a lot を使用する傾向があるということです。また、TortoiseSVN を使用して Eclipse の外部で操作を行います。多くの場合、これの方が簡単だからです (たとえば、いくつかのリファクタリング) ただし、Eclipse の外部でプロジェクトを変更する場合は、*常に Eclipse を終了し、再起動時に完全な更新とビルドを行います。そうしないと、Eclipse が非常に混乱することがあります。

于 2009-11-20T17:38:13.380 に答える
4

私が直面した (そして今も直面している) Eclipse の最大の問題は、Eclipse が最新の Java 開発を取り巻く標準技術を特に認識していないことだと思います。アプリケーションを開発している場合、次のものが含まれる場合があります。

  • メイヴン
  • JSF/ストラット 2
  • 転覆
  • JUnit

Eclipse はこれらのテクノロジーをより多くの認識レベルで処理していると思います: (したがって、JUnit は問題なく、すぐに使用できます。Subversion には Subclipse が必要で、CVS サポートよりも少し複雑です。JSF には WTP ツールをインストールする必要があります。Maven ...最近劇的に改善されていない限り、M2Eclipse を信頼するよりも、おそらく独自の外部ツール コマンドをセットアップする方がよいでしょう; そして、Spring は、あなたが言うように、メソッドを ctrl を押しながらクリックしてみてください。実装は Spring 構成ファイルの背後に隠されているため、ほぼ確実にインターフェースを取得します)。

そのすべてを一緒にプレイしてチェックアウト/コンパイルし、後でコンパイル/テストを実行/チェックインするのは難しいことです。コードの変更自体はおそらく簡単です:)

于 2009-11-26T10:14:49.570 に答える
3

私にとって、Eclipse を効果的に使用することを学ぶ上での最大のハードルは、クラスパスを設定する場所と、開発のさまざまな段階 (コンパイル、ビルド、テスト) でクラスパスに何が含まれているかを正確に把握する方法を理解することでした。コンパイル時、デバッグ構成、実行構成のクラスパスの違いについて、私は長い間混乱していました。次に、ant をミックスに投入すると (実行構成が自動的に作成されます)、初心者にとってはさらに混乱します。

于 2009-11-20T15:59:01.470 に答える
2

私の知る限り、基本的な不足している機能は次のとおりです。

  • 最初の'{'が表示されていない場所で、最後の'}'にいるときに最初の'{'を表示します
  • エディターをパッケージエクスプローラーと自動的に同期します
  • キーボードを使用して別のビュー(パッケージエクスプローラー、アウトラインなど)に移動します
  • ダイアログを開かないインライン検索。
  • キーボードで次のエラーの場所に移動
  • キーボードで次/前の構造に移動
  • 一般的に安定性が向上します。

これらの機能はIntelliJでうまく機能します。特に#1と#5は本当に便利です。

于 2009-11-29T05:13:16.357 に答える
2

私は最近、日食の初心者で、主にAndroidとBlackBerryの仕事をしていました。そして、今日まで私が理解できないことの1つは、膨大な数のオプションと設定、およびそれらが見つかるさまざまな場所です。たとえば、プラグイン(BlackBerryプラグインなど)がインストールされている場合、その設定は一般的な設定で見つかる可能性があります。またはBlackBerry設定またはプロジェクト設定。

それは常に狩りです。

于 2009-11-29T05:22:54.350 に答える
2

ワンクリックでプロジェクトを完了できるように、その場でコードを生成するマインドリーダー。

于 2009-11-27T18:39:28.693 に答える
2

Visual Studio は簡単に理解でき、各ボタンを少なくとも 1 回はクリックしてみて、全体の動作を理解しました。それは最高レベルの単一の設計チームによって考え出され、すべてが多かれ少なかれ上から下まで標準に従っています。

それから、エクリプスで遊んでいます。技術的には、せいぜいジャンキーです。設定ダイアログを見てください。探しているものと、その機能に取り組んでいる開発者がそれを何と呼ぶことにしたかを正確に知っていない限り、それは圧倒的な難破です.

Eclipse の構成可能性は、構成方法を既に知っているという事実に依存しています。そこの学習曲線はひどいものであり、唯一の救いは、ほとんどのデフォルトが最初から問題ないということです.

于 2009-11-29T04:41:38.320 に答える
2

初心者として、私は EJB や Struts のことはしませんでした。または、データ ソース マッピングですら。そのため、質問のタイトルは少し誤解を招く可能性があると思います。

デバッグなどでライブラリコードをヒットしたときに、ライブラリコードを「見る」ために JadClipse のようなものを組み込んでおけばよかったと思います。しかし、これは「再構成されたコード」であり、ハッキングされることを意図していないことを非常に明確にする必要があります.

次に、Shift-F2 キーを押すと、対象のクラス/メソッドの API ドキュメントが表示されることを初心者にもっと意識させる必要があります。私は、コード補完だけで API を探索する初心者 Java プログラマーをあまりにも多く知っています。ライブラリの作成者が提供する多くの貴重なヒントが欠けています。

于 2009-11-20T15:47:28.967 に答える
1
  • シンプルさ
  • 透明度
  • 一貫性

もっと詳しく書くかもしれませんが、日食は太りすぎで、使いやすさではなく、機能を重視しすぎていると思います。IMO、これは初心者だけでなく専門家にも関係します。

于 2009-11-27T11:43:15.607 に答える
1

Eclipse には、Swing コンポーネント用のビジュアル デザイナーがありません。

それを Visual Studio と比較してください。

  • 「新しいフォーム」をクリック
  • ボタンとテキスト ボックスをフォームにドラッグし、移動し、ラベルを追加します。
  • ボタンをダブルクリックし、コードを追加します
  • 完了、1 つの簡単なアプリケーション、上司に提示、支払い/昇進/コーヒー ブレークを受け取る

Eclipse では、代わりに Netbeans を使用する (つまり、Eclipse ではない) か、IBM の SWT を使用するか、Swing フォームを手動でコーディングする必要があります。

Eclipse に Swing フォーム用の優れた wysiwyg フォーム デザイナがあれば、とてもいいと思います。

于 2009-11-30T06:42:30.110 に答える
1

VCS 統合 - 通常、開発者は、変更のマージ、作業コピーの同期の維持、競合の解決なども初めてです。多くの場合、Eclipse で同じことを達成する方法がいくつかあり、これが混乱を引き起こすのを何度か見てきました (実際、経験豊富な開発者にもこれを見てきました。彼らは Subversion を知っていますが、Eclipse を知りません。 ' 基礎となるリポジトリ操作)。

于 2009-11-20T16:29:19.807 に答える
1

初心者向けのすべての IDE の問題は、ツール チェーンから切り離されていることだと思います。つまり、コンパイラがソースを取得し、それをバイトコードにコンパイルしてから、正しく構成されたクラスパスを持つ VM を使用して実行する方法です。

開発者として、私はこれに対処する必要がないという事実を気に入っています-そして、より複雑なビルド構成に関して自分がやりたいことができないことに気付いたことは一度もありません-しかし、それを押したときに何が起こっているのかを初心者が理解することは非常に重要です.無視される再生ボタン。

于 2009-11-20T16:30:16.107 に答える
1

私が最初にEclipseを使用しようとしたとき、私はそれが複雑であることを絶対に嫌っていました..作業を開始する前に、たくさんのことをしなければなりませんでした. さらに、チェックするオプションがたくさんあり、各ボタンが何をするのかを常に自己説明しているわけではありません。

代わりに、netbeans を使い始めました。より直感的で扱いやすくなりました。そこにあるGUIを確認してください..多くのボタンはなく、ほとんどの場合、Javaの手がかりがなくてもボタンが何をするかを知っています(当時のように)。

私がEclipseに戻ったとき(NetBeansでサポートされていない機能があるため)、Eclipseでの作業がはるかに簡単に思えました。そのため、GUI の一部が直感的ではない方法で追加される可能性があり、初心者は間違いなく苦労するでしょう。

于 2009-11-22T12:35:13.917 に答える
0

androidSDKの統合はジャンクでいっぱいです。xmlレイアウトが正しくレンダリングされません。コード補完はうまく機能しません。IBMは確実にジャンクを修正する必要があります。

于 2010-08-20T08:38:16.177 に答える
0

Eclipse には Maven Embedded が標準ディストリビューションにありません。Maven は、すべてのユーザーがプログラムにすべての jar を取得し、ライブラリ管理を改善するのに役立ちます。Netbeans にはすでにこのツールがあります。また、Eclipse は、maven を使用して hibernate 、 spring 、 xfire 、および tomcat をデプロイするための統合ツールを欠いています。

このサイトをチェックしてください http://maven.apache.org/

于 2009-11-30T07:46:08.283 に答える
0

Eclipse に関する他のすべての問題は、1 つを除いて既に言及されています。彼らの目標は、「Java は遅い」人々を証明することでしたか? これは「Eclipseがすべてを行う」に関連していると思いますが、何かをクリックするたびに遅れるので、使用をやめました。タブを変更しますか?遅れ。設定を開きますか?遅れ。環境設定のタブを変更しますか? 遅れ。32 MB のメモリで Photoshop を使用するようなものです。

ああ、それは信じられないほど醜いです。本当の GTK+ 統合で入手できたらいいのにと思います。

于 2009-11-30T07:53:43.280 に答える
0

もう 1 つの紛らわしい部分は、Web 開発用に別のバージョンを使用する必要があることです。まあ、私はこれがまったく好きではありませんでした.

于 2009-11-20T17:50:43.490 に答える