Slide 1

Slide 1 text

"TZODͰ ඇಉظॲཧΛ গָ͚ͩ͠ʹॻ͘ @tascript e-ZUKA Tech Night

Slide 2

Slide 2 text

;͋Έ 森田 亘(たすくん@tascript) GMOペパボエンジニア Nuxt、Vue、TypeScript

Slide 3

Slide 3 text

3VCZͰ ඇಉظॲཧΛॻ͖͍ͨ

Slide 4

Slide 4 text

બ୒ࢶ Thread(並列処理) Fiber(並行処理) fork(プロセスの複製) etc…

Slide 5

Slide 5 text

ߟྀ͢΂͖఺ I/O待ちによるGVL(Giant VM lock)の解放 スレッドセーフなのか プリエンプティブ/ノンプリエンティブによるコンテキストスイッチ スレッドの増加によるコードの複雑化

Slide 6

Slide 6 text

Ԟ͕ਂ͍

Slide 7

Slide 7 text

ߟ͑Δ͜ͱ͕ଟ͘ͳΔ

Slide 8

Slide 8 text

"TZODͰ ඇಉظॲཧΛ ޮ཰తʹॻ͚Δ

Slide 9

Slide 9 text

"TZOD 非同期I/Oのフレームワーク 内部ではFiberを使用 JavaScriptのasync/awaitっぽい 簡潔なシンタックスで非同期処理が実装可能

Slide 10

Slide 10 text

'JCFS ノンプリエンプティブな軽量スレッド 親子関係のスレッドを作成 親子間でコンテキストスイッチ コルーチンに近い ਌ ࢠ ࣌ؒ

Slide 11

Slide 11 text

جຊతͳૢ࡞ Asyncブロックで非同期処理を宣言 taskメソッド(read、write、sleep) 同期処理と非同期処理が明瞭になる

Slide 12

Slide 12 text

'JCFSͷΈͰ࣮ࢪ 同期処理と非同期処理で関数を変更 DRYとはなにか

Slide 13

Slide 13 text

BTZODBXBJUͬΆ͘ 非同期処理の結果を待機する 結果によって例外処理も書きやすい 同期が必要なポイントが確認しやすい

Slide 14

Slide 14 text

࢖͍ॴ ブロッキングI/Oによるボトルネックの解消 非同期処理のネスト、コールバックが発生し始めた 非同期処理の結果について例外処理を書きたい 非同期処理も簡潔に書きたい