UnityのためのC#勉強会に行ってきましたので、その感想レポートです。
スライドごとの概要とか感想
Unityでもう少しC#をLINQ
発表スライドはこちら
http://www.slideshare.net/moririring/unityclinqwww.slideshare.net
わかりやすいLINQのお話。 「シンプルに見やすく書きたいならLINQ」というような趣旨の発表でした。
スライドとしてはLINQに関しての説明と LINQで簡単に書かれてるけど、もっと噛み砕いたコードで書くと 実体はどんな感じで動いているの? という解説でした。デモ含みでやっていたのでわかりやすかったです。
「LINQで実装されていることはC#の機能の集大成」 とおっしゃられていましたが、ライブコーディングでやっていく過程を見る限り まったくもってその通りでした。
処理落ちしないように1フレでやる処理散らしの目的で IEnumerable等は何気なく使ってはいるが ちゃんと突っ込んだ挙動まではわかっていなかったので 勉強しないとなーと思いました。
UniRxとかReactivePropertyとか
Reactive extention のお話。
発表スライドはこちら
従来のLINQの内容がLINQ to Objectの話でしたが LINQ to Eventsの話がReactive Extensitonという話。
まだ日本語の資料のスライドはあまりないらしいのですが わかりやすいものをピックアップされていました、とてもありがたい。
スライドの発表中にも前日に公開された資料のほうがすごいという話 確かにライブコーディング中に話されていたないようがこちらに凝縮されてました。
また、実際にこの機能はどういう振る舞いをするんだっけ という時には英語サイトですが図解もされているのでこちらを見たほうがいいという話もされていました。
イベントも非同期処理もRxで事足りるどころか 文法の基礎構成さえわかれば綺麗になるし 可読性アップで至りにつくせりだなというところ。 また、Rxという概念は今後盛り上がっていく+他の言語でも使えるので 損は少ない、というのも学習する上では魅力的な材料ではありました。
またUniRXに関しては皆様言われてますが オレオレライブラリではない、思想に基づいたライブラリかつ UnityOfficialじゃない!とかで拒否反応を示していた方は 使ってみたほうが良いのではないかと思いました。 おそらく、登壇者の方のRxへの熱量を鑑みるに 全然安心できるライブラリなんじゃないかなと思いました。
また、初めての業務プログラムがRuby on Railsである私としては MVCモデルが根付いているので、Presenterという概念があまりありませんでした。 その点も実りが大きかったです。
OrangeCube 自社フレームワーク
OrangeCubeさんのフレームワークの実装事例をもとに 「こういう問題にたいしてこういう解決をしていったよ」 というお話。
発表スライドはこちら
www.slideshare.net
今回の勉強会の中で最大のボリュームでしたが 最大の実りのあるお話でした。 スライドの話も(前の2つの話もあったので)割りとついていけて また、ライブコーディングも実際の現場のやり方を垣間見れたので とても勉強になりました。
個人的にとても感銘をうけたのは ゲームロジックが主体でビューを表示し、チャネル管理するというところ (スライドでいうとここらへん) この部分は自分自身にも着想がなく これを取り入れるといろんなことができるなーと 視界が広がった感じがしました。
スライドで紹介されたすべての事例が 今までの自分の着想とは全然ちがうベクトルかつ 一つの方向性として確立されているやる方だったので 何度もいってくどいぐらい勉強になりました。
全体を通しての感想
VisualStudioの凄さ
よく、UnityVSいいよ!みたいな記事は目にしたのですが 会社で支給されるWindowsマシンが古い子なので 開発は基本的にMacでやっている私としては あまり関係ない話ぐらいに思ってたんですが 今日の発表を見る限り、機能が強力すぎて 開発工数を減らすだけのポテンシャルを持ってるなと感じました。 今後C#案件やるときはお願いしてみようかなと思いました。。 あと実はUnityってASP.NET畑の人のほうが凄いもの作れるんじゃ?とか思っちゃいました。
自身のC#の引き出しの狭さ
最近、Swiftの言語仕様を調べてて 「関数型引数」やら「メソッド拡張」やらそういう機能があるとは知っていたのですが C#にもあるんじゃん!とか改めて驚きましたし それをどういう風に使うべきかが今日の勉強会でわかって すごく、自身の過去のソースをリファクタしたくなりました。 独学でやると言語の使い方の視野や引き出しが狭くなりので 気をつけなくちゃいけないなーと思いました。
Rxの凄さ
今回の勉強会はRx勉強会の側面もあったのではないかというぐらい Rxの便利さ、そして仕様実例が学べたのもすごい大きかったです。 今度イベントを扱うような実装のときは AndroidでもRxちっくなことをしようかなーと突き動かされたぐらいでした。
めちゃくちゃためになりました、ホント。
あとサーバーサイドC#もありなのかなーとか思いました。 ロジックが一貫してC#で書けるっていうのも強みの一つなのかも、っていう観点から。 PHPとC#の混在は負荷分散の観点からしても避けたいですしw
懇親会出れなくて残念だったので、ぜひまた次回また機会があれば今度は懇親会も参加したいです。
※もしおかしいところとかあればコメントいただけると幸いです。。