3. Kouji Matsui – kozy, kekyo
• NAGOYA city, AICHI pref., JP
• Twitter – @kozy_kekyo, @kekyo2 /
Facebook
• Self employed (I’m looking for a job)
• Microsoft Most Valuable Professional VS
and DevTech 2015-
• Certified Scrum master / Scrum product
owner
• Center CLR organizer.
• .NET/C#/F#/IL/metaprogramming or like…
• Bike rider
85. 現実と設計(3) – 頻出パターン
entry Text
Text
Text
entry Text
Text
entry Text
Text
Text
Text
entry Text
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
動きを振り返ってみます
86. 現実と設計(3) – 頻出パターン
entry Text
Text
Text
entry Text
Text
entry Text
Text
Text
Text
entry Text
foreachの2重ループ
逐次実行
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
ChattyなUIへのアクセス
(GUIの場合、ボトルネックになりうる)
87. 現実と設計(3) – 頻出パターン
entry Text
Text
Text
entry Text
Text
entry Text
Text
Text
Text
entry Text
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
entry Text
Text
Text
entry Text
Text
entry Text
Text
Text
Text
entry Text
TextTextText
TextText
TextTextText
Text
Text
TextTextTextTextTextTextText
WriteLine
88. 現実と設計(3) – 頻出パターン
entry Text
Text
Text
entry Text
Text
entry Text
Text
Text
Text
entry Text
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
WriteLine
entry Text
Text
Text
entry Text
Text
entry Text
Text
Text
Text
entry Text
TextTextText
TextText
TextTextText
Text
Text
TextTextTextTextTextTextText
WriteLine
LINQでそれぞれの
Textを集約
Task.WhenAllで
全部の非同期
を集約Task
Task
Task
Task
89. 現実と設計(3) – 頻出パターン
entry Text
Text
Text
entry Text
Text
entry Text
Text
Text
Text
entry Text
TextTextText
TextText
TextTextText
Text
Text
TextTextTextTextTextTextText
WriteLine
Task
Task
Task
Task
内側の処理をそれぞれ独立させて、
相互に依存しないようにします
並列実行性が高まります(安全)
→モデル設計 M-(V-VM)
90. 現実と設計(3) – 頻出パターン
entry Text
Text
Text
entry Text
Text
entry Text
Text
Text
Text
entry Text
TextTextText
TextText
TextTextText
Text
Text
TextTextTextTextTextTextText
WriteLine
全部の非同期処理を集約
するだけ
全部集約されてから、UIにアクセス
裏を返すと全部集約されないと
UIにアクセスできない
(トレードオフ)
104. 追加された要素(2) – 非同期イテレーター
entry Text
Text
Text
entry Text
Text
entry Text
Text
Text
Text
entry Text
TextTextText
TextText
TextTextText
Text
Text
WriteLine
TextTextTextTextTextTextText
105. 追加された要素(2) – 非同期イテレーター
entry Text
Text
Text
entry Text
Text
entry Text
Text
Text
Text
entry Text
TextTextText
TextText
TextTextText
Text
Text
Text
Text
Text
Text
Text
WriteLine
この部分を、データが得られたところ
から逐次実行できないものか…