期待度MAXな次世代のC#開発環境 Rider を使ってみた。

with コメントはまだありません

C#開発を爆速にするResharperの開発元であるJetBrainsがC#向けのIDEを開発している。その名も『Rider』だ。JetBrains製IDEのベース技術であるIntelliJ Platformで作られている。(余談だけれど、Android Studioなんかもこの技術を元にして作られたIntellij IDEAをベースにしている)

Resharperで培われたノウハウがつめ込まれているだろうからRiderには期待してもしきれない。お笑いだったらどんなネタでも滑るぐらいハードルが上がっている。

現在、JetBrainsはRiderのプロトタイプ(Rider EAP)を公開している。このRider EAPを使ってみたので紹介する。

 

Riderって?

rider-top.png.formatted

おさらいしておくと、RiderはJetBrainsが開発中のC#用統合開発環境だ。Visual StudioでのC#開発をあの手この手でサポートしてくれるResharperをJetBrainsは開発しており、このRiderもその流れを受け継いでいる。

とはいえWindowsでしか使えないというわけではない。RiderはクロスプラットフォームIDEとして作られており、WindowsをはじめMacやLinuxにも対応している。あのResharperの爆速C#開発がWindows以外でも味わえるということで興奮を禁じ得ない。

 

Hello Rider

さっそくRiderを立ちあげてみる。初回起動時のみ、このようなキーバインドを選択させられる。それぞれ大変役立つ機能だけれど、Riderの便利機能はこれだけではない。もちろん後でキーバインドを変更できる。

rider-keymap.png.formatted

 

キーバインドを選び他の設定を進めていくと、プロジェクトの立ちあげ方法の選択画面に入った。ご覧のとおりGitをはじめとする多くのバージョン管理システムからソースを落とせるようになっている。

select-version-control-service.png.formatted

 

usingの自動追加

Riderの便利機能は基本的にResharperを受け継いでいる。usingを自動で追加してくれる機能もそうだ。この機能があれば、「あれ?あのクラスってどの名前空間だったっけ?」みたいなことが無くなる。

using-automatic-insertion
お分かりいただけただろうか?System.LinqをusingしていないのにAnyがインテリセンス表示されている。

 

Find Usages

クラスやメソッド・プロパティなどが使用されている箇所を洗い出してくれる機能がFind Usagesだ。リファクタリングで役立つのはもちろん、普段の開発でも大いに力になる。

find-usage

 

Go To Everything

プロジェクトの規模がある程度大きくなると「あのクラスどこだったっけか〜?」となってしまう。人間の脳の限界である。Go To Everythingという機能を使えば、クラスはもちろんファイルや定数・Enumのメンバーに至るまで、文字通り『すべて』にジャンプできる。

go-to-class
クラス名をタイプしてジャンプ。

 

プロパティにもジャンプ。
プロパティにもジャンプ。

 

go-to-class-member
定数にだってジャンプできる。

 

go-to-file
ファイルだってお任せあれ。

 

go-to-enum-member
enumのメンバーにだってどこからでもジャンプできる。

 

Go To Declaration

これは名前の通り定義にジャンプする機能だ。メソッドやプロパティなどの定義元にジャンプできる。試しに、PersonというクラスのAgeの定義を見てみよう。

go-to-declaration

定義が手元にない場合でも、Riderはデコンパイラを積んでいるので、定義が存在するアセンブリを解析して表示してくれる。サラっと書いてしまうと何のことはないけれど、これが結構役に立つんだな。

 

継承に関する機能

Riderは継承にもバッチリ対応している。あるクラスがAbstractクラスやInterfaceを継承した時、継承しきれていないメンバーを自動で作成してくれる機能や、継承元・継承先にジャンプする機能を取り揃えている。今、継承元クラスとしてSuperPerson、継承先クラスとしてPersonを考えると、このような動きになる。

継承の挿入→継承元へのジャンプ→継承先へのジャンプ
継承の挿入→継承元へのジャンプ→継承先へのジャンプ

 

所感 RiderはResharperだ。

Riderを触ってみて、これはクロスプラットフォームのResharperだと感じた。最も役立つVisual Studio拡張機能であるResharperがMacでもLinuxでも使えるようになるわけだ。このところのMicrosoftのオープン戦略によってWindows以外でも普通にC#開発が為されるようになってきたけれど、Riderが正式に世に出ればそれが更に加速するんだろう。Riderから目が離せない。

Rider | JetBrains

 

C#のロングセラー学習書

 

C#以外の言語でも役に立つ名著