120418 tokyo node5_lin_qonnodejs
-
Upload
- -
Category
Technology
-
view
376 -
download
7
Transcript of 120418 tokyo node5_lin_qonnodejs
![Page 1: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/1.jpg)
東京Node学園 5時限目 LT @tanaka_733
![Page 2: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/2.jpg)
Twitter: @tanaka_733
お仕事 ◦ Node.js でアプリ書いたり
◦ Javaのライブラリ作ったり
◦ Rubyのコード読んでいじったりしてます
趣味 ◦ Silverlight/Windows Phone 7 アプリ
◦ Kinect 触ったり
◦ というわけで、趣味ではWindowsユーザーです
ブログ: 銀の光と碧い空
2012/04/18 東京Node学園 5時限目 LT
![Page 3: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/3.jpg)
Nodeをまっとうに始めたのが昨年末
boundio を操作するAPI nBoundio を作ったり ◦ REST API1つだけだけど。。。 ◦ https://github.com/tanaka-takayoshi/nBoundio
Linq にpull request 出したり ◦ https://github.com/mihaifm/linq/pull/2
OSコマンドを叩くNodeアプリ作ったり ◦ 微妙にknockout.js 使ってみたり ◦ https://github.com/tanaka-takayoshi/OSTools
細々とgithub上で活動しています
2012/04/18 東京Node学園 5時限目 LT
![Page 4: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/4.jpg)
2012/04/18 東京Node学園 5時限目 LT
で、 LINQってなに?
![Page 5: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/5.jpg)
2012/04/18 東京Node学園 5時限目 LT
![Page 6: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/6.jpg)
2012/04/18 東京Node学園 5時限目 LT
違います・・・
![Page 7: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/7.jpg)
Language INtegrated Query
.NET Framework 3.5 より導入
様々な種類のデータ集合に対して標準化された方法でデータを問い合わせることを可能にする、言語に統合された機能
2012/04/18 東京Node学園 5時限目 LT
![Page 8: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/8.jpg)
2012/04/18 東京Node学園 5時限目 LT
![Page 9: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/9.jpg)
linq.js - LINQ for JavaScript ◦ http://linqjs.codeplex.com/ ◦作: neuecc さん Microsoft MVP for C# http://neue.cc/2011/08/22_340.html
◦ jQuery対応版とかも含まれてるよ
CodeplexはMS系のOSSホスティング ◦Gitにも対応したよ!
2012/04/18 東京Node学園 5時限目 LT
![Page 10: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/10.jpg)
npm版あります ◦ https://github.com/mihaifm/linq
これで、 ◦ npm install linq
で使えます!
サンプルの実行は ◦ node sample¥tutorial.js
2012/04/18 東京Node学園 5時限目 LT
![Page 11: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/11.jpg)
2012/04/18 東京Node学園 5時限目 LT
JavaScript なのに UpperCamelなのは、 neucc さんご本人も後悔してました・・・
![Page 12: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/12.jpg)
Enumerableをグローバルオブジェクト から外したため、 文字列での解釈ができなかった。
.Where("this.From($).Distinct('$.Value').Count() == 5") ◦ Sample¥tutorial.js L173
Lambdaをバインドすることで対応しています ◦ return new Function("$,$$,$$$,$$$$", "ret
urn " + expression).bind(Enumerable);
2012/04/18 東京Node学園 5時限目 LT
![Page 13: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/13.jpg)
2012/04/18 東京Node学園 5時限目 LT
![Page 14: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/14.jpg)
2012/04/18 東京Node学園 5時限目 LT
出力結果: 0:1 1:2 2:3
範囲指定で、 列挙を作成
列挙の要素:value 位置:index を引数に取る関数を作用させる。 ラムダ式を文字列でも渡せる
![Page 15: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/15.jpg)
2012/04/18 東京Node学園 5時限目 LT
出力結果: 商品A:品川 商品A:新宿 商品B:丸の内 商品C:ほむほむ
第2引数で、inner のkeyを指定 第3引数で、outer のkeyを指定 Keyが等しいものでJoinした結果に作用させる関数が第4引数
![Page 16: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/16.jpg)
2012/04/18 東京Node学園 5時限目 LT
![Page 17: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/17.jpg)
2012/04/18 東京Node学園 5時限目 LT
偶数の時はcontinue で処理をスキップ 6より大きくなったら処理を中断して、ループを抜ける
出力結果: 1:foo 3:foo 5:foo
![Page 18: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/18.jpg)
2012/04/18 東京Node学園 5時限目 LT
ToInfinity で無限リストを作成! =>これを実行できるということは遅延リストになっている
出力結果: 57
![Page 19: 120418 tokyo node5_lin_qonnodejs](https://reader033.fdocuments.net/reader033/viewer/2022060110/55618b1dd8b42a96778b4cec/html5/thumbnails/19.jpg)
Reactive Extension というものもあったり ◦ LINQがデータ操作のクエリ化であるのに対し
Rxはイベントのクエリ化
これもJavaScript版があります ◦ http://msdn.microsoft.com/en-us/data/gg577609
◦ このページはRx全体のページです
そして、最初からnpm版も ◦ http://search.npmjs.org/#/rx
2012/04/18 東京Node学園 5時限目 LT