IntelliJ IDEA 2018.3:GitHubプルリクエスト、Java 12、複数行TODOコメント、Gitサブモジュールサポートなど

IntelliJ IDEA 2018.3がリリースされました! IntelliJ IDEAの今年3回目のメジャーアップデートには、注目すべき機能がたくさんございます! 詳細は、What’s newをご確認ください(サムライズム様による翻訳はこちらです)。ウェブサイトにアクセスし、IntelliJ IDEAの最新バージョンを今すぐダウンロードできます。 新機能のシンプルなサマリーはこのブログポストにございます。

KGBfLKOw

 

Java

  • IntelliJ IDEAは今後公開予定のJava 12をサポートしています。すでに、IDEで生文字列リテラル(Raw String Literals)(JEP 326)をプレビューできます。 もっと詳しく
  • IDEはより複雑なケースで重複を見つけることができるようになりました。さらに、その速度も向上しています。
  • Java Stream APIの改善:minが後続する冗長なsorted呼び出しが検出されるようになりました。
  • 新しいデータフローベースインスペクションでは、後続の条件により不要な条件が検出されるようになりました。
  • IDEは、抑制されたインスペクションが、関連するメソッド本体、クラス、またはステートメント内の警告を処理しない状況を識別するようになりました。

What’s new ページの Javaセクション で詳細を確認できます。

エディタ

  • IDEは、エディタ内の最初とその後の全てのTODOコメント行をハイライトし、それらをTODOツールウィンドウで表示します。
  • 新しいインデントステータスバーには、現在のファイルのインデントのサイズが表示されます。
  • スコープを作成して、特定のファイルやフォルダでコードフォーマットを無効にすることができます。 Preferences / Settings | Editor | Code Style の ‘Formatter Control’ タブで設定できます。
  • EditorConfigファイルでシンタックスハイライトとコード補完ができるようになりました。

What’s new ページの Editor セクション で詳細を確認できます。

バージョン管理

  • GitHubプルリクエストの初期サポートにより、IDEでプルリクエストを見れるようになりました。
  • Gitサブモジュールのサポートにより、プロジェクトを更新、diffをコミット、diffを表示、または競合を解決できます。
  • VCSログでは、前または次の選択されたコミットにナビゲートできます。
  • ‘ History Up to Here’ アクションは、完全なファイル履歴を表示するようになりました。
  • ホワイトスペースの変更は、マージ中に無視できます。
  • Annotations のコンテキストメニューに、新しい Ignore Whitespaces オプションが追加されました(Gitのみ)。
  • アノテーションのラインのDiff PreviewがVCSポップアップで表示されるようになりました。
  • IntelliJ IDEAでは、Gitブランチから別のブランチにファイルをコピーするための新しいオプションが追加されました。
  • ファイルをコミットしているブランチが、コミットダイアログに表示されるようになりました。
  • IDEはGitマルチリポジトリプロジェクトを以前よりもずっと速くアップデートします。
  • IDEはデフォルトでネイティブGit SSH Executableを使用するようになりました。

What’s new ページの Version Control セクション で詳細を確認できます。

Search and Replace

  • 新しい Search Everywhere では、次のナビゲーションダイアログが統合されています:Search Everywhere、Find Action、Go to class、Go to file、Go to symbol。
  • Find in Path ダイアログで複数行のフラグメントを検索できるようになりました。
  • 新しい更新された Structural Search & Replace ダイアログでは、検索フィールドのオートコンプリート、より柔軟なスコープ設定など、多くの機能が強化されています。

What’s new ページの Search and Replace セクション で詳細を確認できます。

再構築されたプラグイン設定ページ

  • プラグインの管理、インストール、アンインストール、アップデートをより簡単にできるように、Preferences (Settings)(環境設定(設定))の Plugins ページを再設計しました。 もっと詳しく

Run Anything

  • Runコンフィギュレーション、ターミナルコマンド、Gradleタスク、または他のコマンドを簡単に実行するには、新しい Run Anything アクション(ダブルCtrlキー)を使用できます。 もっと詳しく

Kotlin
バンドルのKotlinプラグインがv1.3へアップグレード。

  • IDEはプロジェクトを新しいバージョンのKotlinにアップグレードを手助けします。
  • IDEはマルチプラットフォームプロジェクト用の一連のプロジェクトサンプルを提供します。
  • 新しいKotlinインスペクションとクイックフィックスが追加されました。

What’s new ページの Kotlin セクション で詳細を確認できます。

Spring & Spring Boot

  • IDEは、最近リリースされた Spring Boot 2.1 をサポートしています。
  • プロジェクトの作成時に、IDEは適切なプラグインのインストールまたは有効化を提案し、選択されたすべてのテクノロジーがサポートされていることを確認します。
  • KotlinのJPAとSpringデータのサポートが改善されました。

What’s new ページの Spring & Spring Boot セクション で詳細を確認できます。

アクセシビリティ

  • IntelliJ IDEAをよりアクセシブルにするために、新しいハイコントラストテーマを導入しました。
  • スクリーンリーダーは、ライン番号、VCS注釈、デバッガ、およびその他のガターアイコンを読見上げることができるようになりました。
  • HTML用のアクセシビリティインスペクションが利用できます。

What’s new ページの Accessibility セクション で詳細を確認できます。

JVMデバッガ

  • サービサビリティ・エージェント(SA)を使用してデバッグ・エージェントなしで開始されたJavaプロセスにアタッチすることが可能です。
  • IDEは、リモートデバッグプロセスが切断された後も、自動的にリモート接続を継続して待機することができます。
  • 好みのカスタムショートカットを設定して、ファイルまたはプロジェクト内からすべてのブレークポイントを削除することができます。
  • IDEはリモートJVMのasyncスタックトレースをサポートしています。

What’s new ページの JVM Debugger セクション で詳細を確認できます。

Maven

  • すべてのビルドと実行アクションをMavenに委譲できます。 もっと詳しく

ターミナル

Run Configuration

  • Java run configurationsでマクロのサポートを利用できます。
  • テキストファイルを入力に使うことができます。
  • Run configurationはデフォルトでシングルインスタンスとして実行されます。

What’s new ページの Run Configuration セクション で詳細を確認できます。

JavaScript & TypeScript

  • JavaScriptの自動インポートは、ESモジュールとして記述された、または型定義ファイルがあるプロジェクトの依存関係のシンボルでも機能するようになりました。
  • 強化されたAngularサポート:pipe、async pipe、およびテンプレート参照変数のより正確なコード補完とGo to definition
  • Node.jsワーカースレッドをデバッグできるようになりました。
  • ESLintとTSLintがよりフレキシブルになりました。

WebStorm What’s new ページで詳細を確認できます。

Kubernetesプラグイン

  • Kubernetesプラグインには、コーディングアシスタンス、Helmテンプレート結果のプレビュー、新しい ‘Helm Update Dependencies’ アクションなどを含むHelmサポートが追加されました。

What’s new ページの Kubernetes セクション で詳細を確認できます。

データベースツール

  • Cassandra データベースがサポートされるようになりました。
  • SQLコードの補完が改善されました。
  • Introduce table alias アクションが改善されました。
  • タイムアウト後に自動的に再接続するようになりました。

What’s new ページの Database Tools セクション で詳細を確認できます。

サーバー / クラウド

  • ライブラリとしてアーティファクトのインストールとWebLogicデプロイメント・プランのサポート。
  • Jetty 9.4.xサポート。
  • OpenShift Origin(V3)とトークン認証のサポート。

Docker

  • DockerプラグインがIDEにバンドルされました。

実験的な機能

  • JVMプロファイラ(macOSとLinux)。 もっと詳しく
  • Linuxのグローバルメニューバー。
  • アクティビティモニタ。

その他

  • GTK(Linux)とWindowsネイティブテーマは削除されました。
  • ウェルカム画面でファイルとプロジェクトをドラッグ&ドロップできます。

改善の完全なリストについてはリリースノートをご覧ください。ぜひ引き続き、ディスカッションフォーラムIssue Tracker、または Twitter (英) / Twitter (日) で、ご意見やご提案をお聞かせください! よろしくお願いいたします!

IntelliJ IDEA 2018.3を今すぐダウンロードしてください!

Happy Developing!

