2017-09-15 1 views

答えて

63

コトルリンコルーチンは、生産に使用することができます。それがKotlin 1.1で正式にリリースされた主な理由でした。リリースしたJetBrainsチームは、マイナーリリースで導入された変更が進化するにつれて、バックエンドとの互換性を保ちつつ、人々が複雑なプロダクションアプリケーションで安全に試用できるようにすることを約束しました。

簡潔に言えば、「実験的」と「通常の」機能の違いは、通常のKotlinの機能では、小さな機能の更新で新しい機能を追加できないということです。 (後方互換性の保証のために)削除することはできません。

実験コルーチンは別のkotlin.coroutines.experimentalパッケージ名を使用するため、コルーチンのデザインが確定されてkotlin.coroutinesパッケージに移動すると、古いコンパイル済みコードは破損することはありませんが、別のサポートライブラリで引き続き動作します。

なぜ彼らが「実験的」なのか、これが何を意味するのかについての詳細な説明(長い読書)は、Andrey Breslavによってforum postに見つかるでしょう。

コルーチンサポートライブラリにも同じ質問が適用されます。

現在のバージョンkotlinx.coroutinesは本番用に設計されています。テストではかなりうまくカバーされています。多くのことが既に最適化されています。すべての変更は、以前にコンパイルされたコードとの下位互換性の問題を考慮して行われます。確かに、さまざまなコルーチンベースのもののテストベッドとして機能します。そのため、対応する関数やクラスのドキュメントに「作業中」または「不安定」と明記されている部分があります。ただし、デフォルトでは、kotlinx.coroutinesのパブリックAPIはすべて、安定しているとみなされ、必要に応じて適切な移行支援機能を備えて進化しています。

+1

私が使用している機能について強調表示された警告が表示されても、それでも気になります。 「機能」コルーチンは実験的なものです(詳細はこちらを参照)。https://kotlinlang.org/docs/diagnostics/experimental-coroutines.htmlへのリンク – Elye

+0

これはCatch-22のビットですが、そうではありませんそれ? JetBrainsの「実験的な」機能に関する私の経験は、他の多くのベンダーの「生産品質」リリースの経験をはるかに上回っています。具体的には、コルーチンの実装には全く問題はありませんでした。私が見た唯一の「不具合」は、ランタイムに影響を与えない静的型システムによる処理の詳細です。彼らは非常に深刻なストレステストとHazelcast Jetのベンチマークを通過しました。 –

関連する問題