Upload
atsushi-kambara
View
255
Download
1
Embed Size (px)
Citation preview
C++ の template 特殊化的なことを C# でやった話
自己紹介
神原 淳史 (33 歳♂ )@atsukanrockSansan 開発部 部長❤DDD, C#
部長のお仕事
コード書く時間がなかなかない
プロジェクトに入ると足手まとい(velocity 稼げない & 進捗の計算が立たない )
でもコード書きたい
そこで目をつけたのが Sansan.LinqPad
Sansan.LinqPadとは何ぞや
1
Sansan.LinqPad
水平分散 (sharding) されたSansan データベースの全 shard にSQL をぶち込む機能を提供するNuGet private パッケージで、LINQPad 標準装備な Sansan 開発部エンジニアに日々、愛用されている
こんな感じ
プルリク出した2
どりゃ
優しい
目的
伝えたいこだわり
BroadcastResult<TResult> クラスはこう
伝えたいこだわり
BroadcastResultExtensions クラスがこうじゃ…!
どういうことかと言うと
ジェネリック型引数が特定の型の場合のみメソッドを提供するという、C++ における template 特殊化的な発想で、BroadcastResult<TResult> の TResult が
IEnumerable<T> の時だけメソッドを生やすのを、拡張メソッドを使って実現したった話でした(C++ 忘れたので合ってるかどうか微妙ですが )
普通かも…