[原文Original text in English is written by Zlata Kalyuzhnaya

Posted in IntelliJ IDEA, お知らせ | Leave a comment

JetBrainsのクロスプラットフォーム対応.NET IDE「Rider」誕生までの歴史とそのアーキテクチャ

こんにちは。JetBrains堀岡です。

「最近JetBrainsは.NET関連ツールに注力してないのでは?JetBrains Night Tokyoでもセッション無いし。」というご意見を頂きました。そんなことありません。実際のところJetBrainsの.NET系製品群はIntelliJ IDEAに次ぐ代表製品で、日本でも多くのお客様にご利用いただいております。つい先日、弊社Developer Adovocate(@cwoodruff@maartenballiauw)によるRiderに関する英文記事がCODE Magazineで公開されました。せっかくなのでCODE Magazine 様から了承を頂き、英文記事の抄訳を作成しました。Riderをお使いのお客様や、これから使ってみたいと考えているお客様にRiderの設計思想やメリット、JetBrainsの.NET製品への継続的な取り組みをご理解頂くために参考にして頂ければ幸いです(ただし、かなりの長文です)。英語の原文で読みたい方は以下をご覧ください。

“This article originally appeared in CODE Magazine – Nov/Dec 2018: https://www.codemag.com/Article/1811091/Building-a-.NET-IDE-with-JetBrains-Rider

800x400_blog@2x

JetBrains Riderについて

JetBrains Riderは.NET/Mono/.NET Core環境、およびASP.NET、ASP.NET Core、Xamarin、WPFなどのフレームワークを使用するテクノロジをサポートするクロスプラットフォーム(Windows, Linux, macOS)対応IDEです。Riderは、C#、VB.NET、F#、JavaScript、TypeScriptなどの多くの言語に対応しており、コンソールアプリケーション、ライブラリ、Unityゲーム、Xamarinモバイルアプリケーション、ASP.NET MVCの構築、及び、Angular/React/Vue.jsなどを用いたWebアプリケーション作成をサポートしています。

Riderには、.NET開発者にとって日々のコーディングを快適にし、品質の高いコードを書くために役立つ多くの機能があります。例えば、Riderは他のJetBrains IDEと同レベルの優れたコード補完、コード生成、リファクタリング、ナビゲーション、2,300を超えるコード検査(静的コード解析)機能を備えています。これらのコーディング支援機能に加えて、.NET開発者がIDEの基本機能として期待するような、デバッガ、単体テスト実行、(高速な)NuGetクライアント、データベースツール、WPF XAMLプレビューウィンドウ、バージョンコントロールシステムとの連携機能も備えています。さらに、Dockerとの連携やUnity Editorのような最新のテクノロジーにも対応しています。しかしながら、特筆すべきことは、これらの豊富な機能が全て備わっていても、Riderはメモリ効率が良く、高速で機敏に動作するということです。

Rider誕生までの歴史

Riderの技術とアーキテクチャの話に入る前に、その歴史について触れなければなりません。 2004年、JetBrainsはVisual StudioアドインReSharperのスタンドアロンアプリケーション版の作成を検討していました。 結果としてリリースされることはありませんでしたが完全に機能するプロトタイプが既に存在していました。

以下の図1がReSharper 2.0 IDE UIのスナップショットです。ソリューションエクスプローラ、エディタ、使用箇所の表示、コード補完、リファクタリング機能は既に実装されていました。 ユーザーインターフェイスはモダンではありませんが、エディタ上でドキュメンテーションをインラインで装飾表示するための機能は.NET WinFormsをベースに実現されており、WPF(Windows Presentation Foundation)が存在しなかった当時としては革新的な取り組みでした。

image1

図1: ReSharper 2.0 IDE UI

その後スタンドアロン版ReSharperプロジェクトは一旦中止となってしまいましたが、そこで開発された要素技術(アクションシステム、テキストコントロール実装、ツールウィンドウおよびツールバーコントロール、単体テストランナー、ReSharperコマンドラインツール)は、その後のReSharperの進化とRiderの誕生に応用され、決して無駄になることはありませんでした。

ReSharper 2.0 IDEにおいて1つの重要なデザイン上の決定は、ReSharperのコア機能と(エディタとしての)IDE機能をデザイン上分離しておくということでした。この決定はその後のReSharperの開発の効率化(Visual Studio 2010, 2013, 2015, 2017の同時サポートを共通のReSharperコア機能上に個別のIDE対応レイヤーを作成することにより実現)に寄与しました。このデザインはRiderの開発にとっても重要な役割を果たしました。簡単に言ってしまえば、Riderの開発に必要なことは、ReSharperコアに別の(IntelliJ向けの)インテグレーションレイヤーを追加することのみに出来たからです。

ReSharper 2.0 IDEの開発同様、JetBrainsは新しいIDEを開発する上で、既存の技術とツールを可能な限り再利用したいと考えていました。それは論理的にはJetBrainsが長い年月をかけて構築してきたIDEプラットフォーム(IntelliJ IDEA)を再利用するということでした。IntelliJ IDEAは様々な開発シナリオをサポートし、WebStormIntelliJ IDEA Ultimateのような他のJetBrains IDEの基礎となっています。一方で、JetBrainsには、他のIDEではサポートしていないC#やVB.NET向けVisual Studio用アドオン製品としてReSharperがありました。

そこでJetBrainsはIntelliJとReSharperを融合するという挑戦を開始しました。IntelliJのリッチなフロントエンド機能やバージョンコントロールシステム連携などの共通ツール機能、ReSharperの.NETツール機能の融合です。しかしそれぞれのツールは異なるテクノロジー・スタックの上に実現されています。具体的には、IntelliJ はJava Virtual Machine上で動作し、ReSharperは.NETベースで動作します。そのため我々はこれら2つのプロセスを協調して動作させる必要があったのです。

軽量かつスマートなUIレイヤー

RiderはIntelliJをReSharper上で動作する軽量なユーザインタフェース層として主に利用しています。すなわち、IntelliJはRiderにおいては、エディターとしてのユーザインターフェースを提供します。ただし、JavaScriptやTypeScriptのような言語に対しては、言語解析等の全ての機能を提供します。一方で、IntelliJのフロントエンドはC#やVB.NET、F#のような言語に対しては、知識を持ち合わせていません。それらの知識はReSharperバックエンドから提供される必要があります。

ユーザがソースファイルを編集するとき、IntelliJはユーザの操作を追跡します。 例えば、ステートメントの記述を完了するタイミングで、IntelliJは現在の言語サービスに補完項目を要求します。 C#、VB.NET、F#、および他のいくつかの言語に対しては、Riderのフロントエンドは、実際の処理を行う代わりにReSharperバックエンドから情報を取得するファサード言語サービスを呼び出します。 そこで得られた情報がフロントエンドに渡され、補完候補リストとして表示されます。

このような情報の流れは逆方向にも起こりえます。RiderのIntelliJフロントエンドはコードインスペクション結果を波線で表示する仕組みを持っていますが、C#用のインスペクション機能自体は持っていません。Riderは、ソースファイルを開いたタイミングで、ファイル情報をReSharperのバックエンドプロセスに通知し、ReSharperがファイル解析を行い、インスペクションの実行が完了するのを待ちます。ReSharperはインスペクション結果として指摘箇所、重要度、tooltip(吹き出し)テキストのリストを出力し、フロントエンドはその情報を表示するだけです。

まとめると、RiderにおいてはIntelliJフロントエンドの役割は特定の言語(JavaScript等)向けの処理、Tool Window群の提供、バージョンコントロールシステムとの連携となります。一方、.NET言語に対しては、IntelliJフロントエンドは編集機能の提供やその他の共通機能のフレームワークとして動作し、必要な情報はバックエンドプロセス(ReSharper)から取得します。

カスタムプロトコルの必要性

前述の通り、RiderのIntelliJフロントエンドには、編集、コード補完、メニューエントリの表示、コード検査結果の表示など、多くの機能に対するフレームワークが用意されています。 一方で、ReSharperのバックエンドプロセスも、コード補完、コード検査、リファクタリング等の同様の概念を持っています。

これらの類似点のため、JetBrainsは、フロントエンドとバックエンドの間で共有されるシンプルなモデルを利用できることに気付きました。 例えば、ユーザがコードを編集した時に、少量のテキストと差分情報をフロントエンドからバックエンドに渡すことができます。 コード検査結果を表示するために、バックエンドからフロントエンドにドキュメント範囲、重要度、および説明を提供すれば良いのです。 ということは、もし、あるコード検査結果をReSharperからIntelliJのフロントエンドで表示することができれば、その他のコード検査結果も同様に表示することができるはずです。 また、もし、エディタでコードの一部を変更し、小さなコードの部分データをReSharperに渡してモデルを更新することにより、1つのリファクタリング機能を動作させることができれば、外のすべてのリファクタリングも同様に動作させることができるはずです。

そこでJetBrainsはフロントエンドとバックエンドの間で、どのような手法でアクションやデータを受け渡すのが良いのかを決定するために、以下を検討しました。

  • 初めに、Language Server Protocol (LSP)の利用を評価しました。 – 結局採用しませんでした。LSPは素晴らしく、多くの機能がありますが、我々の用途とはあまりマッチしませんでした。例えば、ReSharperのいくつかのリファクタリング機能をLSPを用いて実装するためには、多くのカスタマイズが必要であることが判明しました。 また、C#/ VB.NETとHTML、CSS、JavaScriptを混在させたRazorのような言語をLSPがどのように扱うべきかも我々にとって不透明でした。 恐らく、別々の言語のLSPコンポーネントが必要であり、組み合わせ言語のLSPコンポーネントも必要でしょう。結果として、 LSPは多くの複雑さをもたらし、我々の特定のユースケースに対してほとんど利益をもたらさないと判断しました。
  •  次に、各プロセスが別のプロセスに呼び出すことができるカスタムRESTプロトコルを構築し、評価しました。 JetBrainsは、JSONやProtoBufなどのさまざまなトランスポートメカニズムとシリアライザを試していました。 残念なことに、これらのプロトコルは遅く、カスタマイズが難しく、効率的な開発には適さない事が判明しました。 これらアプローチの主な欠点は、リモートプロシージャコール(RPC)タイプのプロトコルを使用していることです。 これらの手法の場合、常に「要求 – アクション – レスポンス」フローで考える必要があります。一方で我々は、フロントエンドとバックエンドの間に、同じ概念で構築された、より自然なフローを持たせる方法を探していました。例えば、 フロントエンドがバックエンドに「add file to solution」メッセージを送信し、状態が更新されたという応答を待つ代わりに、solution.Add(filename)というコードを書いたら、両方のプロセスをが自動的に同期され、 競合の解消やその時点で例外が発生した場合に何が起きるかをあまり気にせずプログラミングできるようにしたいのです。

もう一つの実装における重要な検討事項は、互いに受け渡されるデータの型でした。コード検査の場合、交換されるデータは、ドキュメントの範囲、重要度、および説明のみになります。 RPCスタイルでは、実際にコード検査を実現するには詳細な情報が必要です。例えば、このコード検査はどのソリューション対するものなのか?ソリューションのどのプロジェクトものなのか?そして、どのファイルに対するものなのか?あらゆる呼び出しには、そのようなコンテキスト情報が必要となり、RPC呼び出しが大量になり、開発者に多くのオーバーヘッドが必要になります。

そこでModel-View-ViewModel(MVVM)パターンとしてこのプロトコルをモデリングしようとしたとき、私たちに気づきの瞬間が訪れました。 Wikipediaの定義によれば、MVVMは、ビューモデル(VM)をバリューコンバーターとして使用して、バックエンド(M:モデル)の開発からユーザーインターフェイス(V:ビュー)の開発を分離することを容易にします。 私たちの場合、IntelliJはビューであり、ReSharperはモデルを提供しています。そして「プロトコル」が、UIコンポーネントに必要な軽量のデータとデータを共有するビューモデル(VM)です。

このデザインでは、(フロントエンドとバックエンドの)両方のプロセスに状態を持ち、それらを同期させようとするのではなく、両者から操作できる共有モデルが存在することが特徴です。私たちが最初に欲しかったのはまさにこのデザインでした。開発者がフロントエンドのプロジェクトに新しいファイルを追加すると、共有モデルが更新され、フロントエンドとバックエンドの両方のプロセスがそれに反応します。 ReSharperで動作しているリファクタリングで新しいファイルが追加されると、共有モデルが更新され、再び両方のプロセスがそれに反応できます。共有モデルはシステムの状態であり、両プロセスはモデルの変更を監視して反応することができます。

競合の解決

プロセス間通信において、MVVMは競合を解決しません。変更はフロントエンドまたはバックエンドのいずれかから来る可能性があり、競合が発生する可能性があります。たとえば、バックエンドがリファクタリングを実行中に、フロントエンドはファイルを削除する可能性があります。その結果、バックエンドは、モデル内の削除されたファイルに対して、レポートおよび更新を行おうとします。 ReSharperのバックエンドがリファクタリングを実行中に、コードを変更する場合、矛盾する変更をどのように解決すればよいでしょうか?コードを書いている人間による変更が優先されるのでしょうか?バックエンドプロセスが勝つのでしょうか?このような場合、どのようにモデルに対する動作を同期させれば良いでしょうか?

1つの解決方法は、ロックの概念を導入して、このような競合の発生を防止することです。しかし、リファクタリングの実行中にIDEが応答を停止するのを見たい人はいないでしょう。開発者は、長時間実行されているタスクがまだ完了していなくても、そのファイルを削除したり、新しいファイルを作成したり、モデルを更新したいはずです。我々はIDEが常にサクサク動作することを期待するのです!

そこで、JetBrainsは、競合の発生を防ぐために、以下のいくつかの基本的なルールを決めました:

  • クライアントとサーバーを定義します。Riderの場合、クライアントはIntelliJで、サーバーはReSharperです。
  • ビューモデルに格納される各値にはバージョンがあります。
  • クライアントによって値が更新されるたびに、バージョンが増分されます。
  • サーバー側の更新はバージョンを増やしません。
  • (ビューモデルは)バージョンが同じかそれより新しい場合にのみ、変更された値を受け入れます。

クライアントによって値が変更されると、ビューモデルはそれを受け入れます。一方、サーバーが処理を行い、値を変更しようとしたときに、変更した値のバージョン番号が現在のバージョンより低いと、その変更はビューモデルで受け入れられません。これにより、競合が発生したときに、クライアント側の変更プロトコルが常に優先されるようになります。

Riderプロトコル

JetBrainsは、MVVMのアプローチと競合解消のルールを組み合わせたRiderプロトコルを構築しオープンソース化しました。しかし、私たちは多くのプロトコルの詳細が開発者に面倒をもたらすことを避けたいと思っていました。代わりに、私たちはプロトコルを図2のようにしたいと思っていました。

image2図2:RiderプロトコルとReSharperバックエンド

プロトコルの最下層は通信自体を提供し、ソケットで動作します。Riderは、差分情報を送信するバイナリワイヤプロトコルを使用します。必要に応じてバッチ処理を提供し、ワイヤを通過するすべてのデータをダンプするためのロギングをサポートします。それでも、このプロトコルは、開発者にとって詳細すぎると考えました。そこで、 JetBrainsはこのプロトコルを使用するためのフレームワークを構築しました。

IntelliJフロントエンドはJVM上で実行され、ReSharperバックエンドは.NET上で実行されます。そこで我々は、Kotlin(JVM言語)ライブラリとC#ライブラリを作成し、両方のライブラリが共通で使用するプリミティブを定義しました。また、これらのプリミティブを使用して、ドメイン固有の言語でビューモデルを定義し、フロントエンドとバックエンドで使用できるコードを生成できるようにする(Kotlinベースの)コードジェネレータも作成しました。

(フレームワーク又はライブラリによって)JetBrains開発チームは、プロトコルで動作する基本的なプリミティブについてのみ知っていればよく、ライブラリの背後にある他のすべての魔法を習得する必要はありません。このフレームワークを使用する別のメリットは、プロトコルレイヤは自動生成されるので、reflectionやintrospectionについて工数をかけることなく、パフォーマンスよく開発できることです。

このプロトコルではまた、オブジェクト階層を管理するためのアプローチとして、ライフタイムの概念をサポートしています。オブジェクトをメモリから、いつ、どこで削除するかをコントロールする代わりに、オブジェクトはライフタイムに付けられ、ライフタイムが消滅するタイミングで同時に削除されます。例えば、コード検査結果をエディタ・タブのライフタイムに付けることができます。これにより、エディタ・タブを閉じて(ライフタイムが終了すると)コード検査結果もメモリから削除されます。また、そのエディタのタブ自体をソリューションライフタイムに関連付けることができるため、ソリューションが終了して親ライフタイムが終了すると、すべての存在するオブジェクトも破棄されます。 IntelliJとReSharperはどちらもこのアプローチを利用しており、プロトコルのビューモデルはこれに従う必要があります。

ライフタイム以外にも、Riderプロトコルは次の概念をサポートしています:

  • シグナル:何かが発生したときに生成されるイベント
  • プロパティ:Observableな値
  • マップ:Observableなコレクション
  • フィールド:Immutableの値
  • 呼び出し:ケースバイケースで必要となるRPCスタイルの呼び出し

これらはすべて、stringenumclassdefまたはaggregatedef(ビューモデル内のノード)、およびstructdef(データを保持するオブジェクト)といったデータタイプの受け渡しに使用することが出来ます。

概念のみだと曖昧に聞こえるかもしれないので、簡単な例を見てみましょう。 RiderのNuGetクライアントは、さまざまなパッケージソースの使用をサポートしています。 これらはすべて名前とURLを持っています。

このプロトコルでは、NuGetクライアント情報(RdNuGetHost)を保持するビューモデルノードを定義します。このノードには、NuGet configuration(configManager)を管理するノードがあり、NuGetのソース名とURLを保持するプロパティ(knownFeeds)があります。

コード生成を実行すると、図3に示すように、IntelliJフロントエンドが使用できるKotlinのクラス定義と、ReSharperバックエンドが使用できるC#のクラス定義が取得されます。

image3図3: Riderプロトコルに対するコード生成

これにより、開発者は生成されたプロトコルに対して作業することができます。 たとえば、フロントエンド側では、以下のようにKotlinプログラミング言語でフィードのリストを設定できます:

一方、バックエンドの.NETコードでこのリストを購読し、変更に反応することができます。 または、指定した時点でリストの値を列挙できます。 図4に示すように、プロトコルコードが生成されているため、コード補完も得られます。

image4図4:Riderでのコード補完の例

まとめると、プロトコルに対するコード生成のおかげで、IntelliJフロントエンドとReSharperバックエンド間のコミュニケーションや状態について詳細をケアすること無く、共有モデル用いてコードを書くことができるのです。

マイクロサービス

Riderは、IntelliJのフロントエンドとReSharperのバックエンドの2つのプロセスで構成されていることをすでに説明しました。両方とも異なるテクノロジスタック(JVMと.NET)で動作しているため、Riderは、Riderプロトコルを使用して相互に通信する複数のプロセスを実行する必要があります。複数プロセスによる実行にはいくつかの利点があります。1つの利点は、それぞれのプロセスが独自の64ビットメモリ空間を持ち、マルチコアマシンでは、これらのプロセスが独自のCPUコア上で実行される可能性が高いため、パフォーマンスが向上することです。

もう一つ興味深い利点があります。プロセスの独立性です。複数のプロセスが独立して実行されるので(プロトコル経由での通信は別として)、独立したガベージコレクションが実行可能です。また、起動や停止に関しても独立して実行可能です。この特徴はとても興味深いです!独自のメモリスペース、独自のガベージコレクタ、および潜在的に独自のCPUコアを使用して、必要に応じてプロセスを開始および停止できるのです。

Riderは、使用しているソリューションのタイプに応じて、2つ以上のプロセスを実行することがあります。 Windows Presentation Foundation(WPF)プロジェクトで作業する場合、図5に示すように、3つのプロセスが実行されている可能性があります。

image5図5:RiderのWPF XAMLプレビュー

まず、エディタ自体はRiderのIntelliJフロントエンドであり1つのプロセスです。次に、コード補完、コード解析、クイックフィックスなどは、RiderのReSharperバックエンドプロセスとして実行されます。 そして、画面下部のXAML Previewウィンドウが3つ目のプロセスです。ReSharperのバックエンドは、WPFアプリケーション向けに作業していることを検出し、別のインスタンスのプロトコルでReSharperとビットマップ表現を通信するレンダリングプロセスを開始します(図6) 。

image6図6:XAML Previewレンダラと動作するRiderのプロセス

RiderはRoslynアナライザーの実行もサポートしています。多くの開発チームは独自のアナライザを作成して、構築したフレームワークに追加のツールを提供します。Riderでは、ReSharperバックエンドがRoslynを使用してコードを解析する別のプロセスを開始します。Roslynによる解析結果がIntelliJのフロントエンドに渡され表示されます(図7)。

image7
図7:Roslynと動作するRiderのプロセス

デバッガもまた別のプロセスでも実行され、ReSharperバックエンドによって生成され、Riderプロトコルを使用して通信します。したがって、Roslynアナライザを使用するプロジェクトでXAMLプレビューツールウィンドウを開いて、それをデバッグしようとすると、さらに多くのプロセスが実行されます(図8)。image8

図8:デバッガを使用したRiderのプロセス

まとめると、オンデマンドでプロセスを開始および停止できるアーキテクチャでは、次のような利点があります。

  • 独立したガベージコレクションとメモリスペースの分離
  • オンデマンドでの機能の開始/停止、ソリューションで必要なときにのみ、完全な機能セットをロード
  • 独立したクラッシュ。これは、XAMLプレビューレンダラのようなプロセスで重要になります。例えば、問題のあるユーザーデータをレンダリングする必要がある場合です。そのような場合、IDE全体が停止するのではなく、1つのプロセスを正常に失敗させることができます。

まだ説明していないもう1つの利点があります。 Riderプロトコルはソケットベースなので、必ずしも同じコンピュータ上で実行する必要はありません。たとえば、Dockerデバッグサポートでは、デバッガプロセスはDockerコンテナ(基本的に別のコンピュータ)で実行され、RiderのReSharperバックエンドプロセスと通信します。これは、現在と将来に対して多くの柔軟性をもたらします。

これまで見てきた例では、Riderがプロセスを所有し、起動/停止を行いました。一方、 Unity Editorとの統合においては、Riderは(Unity Editorの)プロセスを所有していません。 RiderとUnity Editorは独立して起動することができますが、両方のプロセスが互いのRider Protocol接続を探すことができます。両方とも起動し、接続が許可されている場合、RiderはそのビューモデルをUnity Editorと共有することができ、その逆も可能です。これにより、RiderはUnityの再生、一時停止、停止ボタンをコントロールすることができます。また、Unity Editorで実行中でもRiderでコードをデバッグすることができます(図9)。

image9
図9:macOSで動作しているRiderによるUnityデバッグ

Unityプラグインの内部に興味がある場合は、https://github.com/JetBrains/resharper-unityをご覧ください。IntelliJフロントエンド、ReSharperバックエンド、およびUnity Editorプラグインによるマイクロサービスの実現を見ることができますよ!

Riderの独自UI拡張のためのデザイン

ここまではRiderのIntelliJフロントエンドとReSharperバックエンド間における、ビューモデルの共有について重点を置いて説明してきました。ビュー自体はどうでしょうか?確かに、Riderにはビュー側で開発されたいくつかの独自のユーザーインターフェイス要素とツールウィンドウが必要がですよね?

その通りです。コード検査やクイックフィックスの表示においては、ドキュメントの範囲、重要度、および説明といった、IntelliJで既に使用されているものを再利用するため、フロントエンドでの変更を必要としません。一方、他の機能、例えばNuGetツールウィンドウでは、構築したプロトコルに基づきにすべての機能を実装する必要があります。

最近のバージョンのRiderを開発中に、JetBrainsは、多くのユーザーインターフェースとユーザーインターフェース要素が本質的に似ていることに気づきました。たとえば、すべてのコード検査設定は、検査の概要、重要度、およびそれらをオンまたはオフに切り替えるブール値です。これらのすべての設定は、そのリストをグリッドビューにバインドする同じユーザーコントロールを共有します。

他の多くの設定では、ユーザーインターフェイスは多くの場合ヘッダーの後に1つ以上のテキストが続き、その後にチェックボックス、テキストボックス、またはドロップダウンが続きます。そこで、それらを個別に再構築するのではなく、プロトコルを使用して実装できるいくつかの標準ビューを構築し始めました。たとえば、RiderのC#インタラクティブ設定は、次のコードスニペットを使用してReSharperバックエンドで定義されます。

RiderのIntelliJフロントエンドはこれらをレンダリングし、適切な設定ペインが表示されます(図10)。

image10図10:Riderの設定ペイン

ReSharper側でユーザーインターフェイスを定義する利点は2つあります。まず、UIを手動で構築する必要はなく、代わりにプロトコルモデルからUIを生成できます。第2に、RiderとReSharperは同じコードベースなので、ReSharperの将来のバージョンでもこれらをレンダリングできるのです!

Riderの開発がReSharperの進化にもたらすメリット

RiderはReSharperの機能をできる限り再利用して作られているという話をしました。このようなデザインにより、JetBrainsがRiderに追加する機能は、ReSharperでも利用可能であり、ReSharperへの機能追加は同様にRiderでも利用可能であるという利点があります。

これは機能に限った話だけではなく、パフォーマンスの最適化においても、一方での改善が他方にもメリットをもたらします。 例えば、ReSharperにおいて、ソリューションをロードする速度を最適化すれば、Riderはそのメリットを得るでしょう。 RiderがIDEコンポーネントの読み込みを最適化すれば、ReSharperも同様の改善によるメリットを享受することができます。

現在のRider開発において、JetBrainsは今後ReSharperバックエンドを.NET Core CLRの上で動作させることに重点を置いています。これは、.NET Framework(Windowsの場合)またはMono(macOSおよびLinuxの場合)を必要としないようにするためです。この取り組みは、現在のような2つの異なるランタイム環境ではなく、すべてのプラットフォームのランタイム環境が.NET Coreになるという点でRiderにとって有益です。Riderはまた、ReSharperと同様に、.NET Coreで行われた多くのパフォーマンス強化の恩恵を受けるでしょう。

Rider開発において我々はUIとは別のプロセスとしてReSharperを実行させるデザインに取り組んできましたが、この取り組みはVisual Studioにおいても、ReSharperを別プロセスとして実行させることに応用されようとしています。 JetBrainsはこれに積極的に取り組んでおり、Visual Studioにおいてもこの記事で紹介している利点をもたらします。Visual StudioとReSharperはそれぞれ独立したプロセスで動作し、独自のメモリスペースと潜在的に独自のCPUコアを使うことができるようになります。この取り組みは .NET Core CLR上でReSharperを実行するためのサポートの変更とともに、Visual Studio上におけるReSharperにおいてもパフォーマンスの大幅な向上をもたらすでしょう!

さらなる機能:DataGrip、WebStorm、およびdotToolsとの統合

Riderの歴史から学んだように、Rider IDEの強みは、IntelliJファミリの他のIDEの機能を包含している点にもあります。 .NETとASP.NETの開発者にとって、JetBrainsはDataGripとWebStorm IDEの多くの機能をRiderに統合しました。これは基本的に既存のプラグインをRiderにバンドルすることによって実現しました。

DataGripのデータベースツールをバンドルすることで、RiderはOracle、MySQL、Microsoft SQL Server、Azure SQL Databaseなどをサポートするデータベースおよびデータに対する豊富な機能を提供します。Riderのユーザーは、SQLテキストエディタのインテリジェンスを使用してSQLコードを作成し、SQL文を実行し、結果セットを表示し、データベーススキーマを迅速にナビゲートして、使用しているデータベースでテーブル、ビュー、プロシージャ等を確認することができます。

JetBrainsは、単に既存のプラグインと機能を組み合わせるだけでなく、1+1=3になるように機能を拡張しようと積極的に考えています。例えば、 C#ファイルの文字列の中にSQLコード補完を提供することができれば、どれくらいうれしいですか?または、そのクエリを実行するAlt + Enterアクションを提供しますか?これはまさに私たちが取り組んでいることです(Rider 2018.3でSQLに対するLanguage Injection機能が拡充されます)。両方のプロセス(さらに、おそらく、他に協調するマイクロサービス)からインテリジェンスが得られるため、IDEはさらにスマートになります。

その他の例は、バンドルされているWebStormの機能にあります。ここ10年間のWebクライアントベースの開発の増加に伴い、ほとんどのASP.NETおよびASP.NETコア開発者は、プロジェクトやソリューションでJavaScriptの使用を強化する必要性を認識しました。 RiderのエディタはJavaScriptだけでなく、Angular、React、Vue.jsなど、現在利用されている代表的なWebフレームワークも理解しています。Riderは、また独自のコード解析機能と、現在利用可能な最も人気のあるオープンソースのLinterと組み合わせて、Webコードをチェックすることができます。 WebStormの組み込みデバッガとユニットテスト機能を使用して、すべてのJavaScriptコードを.NETコードとは別にデバッグしてテストすることもできます。 ASP.NETとASP.NET Coreを使用して構築されたWeb APIをテストするためのRESTクライアントもあります。

現在、Rider上でTypeScriptファイルをコーディングする場合、関連するすべての機能は、フロントエンドのWebStormプラグインによって提供されます。しかし、ReSharperにも、JavaScript、TypeScript、HTMLなどの多くの機能もあります。そこで現在、私たちは、フロントエンドとバックエンドの両方でコード分析、完了、コード生成などを行うことで、両方の世界のベストな機能を組み合わせることに取り組んでいます。

Rider 2018.2では、コードカバレッジと継続的テストが統合されました。これは別のバックエンドプロセスであるdotCoverによって実行されます。今後Riderに追加されうるその他の機能としては、dotTrace(JetBrainsのパフォーマンスプロファイラ)とdotMemory(JetBrainsのメモリプロファイラ)があります。現在、これらはWindows上でのみ実行されます。今後の我々のゴールは、これらのツールをmacOSおよびLinux上でも実行できるようにし、Riderの豊富なプロファイリング機能もそれらのプラットフォームでも利用可能にすることです。(※これらプロファイリング系機能を使用するためにはReSharper Ultimate + RiderまたはAll Products Packのご購入が必要です。

まとめ

.NETとASP.NET開発の将来は非常にエキサイティングであり、Riderはその一部になりたいと考えています。 JetBrainsはAzure、WinForms、WPF、Xamarin、.NET Coreなど.NET開発者が現在使用している多くのテクノロジのサポートを追加し、継続的に改善にも取り組んでいきます。 現在は、.NETソリューションを開く際の起動時間の改善や、エディタ上でのタイピング時におけるゼロ遅延機能を追加することによる、Riderのパフォーマンス向上に取り組んでいます。

また、将来的な機能拡張としては、ソリューションやプロジェクト内でC ++コードのサポート、プラグイン開発者がRiderのIntelliJフロントエンド、ReSharperバックエンドを拡張できるようにする、より簡単なSDKを提供することによるプラグインエコシステムの構築することを検討しています。

Rider IDE誕生までの歴史やアーキテクチャ、異なるテクノロジスタック上で動作する既存の製品を組み合わせる際に直面する課題を紹介するしました。これにより Riderに対する理解を深めていただけたら幸いです。

RiderはWindows、Mac OS X、およびLinuxで使用できる非常に豊富で有益な.NET IDEです。製品の詳細や無料トライアル、購入に関するお問い合わせはJetBrains Riderウェブサイト(英語日本語)または、日本の販売代理店までお知らせください。

お知らせ

2018年11月20日(火)午後6時より、JetBrainsの本社メンバーや日本における第一人者からベストプラクティスや最先端の現場からのユーザ事例を知ることができる貴重なイベントJetBrains Night Tokyo 2018を開催します。本記事の作者の一人である.NET関連製品スペシャリストの@maartenballiauwとも懇親会のAsk the specialistでお会いいただけます。以下から引き続きお申込み受付中です!
JB_Night_WS1 (1)

(2018年11月8日 追記)

突然ですが、2018年11月19日(月)午後7時より、株式会社ライフベア様のご厚意により、会場をお借りして、JetBrains “.NET” night Tokyo 2018を開催します。会場のキャパシティに限りがあり抽選による参加となる可能性がございますが、興味がございましたらぜひお申込みください!

https://lifebear.connpass.com/event/107559/

Posted in ReSharper, Rider | 3 Comments

IT導入補助金をご活用いただけます-JetBrainsのチームツールやIDE製品の導入に最大50万円の補助金が交付

it-hojo-jetbrains

IT導入補助金とは

IT導入補助金とは中小企業・小規模事業者(個人事業主含む)の業務効率化・売上アップをサポートするための支援事業です。
JetBrainsのパートナーである株式会社サムライズムはIT導入支援事業者として採択されておりJetBrainsのIDE製品、並びにチームツールが補助金交付の対象となっております。

IT導入補助金の対象事業者

主な対象事業者は以下の通りです。

業種・組織形態 資本金 常勤従業員数
製造業、建設業、運輸業 3億円 300人
卸売業 1億円 100人
サービス業(ソフトウエア業、情報処理サービス業、旅館業を除く) 5,000万円 100人
小売業 5,000万円 50人
ゴム製品製造業(自動車又は航空機用タイヤ及びチューブ製造業 3億円 900人
ソフトウエア業又は情報処理サービス業 3億円 300人
旅館業 5,000万円 200人
その他の業種(上記以外) 3億円 300人
医療法人、社会福祉法人 100人
特定非営利活動法人(NPO法人)

詳細につきましてはIT導入補助金 – 補助対象となる事業者をご参照ください。

また対象となるツールの導入実績がこれまでにない事業者に限られます。
交付申請が可能であるかどうかについて詳しくは「ITツールについて ~交付申請における考え方~」(pdf)をご参照ください。

スケジュール

現在三次公募を受付申請しており、2018年12月18日まで交付申請が可能です。
事業の実施、実績報告は2019年1月31日までとなります。
schedule
IT導入補助金 – トップページより

申し込み方法

株式会社サムライズム様のページよりお申し込みいただけます。交付申請まで多数の手続きがございます。余裕を持ってお申し込みください。
IT導入補助金をご利用いただけます – 株式会社サムライズム

Posted in お知らせ | Leave a comment

Kotlin 1.3リリース – コルーチン、Kotlin/Nativeベータ

Kotlin 1.3リリースです。もちろんビルドツール、ライブラリ、学習素材も同時リリースです。

JetBrainsはすべてのデベロッパーとって、あらゆる規模かつすべてのプラットフォームで優れたツールになるように、Kotlinの開発に取り組んでいます。 Kotlin 1.3では、コルーチンが進化して安定し、ノンブロッキングコードの読み書きが簡単になりました。 スケーラブルなアプリケーション開発がこれまでになく容易になりました。このリリースでは、KotlinコードをNativeバイナリに直接コンパイルするKotlin/Native ベータも導入されています。 Kotlinのマルチプラットフォーム機能は、サポートされているすべてのプラットフォームをカバーするようになりました。そのため、AndroidやiOSアプリなどのコンポーネント間でビジネスロジックを共有できます。 サーバーアプリケーションのロジックをWebやモバイルクライアントと共有でき、マルチプラットフォームライブラリにより、日々のタスクを簡単に移植できます。

1_3_banner_dark

1.3の主な機能を紹介する一連のウェブセミナーを開催します。こちらから登録できます。

コミュニティーとエコシステム

Kotlinは今年前例がないほど採用率が伸びています。 2018年1月以降、約150万のユーザーがKotlinコードを書きました。この数字は昨年の2倍以上に増えました。 StackOverflowでのトレンドと私たちのパブリックSlackでのトレンドも非常に励みになります。 私たちはKotlinコミュニティにサポートいただき、感謝しております!

Kotlin周辺のエコシステムが成長し、成熟しているのを嬉しく思います。 Kotlinは、Google Cloud PlatformSpring FrameworkGradle の友人であり、またもちろん、Androidのファーストクラスサポートは言うまでもございません。 オープンソースコミュニティは、RxKotlinmockito-kotlinTornadoFXKodeinΛRROW などの優れたライブラリを作成しています。 また、SquareのOkio やLibreOffice のようなプロジェクトは、Kotlinに移行しているか、そうする予定です。 ぜひ皆さん、素晴らしいアイデアやプロジェクトとともにKotlinエコシステムにご参加ください。

JetBrains以外の多くの方々に、pullリクエスト、バグレポート、そしてあらゆる種類のフィードバックで、Kotlin 1.3にご貢献いただきました。 皆様のご協力に本当に感謝しております。ぜひKotlinを一緒に、前進させていきましょう!

コルーチンがstableへ昇格しました

コルーチンは、理解しやすく進化しやすい、ノンブロッキングの非同期コードを書く現代的な方法です。 また、バックグラウンドワーカーへのワーク負荷の軽減から、複雑なネットワークプロトコルの実装まで、あらゆる用途でパワフルなツールです。 kotlinx.coroutinesライブラリは、構成、キャンセル、例外処理、UI固有のユースケースなど、あらゆる規模の非同期ジョブを管理するためのしっかりした基盤を提供します。

kotl.in/coroutines でスタート!
コルーチンウェビナーにいますぐ登録

Kotlin/Nativeベータ

Kotlin /Nativeは LLVM を使用し、iOS、Linux、Windows、Mac、さらに、WebAssemblyやSTM32などの組み込みシステムを含む、さまざまなオペレーティングシステムやCPUアーキテクチャ用に、Kotlinソースをスタンドアロンバイナリ(VMは不要!)にコンパイルできます。 またこれは、完全自動メモリ管理を搭載し、C、Objective-C(およびSwift)との相互運用が可能で、Core Foundation、POSIX、およびお好きなネイティブライブラリなどのプラットフォームAPIを公開しています。

Kotlin/Nativeランタイムはイミュータブルデータを活用して、スレッド間で保護されていないミュータブルなステートを共有することを防ぎます。実際に、スレッドはKotlin/Nativeには存在しません。スレッドは低レベルの実装の詳細として抽象化され、ワーカーに置き換えられます。これは、並行処理を行う安全で管理しやすい方法です。

kotl.in/nativeで Kotlin/Native について学べます。
ウェビナーに今すぐ登録

マルチプラットフォームプロジェクトとツール

すべてのプラットフォームで作業するのがKotlinの明確な目標です。しかしこれは、より重要な目標に対する前提と考えています。その目標とは、プラットフォーム間でコードを共有することです。 JVM、Android、JavaScript、およびNativeのサポートにより、Kotlinは最新のアプリケーションのあらゆるコンポーネントを処理できます。 また、これにより、コードや専門知識に計り知れない再利用のメリットが生まれ、すべての作業を2回以上実行することなく、より困難なタスク用に力を節約できます。 Kotlinのマルチプラットフォーム機能はまだ実験段階ですが、1.3は大きな前進となります。

Kotlin 1.3には、 HTTP シリアル化コルーチンの管理 などの日常的な作業をカバーするマルチプラットフォームライブラリが付属しています。 マルチプラットフォームコードを書く最も簡単な方法は、そのようなライブラリに依存することです。 プラットフォーム固有の依存関係を共通のAPIにラップする、あなた独自のマルチプラットフォームライブラリを作成できます。

プラットフォーム間でコードを共有:kotl.in/multiplatform
ウェビナーに今すぐ登録

Kotlin/Nativeとマルチプラットフォーム用のツーリング

Kotlin 1.3は、IntelliJ IDEA Community Edition、IntelliJ IDEA Ultimate、およびAndroid Studioで利用可能なKotlin / Nativeおよびマルチプラットフォームプロジェクト用のツールサポートを備えています。 エラーのハイライト、コード補完、ナビゲーション、リファクタリングなどのすべてのコード編集機能が、3つのIDEすべてでご利用いただけます。 私たちはコマーシャルツールとの高度な統合と機能に取り組んでいきます。

Ktor 1.0 ベータ

Ktorはコルーチンを使用してHTTPスタック全体を完全に非同期的に実装するアプリケーションフレームワークで、ベータ版をリリースしました。ktor.io でご利用いただけます。

その他の改善

これまでにご紹介したものすべてに加えて、このリリースには次のような機能と改善点が追加されています:

詳細は当社のWhat’s New ページでご参照ください。 変更ログはこちらで確認できます。 互換ガイドはこちらです。

KotlinConf

1.3リリースに関する最も熱い話題をカバーする、KotlinConf 2018の全動画を公開しました。 オープニングの基調講演とセッションの録画を観て、新機能や注目すべき点をご確認ください:

KotlinConf 2018の他の動画はJetBrains TVで

Kotlinを学ぶ

私たちはKotlinを簡単に、そして楽しく学べるように、全力を尽くしています。 利用可能な多数のリソースの中でも、特にこれらをハイライトしたいです:

  • Svetlana Isakova と Andrey Breslav による新しいコースが、Courseraで始まります。
  • Bruce Eckel と Svetlana Isakova による初心者向けの本、Atomic Kotlinが早期アクセスで公開されています。
  • 新しいplay.kotl.inミニウェブIDEには、Koans、例、埋め込み可能なコードスニペットがあります
  • EduTools プラグインは、IDEで直接Kotlinを学習するのに役立ちます
  • 認定Kotlinトレーニングが、世界中の複数のプロバイダからご利用いただけます。

Kotlin 1.3ウェビナーは、素晴らしいスタート地点になります。

アップグレード方法

いつものように、play.kotl.inKotlinをオンラインで試すことができます。

  • Maven、Gradle、npmでは:コンパイラと標準ライブラリ用のバージョン番号として1.3.0を使用します。 ドキュメントをこちらでご参照ください。
  • IntelliJ IDEAでは:2018.3にはKotlin 1.3がバンドルされています。以前のバージョンでは、Kotlinプラグインをバージョン1.3をインストールまたはアップグレードしてください。
  • Android Studioでは:Plugin Manager を使用してプラグインをインストールまたはアップグレードしてください。
  • Eclipseでは:Marketplace を使用してプラグインをインストールできます。
  • コマンドラインコンパイラは、Githubリリースページからダウンロードできます。

Let’s Kotlin!

P.S. このブログ記事については RedditHacker News、または下の欄でコメントを残すことができます。

[原文Original post in English is written by Roman Belov

Posted in Kotlin, お知らせ | Leave a comment

YouTrack 2018.3リリース!

YouTrack 2018.3 がリリースされました!

C2vePnxg

新機能

  • 新しいビジュアルデザイン
  • プロジェクト概要ページ
  • 選択メニューのユーザー用グループロゴ
  • ワークフローでの変更時のルールに対する課題条件の削除
  • テキスト用の補足フィールド
  • Google Appsの埋め込みコンテンツ
  • YouTrack InCloud用のYouTrack Mobileのプッシュ通知
  • Jenkinsの統合
  • 二要素認証
  • アプリケーションのパスワード
  • グローバルパスワード変更リクエスト

アップデートとエンハンスメント:

  • リンクされた課題用のプレゼンテーションの再設計
  • 1日あたりの時間に対する期間値
  • お気に入りのダッシュボード用のカスタムオーダー
  • 類似課題の検索アクション
  • 新しいREST API
  • アクセスインターフェイスのアップデート
  • アクセストークンのタイムアウト

新しいビジュアルデザイン

YouTrack 2018.3のデザインが更新されました! 課題をより直感的に管理できるように、コントロールを再設計し、テーマを洗練させました。
先日私たちは、実験的機能の一部として、課題の作成と課題の表示ページ用の新しいデザインを発表しました。 当社のユーザーからご意見を頂戴し、公開前にページの機能を向上させることができました。 このリリースから、この新しいデザインはデフォルトで有効になりました。

Ring_UI

新しいテーマには、最新バージョンのJetBrainsウェブベースの製品、Ring UI用のライブラリのコンポーネントが使用されています。 このライブラリの標準コンポーネントを使用することで、YouTrackをご使用の際に、より一貫した、予測可能な動作が得られます。

プロジェクト概要ページ

新しいプロジェクト概要ページでは、プロジェクトに関連する情報をより簡単に表示できます。 また、各プロジェクトのランディングページあるいはホームベースとしても使えます。

プロジェクト_概要

これらのページにはプロジェクトの説明が表示され、プロジェクト設定への直接リンクが提供されています。 また、ダッシュボードのようなインターフェイスも用意され、そこで、プロジェクト内のアクティビティを監視できるウィジェットを追加できます。

選択メニューのユーザー用グループロゴ

ドロップダウンリストからユーザーを選択するオプションが表示されるところでは、ユーザーの画像がグループロゴとともに表示されます。 これには、課題とコメント表示のセレクタ、@mentionsとコマンドのサジェスト、ウォッチャー、および担当者が含まれます。 グループにアイコンを追加すると、ユーザーをグループごとにすばやく区別できます。

グループ_ロゴ

ワークフローでの変更時のルールに対する課題条件の削除

変更時ルール用の新しいrunOnプロパティでは、課題の更新、削除、またはその両方を行ったときにワークフローをトリガするかどうかを指定できます。 この条件を使用すると、重要な課題を誤って削除するのを防止するルールをスクリプト化できます。

テキスト用の補足フィールド

YouTrackは、Markdownでフォーマットされたテキストとしてデータを保存する、補足フィールドをサポートするようになりました。 この型を持つフィールドは、課題の説明のすぐ下に表示されます。 専用の入力フ​​ィールドを作成すると、課題の説明を超えた情報を分類できます。

テキスト_フィールド

条件付きカスタムフィールド機能と一緒に使用すると、さまざまな条件に役立つ情報を追加できます。 例えば、課題タイプのバグについて、バグを再現する手順を説明する補足フィールドを表示できます。

Google Appsの埋め込みコンテンツ

Google Appsのコンテンツを埋め込むことができるようになりました。 サポートされているアプリには、ドキュメント、スプレッドシート、スライド、フォームなどがあります。 コンテンツはウェブに公開する必要があります。 これにより、インターネット上で誰でもコンテンツが見られます。 貴組織の他のメンバーの方とファイルを共有しても、コンテンツはウェブに公開されません。 課題が公開されている場合、そのコンテンツは誰でも見られることにご注意ください。

埋め込み_google

YouTrack InCloud用のYouTrack Mobileのプッシュ通知

クラウド版のYouTrackをご使用の場合、YouTrack Mobileアプリでプッシュ通知を有効にできるようになりました。アカウント用に生成された通知はすべて、接続されたモバイル端末に直接表示されます。

Jenkinsの統合

Jenkinsとの新しい統合がYouTrackに直接組み込まれ、設定の準備が整っています。 Jenkinsからビルド番号を引き出し、YouTrackで課題用の修正バージョンを設定し、コミットで課題をメンションし、コミットメッセージのコマンドで課題を更新します。

Jenkins

二要素認証

お客様のアカウントに、ニ要素認証のサポートを直接構築しました。 モバイル端末で、お客様のアカウントをID確認アプリとペアリングし、セキュリティ層を追加してください。

2要素

アプリケーションのパスワード

ニ要素認証をサポートしていない第三者サービスとの接続の維持をサポートするために、アプリケーションパスワードのサポートも追加しました。 これらのランダムに生成されたパスワードを使用して、Hubアカウントにアクセスするための権限を、アプリまたは端末に与えてください。

アプリケーション_パスワード

グローバルパスワード変更リクエスト

認証モジュールの新しいアクションにより、管理者は、すべてのユーザーが自分のアカウントに対してパスワードを変更するようにリクエストできます。 悪意のあるユーザーが不正アクセスを取得したと思われる場合、この機能を使用してインストールを安全に保ちます。

パスワード_変更_リクエスト

更新とエンハンスメント

リンクされた課題用のプレゼンテーションの再設計

課題リンク用の更新されたインターフェイスにより、他の課題へのリンクをすばやく追加し、現在の課題にリンクされている課題のコレクションを参照できます。 リンクされている各課題の投票数とコメント数を監視したり、投票したり、確認したりできます。

リンク_課題

1日あたりの時間に対する期間値

1日あたりの時間に対するグローバルタイムトラッキング設定では、整数ではなく期間値が保存されるようになりました。 これにより、 “7h30m”のような値を使用して作業日を定義し、それに応じて経過時間を計算できます。

期間_値

お気に入りのダッシュボード用のカスタムオーダー

お気に入りのダッシュボードのリストにカスタムオーダーを適用できるようになりました。 ダッシュボードを目的の順序で配置し、それらを論理的な順序で閲覧します。

ダッシュボード_並べ替え

類似課題の検索アクション

現在の課題と似ている課題リストを、課題ツールバーの単一の課題ビューで開けるようになりました。 これは、以前の課題ビューの類似課題タブでサポートされていた機能の複製です。

類似_課題

新しいREST API

現在のバージョンのREST APIでサポートされているエンドポイントコレクション用のドキュメントを公開しました。これらのエンドポイントは、プログラムで課題を更新するための最も一般的な方法をカバーしています。

アクセスインターフェイスの更新

プロジェクトのプロファイルに専用のアクセスタブを追加しました。 このビューを使用すると、プロジェクトチームのメンバーに付与されたアクセス権を超えて、プロジェクト内のユーザーおよびグループに割り当てられているロールをより正確に把握できます。 また、1ページでアクセス権を取り消すことができるすべての操作に直接アクセスもできます。

アクセス

更新されたレイアウトは、ユーザーとグループのロールタブにも適用されています。

アクセストークンのタイムアウト

認証モジュール用の新しい設定では、アクセストークンの最大有効期間を指定できます。 この設定を使用すると、悪意のあるユーザーがアプリケーションにアクセスできる時間を制限できます。

トークン_タイムアウト

廃止された機能

このリリースでは、いくつかの機能のサポートを廃止しています。

新規および単一課題用の古いビュー

新規および単一課題用の新しいバージョンをリリースしたため、新規および単一課題用の古いビューを使用するオプションが、ユーザープロファイル設定から削除されました。

YouTrackワークフローエディタの新しいワークフロー

以前に発表したように、外部のYouTrackワークフローエディタで作成された新しいワークフローはサポートされなくなりました。 2019年の最初のYouTrackリリースを通じて、このエディタで書かれたワークフローを引き続きサポートいたします。 その時点以降は、JavaScriptのワークフローのみをサポートします。 まだ古いワークフローをご使用の場合は、できるだけ早くJavaScriptで書き直すことをお勧めします。 詳細については、古いワークフローをJavaScriptに変換をご参照ください。

古いYouTrack REST API

最新のREST API用のエンドポイントの最初の公開をもって、以前のバージョンを非推奨し始めます。 以前のAPIでサポートされていたエンドポイント用の新しいバージョンを公開次第、旧バージョンは正式に廃止される予定です。

新しいAPIでサポートされていないエンドポイントをご使用の場合は、当社のSlackのYouTrackコミュニティに参加し、取り組んでいるものをお知らせください。

YouTrack 2018.3をぜひお試しください!

今すぐダウンロード

フィードバックも大歓迎です!以下のコメント欄からお気軽にお知らせください。

このリリースの詳細については、リリースノートをご参照ください。 新機能の設定の詳細については、最新のドキュメントをご参照ください。

クラウドでYouTrackをご使用の場合は、当社のメンテナンスカレンダーに従って、あなたのインスタンスは自動的に最新バージョンにアップグレードされます。

[原文Original post in English is written by Natasha Katson

Posted in YouTrack, お知らせ | Leave a comment

最近始めた人、これから始めたい人向けJetBrains製品関連の情報源(2018年10月版)

こんにちは。JetBrains堀岡です。

「JetBrains製品、最近色んなところで採用されてるらしいというビッグウェーブに乗ってみたものの、周りに気軽に質問できる知り合いも無く、イマイチ使い方が分からない。どこかにまとまった情報源が無いのか。。。」とお困りの方を時折SNS等を拝見します。ということで今回は入社4ヶ月のわたくしが僭越ながらJetBrains製品関連の情報源を紹介させていただきます。※長文ですので時間のある時にご覧ください。
JB_JapanTeam_03

公式サイト(英語)

https://www.jetbrains.com/support/ がJetBrains製品の公式サポートページです。

ここから、製品ごとのオンラインヘルプ(マニュアル)や、テクニカルサポート等にアクセスすることができます。ポイントとしてお伝えしたいことは

  • 有償版のJetBrains製品には本サイト経由での24時間対応のテクニカルサポートがついています(ただし現在対応言語は英語のみ)
  • インターネット上には様々な情報がありますが、迷った時は公式サポートサイトを一次情報元としてご利用ください

ということで、初めにJetBrains公式サポートサイトの歩き方を簡単にご紹介します。

例えば、IntelliJ IDEAを選択すると、

support_all

IntelliJ IDEAのサポートページに移動します。

IDEAsupport

最初の4つが重要なのですが、簡単に説明すると、

  • Issue Tracker – 既に報告済みのBugやFeature(機能追加要望)チケット確認に使用
  • Submit a Request – 新規にバグや使い方の問い合わせチケット作成に使用
  • Community Forum – IntelliJ Community Edition(無償版)ユーザの問い合わせ先、上記チケットにする以前にオープンな場でのディスカッションに使用
  • Documentation – 英語版オンラインヘルプ(マニュアル)

となります。以下、Issue TrackerSubmit a Requestについて少し解説します。

Issue Tracker

JetBrainsではIssue Tracker(JiraとかRedmineに相当するツール)として、自社製品のYouTrack(実は日本語UIもサポートしています)を使用しています。不明なエラーメッセージや、バグと思われる動作に遭遇したり、こんな機能が欲しい!と思った時に既に同じチケットが存在しているか、エラーメッセージや機能を検索することで、確認することができます。

既存チケットの検索や閲覧はYouTrackにログインしなくても使えるようになっています。後述するVote機能(チケットの優先順位があげるための投票機能)にはログインが必要です。画面右上の”Log in…”から登録をお願いします。

YT1

チケットをクリックすると、各チケットの詳細(種類、ステータス、修正バージョン等)を見ることができます。画面真ん中の「いいね風ボタン(親指アイコン)」からチケットの優先順位を高めるためのvote(投票)を行うことができます

YTDetail

Submit a Request

「これまで報告されていないバグを踏んでしまったっぽいので調査と修正を依頼したい(Bug Report)」とか「こんな時どう使えばよい?(How to ?)」という質問、「こんな機能があったら嬉しい(Suggestion)」という要望がある場合、Submit a Requestフォームにリクエスト内容を入力し、ご連絡ください。(ケースバイケースですが)クリティカルなバグへの対応は、私が入社後観察している限りでは、数日から数週間で対応されており、私がこれまで関わってきた開発ツール系製品の中では、レスポンスは控えめに言ってダントツに早くさすが世界中で使われている商用IDEであると思います。

ということで、不運にもバグに遭遇した方は、Twitterで不満を呟いてもらっても構いませんが、Submit a Requestから再現環境の詳細や再現コードあわせてご連絡いただくとサポートチームから確実に支援が得られると思います。

SubmitRequest

さて英語の話はもう十分と思ったあなた、次からは日本語の情報源です。

日本語オンラインヘルプ

株式会社WillBrains様に運営いただいているJetBrainsオンラインヘルプの日本語版です。

英語版公式サイトの翻訳版なので、基本的な使い方から、Docker連携まで様々な情報が利用可能です。先日以下の記事でもご紹介しました。

pleiades.io – JetBrains製品向け日本語版オンラインヘルプのご紹介

IntelliJ_JP

JetBrains日本総代理店 株式会社サムライズム様による英語版公式サイトの抄訳記事です。製品のアクティベーションや組織でのライセンスの管理、ライセンスサーバの導入など、主にライセンス管理や運用でつまずきやすいポイントを公式サイトの翻訳にとどまらず加筆修正を加え詳しく説明しています。

samuraism_support

日本語の書籍

後述するJetBrains製品トレーニングの元にもなってる日本語書籍です。JetBrains日本総代理店である株式会社サムライズム社長の山本裕介さん(@yusuke)と、IntelliJの事なら何でも知ご存知の今井 勝信さん(@masanobuimai)共著で、IntelliJ IDEAを普段から使いこなしているお二方ならでは情報が得られる入門書であると思います。

こちらはAndroid Studioの書籍ですが、Android StudioのベースになっているIntelliJでも使える機能も沢山紹介されています。@masanobuimaiさんしか知らないような設定が500ページ以上にわたり丁寧に解説してあるので、電子書籍で購入して、知りたいトピックを重点的にマスターするように使うのが良いのではと思います。

トレーニング

株式会社サムライズム様によるトレーニングです。前述の「IntelliJ IDEAハンズオン」の著者の一人でもある社長の山本さん(@yusuke)直伝のハンズオン形式で、便利なショートカットやプラグインの利用方法を学ぶことができるので、IntelliJ IDEAやその他IDE製品の脱初級者を目指す方、効率的に使いこなしたい方に是非受けていただきたいトレーニングです。

また、ご要望に応じてお客様オフィスでのオンサイト、またはオンラインで個別にトレーニングを実施可能であるとのことです。ご興味がある方はsales@samuraism.comまでお問い合わせください。

オンライン学習サイトSchoo(スクー)上で利用可能な、株式会社カサレアル様によるオンライントレーニングです。利用のためには、Schooの会員登録と980円 /月のプレミアムプラン契約が必要です。3時間でIntelliJ IDEAの代表的な機能を知ることができるので、日本語の説明の動画を見ながらIntelliJ の初歩をマスターしたい方におすすめです。途中でデバッガーが止まらないというハプニングもありますが、講師の王子先生がしみじみ語ってくれる様子が面白く飽きないです。

その他

IDE名+技術トピック(例えば “phpstorm docker”)等でインターネット検索いただくと、日本語の有用な記事が見つかると思いますが、まとまった情報源として以下のサイトなども参考になるのではと思います。

  • はてなブックマーク ”JetBrains”などのキーワードで検索してみて、どのサイトが多くブックマークされているか知ることができます。
  • Qiita IDE名で検索すると沢山の記事が見つかります。わたしも先日初めて英語のブログを参考にCLion+Makefileの記事を書いてみました。

まとめ

公式サイト(英語)の使い方から、各種日本語情報源まで紹介させていただきました。公式情報が英語中心の現在において、ユーザの皆さん発信の日本語による情報発信、JetBrainsとして非常にありがたく思います。今後も継続的に情報源のアップデートをしていきたいと思いますので、皆さんのオススメ等あれば共有してください!

Posted in お知らせ | Leave a comment

pleiades.io – JetBrains製品向け日本語版オンラインヘルプのご紹介

こんにちはJetBrains堀岡です。

「JetBrainsのIDEは良いって評判聞くけど、UIやドキュメントが英語しかないって所がイマイチやな。。。」と思っている皆様、株式会社WillBrains様が運営しているJetBrainsオンラインヘルプ日本語サイト https://pleiades.io/ をご存知でしょうか?

pleiades

WillBrains様とJetBrains

JetBrainsは、WillBrains様と以前は販売代理店として協業しておりましたが、2018年10月よりローカライゼーションパートナー契約を締結し、新しい形で協業を開始させて頂くことになりました。

このローカライゼーションパートナー契約により、JetBrainsはWillBrains様が提供するJetBrains製品日本語オンラインヘルプサイト https://pleiades.io/ の運営を支援し、日本のJetBrainsユーザの皆様に対して、より良いJetBrains製品利用環境の提供を行います。

WillBrains様は今回の発表以前から、代理店業務の傍ら https://pleiades.io/ を運営されておりましたが、本契約締結により、JetBrainsとしてWillBrains様のローカライゼーション活動を正式にバックアップさせていただき、多くの皆様に https://pleiades.io/ をご活用いただきたいと考えております。

WillBrains様とJava IDEの日本語化

ご存知のかたも多いと思いますが、WillBrainsの柏原さん(@cypher256)は、Pleiades – Eclipse プラグイン日本語化プラグインの開発者でもあり、(私も含めて)EclipseでJavaプログラミングを覚えた世代は、柏原さんの日本語化活動の成果から、非常に大きな恩恵を受けているのではないかと思います(また、今回のパートナーシップの範囲外となりますが、JetBrains IDEの日本語化プラグインの開発もされています)。

一方で、先日実施したJetBrainsユーザへのアンケートの結果では、日本語による公式ドキュメントの提供は、第2位の要望でした(第1位はさらなる日本語による技術情報の提供)。したがって、今回のIDEの日本語化分野で実績のあるWillBrains柏原さんとのローカライゼーションにおける協業開始は、日本の皆様のJetBrains製品におけるユーザー体験を向上させ、より多くの皆様にJetBrains製品をお使い頂くための重要なステップの1つであり、JetBrains Japan Teamのメンバーとして嬉しく思っています。

2018年10月以降追加されたコンテンツのご紹介

柏原さんのTwitter(@cypher256)でも紹介されておりますが、10月のパートナーシップ開始以降、新たに

ReSharper Ultimateに含まれる以下の製品の日本語マニュアル

および、

が追加されております。既にReSharper UltimateGoLandをお使いの皆様、これから使おうと思われている皆様、ぜひご覧ください。

日本語オンラインヘルプへのフィードバック

また今回のパートナーシップ開始により、https://github.com/cypher256/pleiades.io にて日本語オンラインヘルプに対するフィードバックの受付を開始しました。

フィードバックへの対応はベストエフォート方式となりますが、皆様からのフィードバックをお待ちしております。

おわりに

JetBrains製品のように、海外発の製品を使う場合、英語のドキュメントが読めるということは非常に大事ですが、日本語ドキュメントがあると、時間があまり無い時に流し読みできるというのは非常にありがたいです。

また、会社単位や部門、チーム単位でJetBrains製品を導入する場合に、英語が不得意なメンバーをケアしないといけないこともあったかと思いますが、今回日本語オンラインヘルプがJetBrains支援のもと公式に提供されることで、会社内でのJetBrains製品利用の提案や展開がより容易になったのではと思います。

ということで https://pleiades.io/  より多くの皆様に使っていただけると嬉しいです。

ご案内

2018年11月20日(火)午後6時より、JetBrainsの本社メンバーや日本における第一人者からベストプラクティスや最先端の現場からのユーザ事例を知ることができる貴重なイベントJetBrains Night Tokyo 2018を開催します。こちらで引き続きお申込み受付中です!
JB_Night_WS1 (1)

Posted in お知らせ | Leave a comment

便利なJetBrains Toolbox App、お使いですか?

こんにちは。JetBrainsの堀岡です。

先日自己紹介して以来、間が空いてしまい、そろそろインフルエンザの予防接種の季節になってしまいました。なんとか試用期間も終え、営業に関することは完全に理解したので、日本語ブログも書かなくてはと思っておりました。

ということで、今日はJetBrains歴が長い方でも実は使っていない人もいる、便利なJetBrains Toolbox Appをチョットご紹介したいと思います。

800x209_toolbox@2x-1

JetBrains Toolbox Appとは

ひとことで言うと、JetBrainsのToolbox製品(=IDE製品)の起動、インストール、更新および設定を一元管理するための無料のソフトウェアです。

こちらからダウンロード可能です。

以下、代表的な機能を紹介していきます。

新バージョンの通知とインストール

JetBrainsのIDEは様々なライブラリやフレームワーク、プログラム実行環境をサポートしながら日々進化しています。メジャーリリースは年に3回、バグフィクスを含む、マイナーアップデートは数週間に1回リリースされますので、気持ち良く利用するためには、常に最新バージョンの利用をお勧めしています。

一方で、新バージョンのリリースを見落としていたり、忙しい時はバージョンアップを後回しにしてしまった結果、最新バージョンでは修正済みのバグで悩んでしまったり、便利な最新機能を使う機会を逃してしまうことは少なくはないと思います。

ToolBox Appを使うと、お使いのJetBrains  IDE製品の新バージョンが利用可能になるとToolBox内でToolsタブ内で通知され、UpdateボタンまたはUpdate allリンクのワンクリックでバージョンアップが可能になります。リリースノート(What’s new)へのリンクも提供されるので、新バージョンの内容を確認してからバージョンアップということもできます。

Toolbox1

複数のバージョンおよびEAP(Early Access Program)の管理

残念ながら、あなたを幸せにしてくれるはずの新バージョンが不幸を呼んでしまうことも起こりえます(バージョンしたら動かなくなった等)。そんなときも安心。ToolBox Appなら、Roll Back to <version> からワンクリックで1つ前のバージョンにロールバックする(古いバージョンに戻す)ことができます。

Toolbox2

リリース前の新機能を試してみたいという冒険好きのあなたや、正式リリースまでBug fixを待てないというお困りのあなたのために、EAP(ベータ版)もワンクリックでインストールしてお試しいただくこともできます。

Toolbox3

EAPバージョンをインストールすると、インストール済みIDE一覧にEAPマーク付きのIDEアイコンが表示されます。

Toolbox6

一元化されたJetBrains IDEの起動とプロジェクト管理

最近では、モバイルアプリやデバイス側とサーバーサイドを一人で担当し、複数のプログラミング言語を用いて開発したり、勉強会等に参加して、チュートリアルを自分で試してみたり、複数のツールを用いて複数のコードベースで作業する方も少なくないと思います。

「この前PHPで試したあのコード、どこにあったっけ。。。えっとJavaのコードは。。。」なんてことは無いでしょうか?私は物忘れが激しいのでよくあります。でもToolbox Appを使っていれば、前述のToolsタブからインストール済みのIDEを起動することはもちろん、 Projects タブから以下のようにインストール済みのすべてのIDEで使用したプロジェクト一覧を表示することが、(複数のIDEバージョンがインストールされている場合)IDEのバージョンを指定してプロジェクトを開くことができます。

Toolbox4

各種設定の一元管理

比較的規模の大きいプロジェクトで開発していて、IDEの動作がもっさりしている時は、IDEが使うJava heap sizeを大きく割り当てるとパフォーマンスが改善することがあります。IDEからも設定できますが、Toolboxのインストール済みIDEの Settings メニューからMaximum heap size で値を設定することができます。複数のバージョンや複数のIDEをお使いのあなたにとっては、こちらからの設定が便利なはずです。

その他にも、pleiadesで公開されている日本語化プラグインを使う時などに必要となる、IDEが使用するvmoptionsファイルの編集Java Virtual Machine OptionsEditボタンから呼び出すことができるます。聞いたところによると、日本語化プラグイン利用時のトラブルの一番の原因はvmoptionsファイルの設定ミスらしいので、Toolboxから設定できるということを覚えておくとハードルが下がるのではと個人的には思います。

Toolbox5

リンク

おわりに

日々進化し続けるJetBrains製品を快適に使う上でToolboxがどのように役立つかご紹介しました。Toolboxの機能とメリットを少しでも感じていただけたら幸いです。

宣伝(その1)

Toolboxの画面をみて、JetBrains IDEのAll Products Pack (全部入り)を揃えてみたくなった方は弊社ウェブサイト(企業向け個人向け)または、日本国内代理店様にご連絡ください。既にお支払いのサブスクリプション金額からの差額でアップグレードが可能です。オフィスでも勉強会でも、全部入り状態のJetBrains Toolbox Appは、あなたのフルスタックぶりやプログラミングに対する意識の高さをエレガントにアピールするためには最適です。

Posted in ToolBox | Leave a comment

KotlinConf 2018 ライブストリーミング:Kotlinに関する主なニュースとオンライン Q&A

世界中の多くのテクノロジーイベントで JetBrains チームと会うことができます。 今日、私たちは特別なものを用意しました。自宅から、KotlinConf 2018 Live でKotlinチームに会うチャンスです!

あなたを私たちのオンラインイベントにご招待いたします!

10月4日~5日のライブストリームにご参加ください。 Andrey Breslav の基調講演で、Kotlinに登場する新しいことについて学び、KotlinConf 2018クロージングパネルで、Kotlinチームとコミュニティのリーダーに質問をすることができます。

blogpost_916x506のコピー

Andrey Breslavによる基調講演でイベントを開始します。 この基調講演をお見逃さないように、ご登録ください。中継を開始する直前にリマインダーを送ります。

KotlinConf Live に登録

Liveトラックでは、JetBrains チームのリーダーだけでなく、エコシステムの作成者と貢献者、Kotlinコミュニティの熱いファンの方々による講演もございます。 Jake Wharton、Christina Lee、Venkat Subramaniam、Alicia Karr のセッションもお楽しみいただけます。 KotlinConf 2018の1日目2日目のライブトークプログラムをご確認ください。

イベントの最終セッションであるクロージングパネルにぜひご参加ください。出席者様と、オンラインで質問をご投稿された方々のご質問等にお答えいたします。 クロージングパネルにご質問いただくには、ハッシュタグ #kc18ask を使用して Twitter にご投稿ください。 ご質問の投稿は今すぐ可能で、10月5日 5:15 CEST(中央ヨーロッパ夏時間 )、日本時間 12:15 までできます。

KotlinConf 2018は、JetBrains と Trifork 社が主催する2回目のKotlinカンファレンスです。 昨年、このイベントはサンフランシスコで開催され、1000人以上の熱心な出席者様と50人の講演者様にお集まりいただきました。 昨年の様子をご覧ください。

私たちの YouTube チャンネルで、KotlinConf 2017のセッション 録画もご確認いただけます。

Posted in Kotlin, お知らせ | Leave a comment

GoLand 2018.2で次のレベルへGo!

GoLand 2018.2 リリースです。

このメジャーアップデートには、Go modules(Go モジュール、vgoとしても知られている)のサポート、強化された Move リファクタリング、新しいクイックフィックス、Postfix Completion と Intention Actions ファミリーへのさまざまな追加、そしてアップグレードされたデバッガなどの新機能が含まれています。 GoLand 2018.2 では、VCSとの作業が改善され、フロントエンド関連のアップデートや Touch Barのサポートなど、最新の IntelliJ プラットフォームリリースから多くの機能が組み込まれています。

800x400_blog@2x

こちらをクリックしてGoLand 2018.2をダウンロードするか、このままリリースのハイライトをお読みください。

  • goモジュール(vgo)との統合。
  • Move リファクタリングには、識別子が必要かどうかを示す新しいダイアログと、パッケージ間でシンボルを移動する機能が追加されました。
  • Convert to expected type (期待される型に変換) という新しいクイックフィックスは、言語が許す限り、値を目的の型に変換します。
  • 新しい Implement missing methods クイックフィックスを使用すると、予想される型がインターフェースである場合に欠落したメソッドを簡単に追加できます。
  • Implement Methods アクションは、メソッドをインターフェースから選択したタイプに追加するだけでなく、すぐにそのタイプを作成することもできます。
  • 新しいインテンションアクション:
    • Add dot import alias を使用すると、インポートにドットエイリアスをすばやく追加して、エクスポートされたすべてのシンボルを修飾子なしで使用できるようにします。 逆に、Remove dot import alias は、パッケージ名の使用に戻ります。
    • Introduce local variable は、値を返す関数 ・メソッド呼び出しの変数を追加可能。
  • 新しいPostfix Completionテンプレート:
    • .sort テンプレートは、配列式またはスライス式を変換し、要素タイプに基づいて適切なソート方法を前置します。
    • .rrテンプレートは、すでに利用可能な2つのテンプレート .rre.rrvの力を組み合わせています。
  • 特定のprefixで始まるアノテーションの先頭スペースを無効にする新しいオプションが追加されました:Settings | Editor | Code Style | Go | Other で Add leading space to comment 。
  • デバッガはsuspendしないブレークポイントおよび、配列、マップ、スライスの遅延読み込みをサポートしています。また、ディープネストしたマップをサポートします。さらに、マップとスライスでキーと値のペアをより分かりやすく表示します。
  • ツール:
    • ファイルウォッチャー は、IDE設定で設定済みの File Watchers を保存し、Projectと Global オプションを使用してプロジェクト間で共有できます。
    • Dockerプラグインは、実行コンフィギュレーションで新しいランタイムコマンドラインオプションをいくつか認識するようになり、また、dockerfile用のDockerビルドコマンドを実行するためのベースディレクトリを指定するオプションが追加されました。
  • バージョン管理システム:
    • 新しいMerge Conflictsノードは、各チェンジリストのマージコンフリクトを含むファイルをグループ化し、それらをもっと見つけやすくしました。
    • Log タブの改善。
    • Git 用のプッシュダイアログをスキップする新しいオプション。
    • 複数のGitHubアカウントをサポート。
  • ユーザーインターフェース:
    • Touch Barのサポート。
    • 新しいオプション:Use dark window headers (ダークウィンドウヘッダーを使用する)。
    • IDEツールバーとツールウィンドウの新しいアイコン。
  • JavaScript & TypeScript:
    • TypeScript 2.9およびTypeScript 3.0リリースのサポート。
    • 新しいインテンション:implement interface、Create derived class、Implement members of an interface or abstract class、Generate cases for ‘switch’、Iterate with ‘for..of’。
    • 新しいコードカバレッジ機能を使用して、プロジェクト内の未使用コードを検索できます。

すべての新機能を確認するには、What’s New ページをご覧ください。

GoLand または All Products Pack の有効なサブスクリプションをお持ちの方は、ダウンロードページまたは Toolbox App を使用して、GoLand 2018.2までアップグレードできます。

まだご利用でない方は無料の30日間体験版をぜひお試しください!

[原文] Original text in English is written by Ekaterina Zharova

Posted in GoLand, お知らせ | Leave a comment