Dart Developer Summit 2016Dartの䞖界からの最新ニュヌス







10月26〜27日に、Dart Developer Summitがミュンヘンで開催されたした。 Googleが2幎連続で開催し、若い蚀語に無関心でない開発者を垞に集めおいたす。







ご存知かもしれたせんが、Wrikeチヌムは新しいAngular 2DartフレヌムワヌクずずもにプロゞェクトでDartを積極的に䜿甚しおいたす。







Wrikeは珟圚、Dartを曞いおいる45人以䞊のフロント゚ンド開発者を雇甚しおおり、コヌドの行数はすでに数十䞇行を超えおいたす。 䌚議は、䞻にDartずAngular 2を䜿甚し始めた人、たたはDartを可胜なオプションずしおのみ怜蚎しおいる人向けに蚭蚈されたしたが、プラットフォヌムの開発に関する盎接のニュヌスを孊び、開発者ずコミュニケヌションをずるこずが重芁でした人の蚀語。







この蚘事では、この䌚議で行われた最も重芁で興味深い、私たちの意芋、発衚、むベントに぀いおお話したす。









角床2





今幎の倏、Angular Dartチヌムは、より最適で慣甚的なダヌトコヌドを蚘述する可胜性や、暙準で「すぐに䜿甚可胜な」フレヌムワヌクの䞀郚の冗長性など、いく぀かの理由でTypeScriptバヌゞョンのAngularからコヌドベヌスを分離するこずを決定したしたDartラむブラリモゞュヌルなど。 このため、このフレヌムワヌクのDartバヌゞョンの公匏リリヌスは、TypeScriptバヌゞョンよりも1か月遅れお行われたした。







その結果、Dart SummitでのAngular 2 Dartの公匏リリヌスは驚きではありたせんでしたが、AngularDartチヌムがリリヌス日に関する玄束を守っおいたずいう事実は、私たちにずっお楜しいものでした。







以䞋は、最近の「AngularDartあなたにずっお最高のAngular」ブログ投皿のAngularDart 2.0開発者ずの短いむンタビュヌの翻蚳です。Dartの公匏ブログに投皿されおいたす 







人々が新しいAngularDart 2.0を詊すべき最も重芁な理由を挙げおいただけたすか







パフォヌマンスの改善。 たた、最近Dart Summitで述べたように、AngularDartの目暙は、開発者に生産性、パフォヌマンス、安定性ずいう3぀の䞻芁な芁玠を提䟛するこずです。















間違いなく、出力サむズず速床の䞡方の面で印象的なパフォヌマンスの改善を瀺したした。 このような短期間でこのような結果を達成できたのはなぜですか







サむズの削枛は、理想的なDartコヌドの生成に焊点を合わせたホワむトスペヌス圧瞮などの簡単に達成可胜な手法翻蚳者のメモたずえば、これらはすべおコヌドからスロヌされたず、リファクタリングによっお動的呌び出しず抜象化レむダヌを削陀するこずにより達成されたした。可胜だった。 実行時のパフォヌマンスを向䞊させるために、厳密な型システムに䟝存し、倉曎を凊理するための新しいモデルを優先しお「ダヌティチェック」を廃止したした。







AngularDart 2.0はそれほど前にリリヌスされおいたせん。 今日䜿甚し始めるのに十分安定しおいるのだろうか あなたは、それがすでに数ヶ月の間生産で䜿われたず蚀いたした。 これはどうしおですか







はい 数か月前からAngularDart 2を䜿甚しおいる䞻芁な補品 AdWordsなど があり、その埌のすべおのパフォヌマンスの向䞊が問題にならないこずを確認するために数千のテストを䜜成しおいたす。







わあ それでは、AngularDart 2の詳现を詊したい、たたは知りたい堎合、どこから始めればいいのでしょうか







2016 Dart Summitでのプレれンテヌションからビデオを芋るこずができたす。 たた、AngularDartの䜿甚を開始するのに圹立぀チュヌトリアルや、 Tedがサミットで話し合った新しいAngularDartコンポヌネントの チュヌトリアルも甚意さ れおいたす 。 そしおもちろん、 angledart.orgでは、 AngulaDartに関する最新情報を芋぀けるこずができたす。







→ 元の蚘事ぞのリンク







匷いモヌド



Dartのストロングタむピングの問題に比范的倚くの泚意が払われたした。 Dart自䜓は完党に静的に型付けされた蚀語ではありたせんが、Dartには完党な型サポヌトず、入力゚ラヌをチェックできる静的アナラむザヌがありたす。 アナラむザヌモヌドの1぀はストロングモヌドで、特にこの゚ラヌを「现心の泚意を払っお」分析したす。







Googleは既に補品をStrong Modeに切り替えおいたす。 これにはいく぀かの理由がありたす。 たず第䞀に、開発者がより倚くのサポヌトされおいるコヌドをリファクタリングし、蚘述しやすくしたす。 ただし、ストロングモヌドを䜿甚する同様に重芁な理由は、コヌドツヌルが型システムに䟝存できるこずです。 したがっお、たずえば、以䞋で説明するDart Dev CompilerDDCを開発するための新しいコンパむラは、より人間が読めるjsコヌドを生成するために型システムに䟝存しおいたす。







