最新のIDEには、コードの記述、リファクタリング、検索を支援するための多くのトリックがあります。これらはすべて非常に役立ちますが、実際に「魔法」のように見えることはめったになく、「わあ!どうやってそれを見つけたの?」
初めて見たときに印象に残った印象的なIDEコードオートメーション(またはその他の)機能に名前を付けていただけますか?
最新のIDEには、コードの記述、リファクタリング、検索を支援するための多くのトリックがあります。これらはすべて非常に役立ちますが、実際に「魔法」のように見えることはめったになく、「わあ!どうやってそれを見つけたの?」
初めて見たときに印象に残った印象的なIDEコードオートメーション(またはその他の)機能に名前を付けていただけますか?
回答:
後方デバッグ
Visual Studio 2010(および2012年)では、IntelliTraceを使用して後方にデバッグできます。
F10を1回押しすぎた瞬間を再び生き返らなければならず、デバッグを再開しなければなりません。
コード補完
あなたが見たのはテキストエディタだけであるとき、これは印象的です
ReSharperの名前が付けられた変数が欲しいものを推測する能力は、私を驚かせ続けています。これは非常に簡単な例ですが、アイデアは得られます。
foreach(var matche in regex.Matches(str))
。また、a ではなくa matche
として設定します。あまり有用ではありません。object
Match
MatchCollection
ていないコレクションだからです。適切なコレクションのために、var
うまく機能します。(私はまだそれが好きではない)
コードバブル。http://www.andrewbragdon.com/codebubbles_site.asp
コードを変更するためのツールとしてVisual StudioとEclipseが大好きですが、Code Bubblesはコードをナビゲートして表示できることに本当に興奮しています。残念ながら、公開されていない=-{
私が聞いた中で最も印象的なプログラミング環境は、Generaオペレーティングシステムです。
ウィンドウシステム内の任意のウィジェットをクリックすると、ソースコードの完全な読み出しとアイテムのドキュメントを取得できます。動的プログラミング言語(Lisp)であるため、ウィジェットのソースをその場で編集できます。
Lisp Machineの世界のZMACSは、Emacsより優れたエディターであると言われています。Emacsは、ピアのないエディター環境です。
プログラムの構造を視覚的に示す(プログラム/関数/ルーチン/ ...)
ReSharperのリファクタリング機能。完全な開示では、Eclipseを使用したJavaにはしばらくの間このタイプの機能があったと思いますが、私はJavaを定期的に使用していません。
ReSharperがVisual Studioに追加する機能の差は非常に大きいため、信じられません。広告のように聞こえるかもしれませんが、ReSharperを使用せずにVisual Studioのストックインストールに戻ることはできないと思います。
より一般的には、コードのセマンティックな理解は、いつでも普通の古いテキストエディタのズボンを打ち負かすでしょう。これは、「変数の使用法を見つける」や「インライン関数」、「慣用的なパターンを使用する機会」などにつながります。
Smalltalkのデバッガー:
Smalltalkでは、ほとんどの時間をデバッガ内からコードを記述するのに費やすことは完全に普通です。
(VA4JはVisual Age for Smalltalkで作成されているため、メソッドを実行し、何か間違っているのを見つけて変更し、Visual Age for Javaでアプリケーションを再起動せずにメソッドを再実行することで吹き飛ばされたことを覚えています)
Smalltalkのメソッドファインダー
Method Finderを使用すると、「これらのパラメーターを取得してこの結果を取得するために、どのメッセージを送信できますか?」聞いてみ'abc'. 'def'. 'abcdeb'.
てください'abc' , 'def' --> 'abcdef'
。聞いてみ#(0 1 2 3)
てください#(0 1 2 3) sum --> 6
。*メッセージのすべて(*)の送信者、またはそのメッセージを実装するすべてのオブジェクトを見つけるための、すべての送信者、実装者。
(*)実行時にメッセージ名を作成するようなことをする場合を除いて:self perform: (#foo, #bar)
自分にメッセージを送信する#foobar
-この場合、あなたは何をしているのかを知っており、自分のペタードで自分を持ち上げる可能性を気にしません。
Whyline for Javaは、見たときに本当に感銘を受けました。これは、テキストだけでなくグラフィックスなど、プログラムの出力に関する質問をすることができる動的分析ツールです。たとえば、「なぜその行は赤だったのか」と尋ねることができます。または「なぜpaintメソッドが呼び出されなかったのですか?」
プログラムをインストルメントし、実行を記録することで機能します。たとえば、再現可能なバグがあるとします。Whylineでプログラムをインストルメントし、Whylineでプログラムを実行してバグを再現します。その後、プログラムを終了すると、Whylineを使用して実行履歴を検査できます。
この録音と再生は新しいものではありませんが、Whylineの実装方法は非常に洗練されています。特定のイベントに応じて履歴を表示できます(たとえば、マウスドラッグイベントのみ、またはキーダウンイベントのみに焦点を合わせます)。また、出力をプログラムのどの部分で印刷したかと関連付けます。そのため、出力からコードにナビゲートできます。
動作させるために、プログラムのスライスを使用するため、実際に関連するコードの部分に集中できます。CMUは現在、特許を取得しており、その計画が何であるかはわかりませんが、生産段階でもっと多くのことがわかることを願っています。それは記憶を食うものですが、それはおそらくプロトタイプであり、改善できるからです。
オンラインでデモを見る必要がありますが、完全な体験を得るために自分で試してみる必要もあります。どちらかといえば、オンラインデモがそのアイデアを裏付けています。
私が見た中で最も印象的なIDE機能はSyncEditであり、これはDelphiでのみ利用可能です。
IDEで見たいのは次の機能です。
sheet[A3]
コード(およびセル値を読み取ることができるExcelスプレッドシートなど)と図面内のテーブルを埋め込み、変数と同様にアクセスできます。if
条件を表のように表示します(リンクを引き続き検索します)。動的言語の型チェック
コードが「メタ」になりすぎない限り、RubyまたはPython用のIDEは次のバックグラウンドタスクを実行できるはずです。
これを行うIDEはまだ見ていません。
Vs2010のalt click multi line機能の大ファンです。新しいバージョンについて私が見つけた最高のものです。
EclipseのAuto Buildは、私が最も賞賛する機能です。...7年前。今私はそれを当たり前だと思っています。
DevExpressのCodeRushなどのコードテンプレートと拡張。C#ではDependencyProperty
、構文は冗長になる可能性があるため、aを作成するのが大変です。ただし、「dp」と入力するだけで、タイプ、名前、デフォルト値を入力するスニペットに似たものが表示されます。必要な「使用」ステートメントを追加し、メモリが提供される場合はプロジェクト参照を追加します。
利点は、使用するINotifyPropertyChanged
プロパティの単純な実装など、テンプレートにプロパティの名前とタイプを単純に与える(別のエキスパンダーがそれを処理しなかった場合)、頻繁に再利用または書き換えるコード用に独自のテンプレートを作成することです、バッキング変数の作成など、残りを処理します。
Pexは、かなりクールな自動化された単体テストの生成を行います。コードをトレースし、分岐点を決定し、条件付きソルバーを使用してすべての可能な分岐にヒットする入力を生成し、結果を繰り返し可能な単体テストとしてエクスポートします。複雑な文字列処理コードに屈辱を与える可能性があります。
IntelliJ IdeaによるJPAのサポート
DatabaseEntityがあることを述べてください:
@Entity
public class Customer{
[...]
String lasName;
[...]
今、あなたはいくつかのJPAクエリを持っています
Query q = "selecct s from Customer c where c.lasName=:lastName"
しばらくしてから、エンティティ内でタイプミスをして、lasnameをlastNameにリファクタリングすることにしました。
そのIDEはJPAクエリもリファクタリングします。