IDEAセミナーに参加しました。学びがあったので、振り返りを兼ねてメモしておきます。設定やショートカットキーはMac環境です。以下のような説明がありました。必要な機能がプラグインを入れなくても、標準で対応。JRebelクラスの動的リロードができるここから費用対効果を計算できる必要な設定ここの他に必要な設定は以下の通り。Macの設定システム環境設定→キーボードの設定。U.S.キーボードを追加するこの設定をしておかないと、ショートカットキーが重複したときに回避できない。ショートカットが正常に動作しない場合は、日本語入力から英字入力に切り替えればよい。Spaceが重複しているため、前の入力ソースを選択のチェックを外して無効化する。Aが重複しているため、ターミナルのmanページインデックスで検索のチェックを外して無効化する。ファンクションキー不要の設定を追加するファンクションキーは使うことが多いので、F1、F2などのキーを標準のファンクションキーとして使用にチェックを入れておく。演習に使用したソースコードはここ。8でないと動作しない模様。以下の項目は今回の内容に含まれないが、重要とのこと。検索機能ファイル名やクラス名は柔軟にマッチする。ルールは例えばFizzBuzzServletを検索する際は以下のような動作となる。fbsはマッチする(大文字だけの羅列)fizbsはマッチする(大文字から始まる部分部分の文字列の組み合わせ)ervletはマッチする(部分)fiervletはマッチしない。IntelliJではポップアップした箇所でタイプすると検索ができるとのこと。E)でタイプすると、以下のように検索が実行される。Completion変数や定数などの末尾にを付けて補完しようとすると、特殊な補完を行うことができる。以下のような補完が可能。文字列リテラルの末尾に.varを付けると、その定数を変数宣言する補完候補が表示されるboolean型となる値や式の末尾に.ifを付けると、if文に変更する補完候補が表示される自分で設定を追加することもできる。テストを書く用途として、「.trueや.falseを付けるとbooleanのassertEquals()に補完される」ように設定をカスタマイズするのがオススメらしい。Enterを押すと、空気を読んでステートメントを完結してくれる。Enter)からブレークポイントを編集できる。Program:実行再開。参考:公式リファレンスhttps://www.jetbrains.com/help/idea/2019.1/debug-tool-window.html#steptoolbarhttps://www.jetbrains.com/help/idea/2019.1/stepping-through-the-program.html#tips-tricks条件付きブレークポイントConditionを指定すると条件付きブレークポイントになる。50の時だけ止める、といった処理が可能。logこれにチェックを入れると変数の内容が標準出力に出力されるようになる。コード内にSystem.out.printlnを埋め込む必要がなくなり、効率的になる。変数値の強制上書きブレークポイントで変数を強制的に書き換え、起きづらい状況を強制的に再現可能。Value(ショートカットはF2)を実行すると、自由に書き換えられる。Sourceを以下のような設定で追加するデータが見られるようになる直接編集もできるが、すぐにはコミットされない。Enterを押すとコミット。Deckにてスライドを公開されているとのことで、以下の通り。Brackets:自動的にカッコの対応関係を色付けする生産性低下プラグインについては割愛。R:アプリケーションの実行。検索は柔軟にマッチする。Tab:タブ切り替え。Dで一文字削除ができないので調べてみたら、デバッグにアサインされている模様。使っていたのでこれはちょっと残念。IDEAを使うことになるので、個人的に参加してみました。個人で支払うにはちょっと負担が大きい(2時間程度の講座で8000円程度)ですが、内容は実践的で非常に満足でした。便利な機能やショートカットを知ることができましたし、その場で質問やトラブルシューティングも対応していただけたので、書籍を片手にやるよりもストレスフリーで大きく時間が短縮できたと思います。Aでなんでも検索できることは知っていたのですが、ポップアップの中身なども検索できるのはよく考えられていると思いました。Completionはなかなか衝撃的だったので、積極的に使っていきたいと思います。これらは教えてもらわないと気付きづらい機能なので大きな収穫でした。デバッガは、そもそも基本的な使い方は分かっていながらも、今まであまり使わずに来てしまったことを反省。条件付きブレークポイント、標準出力へのロギング、変数値の強制上書き、いずれも有用なので今後活用していきます。Bracketsを特に活用していきたいと思います。Eclipseからショートカットが大きく変わるのが悩みでしたが、前者のプラグインを使えば習得も早くなりそうです。あとはJavaでホットリロードできる機能欲しいなぁと思っていたのですが、JRebelという存在は知りませんでした。Restartを使ってましたが、(予算があれば)JRebelのほうが便利そうです。IDEAは気になりつつもいろんな事情で手が出せていなかったのですが、開発環境の進歩を大きく実感しました。最近は内製に切り替える企業が増えていますが、こういった開発環境によりその機運がどんどん高まっているなーと感じます。今回学んだ内容を使いこなし、その後は今回のセミナーで扱われなかった内容も学んでいきたいと思います。