このドキュメントでは、ストロングモヌドずは䜕か、なぜストロングモヌドが必芁なのか、たたはDart Summitのレポヌトをご芧ください。









Ddc



Dartの開発むンフラストラクチャを補完するもう1぀の郚分は、Dart Dev CompilerたたはDDCで、これもサミットで議論されたした。 その名前が瀺すように、開発モヌドで䜿甚されるコンパむラです。







珟圚、Dartでの開発には、ブラりザヌでの埌続の䜜業のためにコヌドをすばやく曎新できる仮想マシンがDartiumブラりザヌのみであるずいう事実に関連する特定の䞍䟿さがありたす。 Chromeを含む他のブラりザヌでデバッグを実行する堎合、dart2jsコンパむラヌが䜿甚されたす。 コヌドが倉曎されるたびに、倉曎されたコヌドだけでなくすべおのコヌドをコンパむルしたす。 比范的倧きなコヌドベヌスでは、このアプロヌチは十分に䟿利ではないかもしれたせん。







DDCを䜿甚しお開発する堎合、アプロヌチは倧きく倉わりたす。 たず、GoogleはDDCでの開発を支持しおDartiumのさらなるサポヌトを攟棄する予定です。぀たり、開発されたコヌドは本番コヌドず同じ環境で実行されたす。 最新のブラりザで。 第二に、ストロングモヌドのおかげで、DDCは型システムを信頌し、芖芚的に実質的に元のDartコヌドず倉わらないES6コヌドを生成できるため、デバッグが倧幅に簡玠化されたす。 さらに、ブラりザヌでのDevToolsずの統合を簡玠化したす。







もう1぀の重芁な利点は、DDCがコヌドベヌス党䜓ではなく、コヌドの倉曎された郚分のみを再コンパむルするこずです。 さらに、開発をさらに加速するために、 Webpackなどのモゞュラヌフレヌムワヌクずの統合を実行しお、たずえばホットリロヌドを提䟛できたす。







DDCはdart2jsを眮き換えるのではなく補完するこずに泚意しおください。たもなくすべおのコンパむラdart2js、DDC、vmに1぀のコヌドベヌスが远加されたす 。









JS盞互運甚



新しい蚀語の課題の1぀は、叀いコヌドず察話するこずです。 Webの䞖界では、10億行を超えるコヌドがjsで蚘述されおいたすが、ほずんどの堎合、これはDartで曞き換えられるこずはほずんどありたせん。 そのため、Dartlangチヌムはjsの䞖界ずの盞互䜜甚を改善するために倚倧な努力をしたした。







以前は、Dartの「JSON.stringifya」の単玔な呌び出しは次のようになりたした。







import 'dart:js' as js; var a = { 'value' : 1 }; var str = js.context["JSON"].callMethod("stringify", [a]);
      
      





このアプロヌチでは、タむプをチェックする機胜がなく、「jsの盎感」だけに䟝存する必芁がありたす。







新しい゚ディションでは、この問題の解決策ははるかに簡単に芋えたす。







 import "package:js/js.dart"; @JS("JSON.stringify") external String stringify(obj); var a = { 'value' : 1 }; var str = stringify(a);
      
      





さらに、jsず察話する前に、Map型のオブゞェクトを䜜成する必芁がありたした。







 var jsObj = new JsObject.jsify({'value':1}); jsMethod(jsObj);
      
      





もちろん、この状況では、型チェックに䟝存できたせんでした。なぜなら、 Mapのすべおのタむプキヌず倀の䞡方は動的でした。







新しい゚ディションでは、すべおがより透明に芋えたす。







 @JS() @anonymous class Options { external int get value; external factory Options({bool value}); } var jsObj = new Options(value: 1); jsMethod(jsObj);
      
      





そのため、オブゞェクトのフィヌルドずそのタむプを完党に制埡できたす。







構文ず新しいアプロヌチの本質に぀いお詳しくは、 こちらをご芧ください 。䌚議のビデオをご芧ください 。









既存の制限 叀いimport 'dartjs'スタむルず新しいimport "packagejs / js.dart"スタむルを混圚させるこずはできたせん。







たた、チヌムはjsコヌドのラッパヌの生成を自動化するために玠晎らしい仕事をしたした。







フラッタヌ



さらに、䌚議では、Dart- Flutterでのモバむル開発の新しいフレヌムワヌクが瀺されたした。 フレヌムワヌク自䜓はただアルファ版ですが、プレれンテヌションは非垞に印象的でした。











このフレヌムワヌクに぀いお詳しく読むこずができるリンクがいく぀かありたす。









ダヌツミヌトアップ



Wrikeでは、Dartに関する知識ず開発を自分のチヌム内ず、プロゞェクトでこの蚀語を䜿甚したい開発者ずの䞡方に広めるこずに倚くの時間を費やしおいたす。 これを行うために、ロシア語のスラックチャンネルを甚意し 、11月30日にサンクトペテルブルクでDartミヌティングを開催したす。 Googleのプロダクトマネヌゞャヌず蚀語開発者が講挔し、JetBrainsの担圓者がDart開発者向けのIntelliJ IDEAの機胜に぀いお話し、私のWrike同僚が他のプログラミング蚀語C、JavaScriptからDart開発ぞのスムヌズな移行の経隓を共有したす。







远加リンク










All Articles