More Related Content Similar to Server Side Dart (20) Server Side Dart3. About me
My favorite programming languages
• PHP
• JavaScript
• NodeJS
• Go
• Ruby
• Dart <- New!!
8. サーバーサイドもパワフル
• HTTP Server
• WebSocket Server
• Isolate
• Observatory (for profiling)
• Major database drivers (MySQL,Postgres,Redis…)
Server Side Dart
01
15. Isolateによるマルチコア対応
Server Side Dart
01
$ wrk -H 'Host: localhost' -d 15 -c 256 -t 4 http://localhost:8080/
Running 15s test @ http://localhost:8080/
4 threads and 256 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 20.47ms 13.14ms 610.85ms 99.46%
Req/Sec 3.00k 341.77 3.96k 84.93%
173951 requests in 15.00s, 36.00MB read
Socket errors: connect 0, read 249, write 0, timeout 0
Requests/sec: 11595.84
Transfer/sec: 2.40MB
• 1つのコアを使った場合
16. Isolateによるマルチコア対応
Server Side Dart
01
$ wrk -H 'Host: localhost' -d 15 -c 256 -t 4 http://localhost:8080/
Running 15s test @ http://localhost:8080/
4 threads and 256 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 11.41ms 3.07ms 112.37ms 84.89%
Req/Sec 5.42k 772.33 7.30k 77.44%
309725 requests in 15.00s, 64.10MB read
Socket errors: connect 0, read 249, write 0, timeout 0
Requests/sec: 20648.84
Transfer/sec: 4.27MB
• 2つのコアを使った場合(約178%)
21. データベース系pubパッケージ
• MySQL - pub.dartlang.org/packages/sqljocky
• PostgreSQL - pub.dartlang.org/packages/postgresql
• Redis - pub.dartlang.org/packages/redis
• MongoDB - pub.dartlang.org/packages/mongo_dart
• RethinkDB - pub.dartlang.org/packages/rethinkdb
• AMQP - pub.dartlang.org/packages/dart_amqp
Server Side Dart
01
24. Better NodeJS としての Dart
• NodeJSは一世を風靡したサーバーサイドJSプラットフォーム
• リアルタイムWEB(というかWebsocket)の実装に、
非常に適したプラットフォーム
• ただし、NodeJSでの開発は 辛み を伴っている
• Javascriptベースである事がメリットでもあり、デメリットになって
いる(異論は認めます)
vs NodeJS
02
25. Better NodeJS としての Dart
• 一方 Dartは、NodeJSができることは大抵でき、
そのうえでNodeJSを上回る言語仕様、機能、ツールを備えている
• 謎のメモリーリークに悩まされる必要もない
• クライアントサイドのDart->JSのように、コンパイル作業も必要ない
• 型が欲しいからTypeScript使う、といったことも不要
• NodeJSを使うのかio.jsを使うのか悩む必要もない
• パフォーマンスもNodeJSより多少良い
vs NodeJS
02
39. サーバーサイドDartの現在(プロダクト投入状況)
• Dart summit で Moving from Node.js to Dart を発表した
Faisal Abid 氏の所属する Dynamatic社 がリリースした Market
Wolf というAndroidAppのサーバーサイドはDartで書かれているよ
うです。
• ソレ以外だと このサービス とか このサービス もサーバーサイドが
Dartで書かれてるらしいです。
• 少なくともメジャーなサービスでの導入実績は知らないです
(ご存知の方教えてください><
Current and Future
03
40. 現状で趣味アプリ作ってみた感想
• start と shelf を使ってみた感想
• 楽しい と 辛い が半々
• 辛み成分でいうと、出たてのNodeJSみたいな感じ
• 書いてて、とてもキレイに書けるが、アレやコレが無い状態
• オンメモリ以外のセッション管理や、CSRFトークン&認証用のパッ
ケージが見つからず結局自作
• 本当に pub はスカスカなんで、未来に向けて投資し放題
Current and Future
03
44. 将来に向けての期待と希望
• DartSDK Roadmap を見ても、サーバーサイドで関係ありそうなの
は、「HTTP2 + gRPC」くらいですが、現時点で大抵の事は
「dart:io」使えばできますし、dart-ext で(C/C++)拡張すればそれ
こそ夢は無限大な感じだと思ってます。
Current and Future
03