SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
T4使ってみた
室星亮太
2015/02/24(火)【聞いてみよう!】Visual/Studio/Tools/for/Unity勉強会【使わないともったいない!?】
DRY
Don't&repeat&yourself
リピートアフターミー
Don't&repeat&yourself
意味は各自ググってください
話は変わって...
Parseって知ってます?
Parse
• MBaaS(Mobile,Backend,as,a,Service)
• データストアとかユーザー管理とかできる
• UnityのSDKがあって簡単に試せる
細かいところは各自ググってください
次のようなクラスの情報をParseで保存します
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public int Sex { get; set; }
}
普通にデータを保存するとき
ParseObject gameScore = new ParseObject("Person")
{
{"firstName", "Ryota"},
{"lastName", "Murohoshi"},
{"age", 26},
{"sex", 0}, // 男性
};
Task saveTask = gameScore.SaveAsync(); // 保存
// 細かいところは各自(略)
めんどくないですか?
キー間違えそうじゃないですか?
ParseObjectを継承して、
保存したいデータのクラスをつくることで
めんどくささを減らし、うっかり間違いをなくす
こんな感じのサブクラスを作って使う
[ParseClassName("Person")]
public class Person : ParseObject
{
[ParseFieldName("firstName")]
public string FirstName
{
get { return GetProperty<string>("FirstName"); }
set { SetProperty<string>(value, "FirstName"); }
}
/* 略、他3個のプロパティ */
}
// 細かいところは(略)
これでParseで保存する時、
うっかりキーの文字列を間違えることもない!
だが、しかし...
長い!
ParseObjectのサブクラスを作る
• 基本的に同じようなものの繰り返し
• サブクラス作る時にうっかり文字を間違えてしまいそう
• なにより長い、そしてだるい
• こんなクラスをいくつも作るのは非常にだるい
Don't&repeat&yourself
規則性に従って繰り返し作業を上手にやるやつを
僕たちは知っていますね
こういうのはプログラムにやってもらいましょ
ここでT4ですよ
やっと本題やで!(ここまで予定だと5分)
タイトル
T4使ってみた
自己紹介
• 名前:室星亮太
• 所属:Fuller,)Inc.
• 仕事:Unityを用いたゲーム開発
• 投稿先:h3p://qiita.com/RyotaMurohoshi
• Twi3er:@RyotaMurohoshi
• コミュニティ:Androidの会Unity部
T4とは
Visual'Studio'の'T4'テキスト'テンプレートは、テキスト'ファイル
を生成できる、テキスト'ブロックと制御ロジックが混在するファ
イルです。
コード生成とT4テキストテンプレート#h%ps://msdn.microso2.com/ja5jp/library/bb126445.aspx#より
ざっくりとT4
• テキストテンプレート
• コード生成に超便利
• C#などで書いた制御ロジックと出力したいテキストをまとめる
• Visual*Studioからめっちゃ使いやすい
• 使いやすく導入楽
• Xamarinでも使えた
T4を新規作成するとこんな感じ
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
付け加えると、
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
public class HelloT4
{
}
こんな感じのクラスが生成される
public class HelloT4
{
}
こんな感じで書くと、
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
public class HelloT4
{
<# foreach(int num in Enumerable.Range(0, 3)) { #>
ここにフィールドを定義したい!
<# } #>
}
繰り返しができる!
public class HelloT4
{
ここにフィールドを定義したい!
ここにフィールドを定義したい!
ここにフィールドを定義したい!
}
ちょっと改造して!
<#@ template language="C#" #>
<#@ assembly name="System.Core" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Text" #>
<#@ import namespace="System.Collections.Generic" #>
public class HelloT4
{
<# foreach(int num in Enumerable.Range(0, 3)) { #>
public const int Num<#= num #> = <#= num #>;
<# } #>
}
繰り返しを用いたコード生成
public class HelloT4
{
public const int Num0 = 0;
public const int Num1 = 1;
public const int Num2 = 2;
}
こんな感じで、基本的な使い方は覚えやすい!
もっとちゃんと勉強すればすごいこともできそう
繰り返しだけじゃなくて、条件分岐もできる!
LINQも使えるし、ファイル読み込みとかだってできる!
やりたいことのおさらい
一定パターンの繰り返しになっている
Parse用のクラスをT4を使って生成する
これをT4でつくるで!
[ParseClassName("Person")]
public class Person : ParseObject
{
[ParseFieldName("firstName")]
public string FirstName
{
get { return GetProperty<string>("FirstName"); }
set { SetProperty<string>(value, "FirstName"); }
}
/* 略、他3個のプロパティ */
}
こんな感じのテンプレートを用意して!
namespace ParseObjects
{
using Parse;
<# foreach (var definedClass in definedClasses) { #>
[ParseClassName("<#= definedClass.ClassName #>")]
public class <#= definedClass.ClassName #> : ParseObject {
<# foreach (var property in definedClass.Propeties) {
string typeName = property.Type.ToString ();
string fieldName = ToLowerCamel (property.Name);
#>
[ParseFieldName("<#= fieldName#>")]
public <#= typeName #> <#= property.Name #> {
get { return GetProperty<<#= typeName #> > ("<#= property.Name #>"); }
set { SetProperty<<#= typeName #> > (value, "<#= property.Name #>"); }
}
<# } #>
}
<# } #>
}
こんな感じの元データを定義して!(複数クラス対応!)
var definedClasses = new [] {
new {
ClassName = "Person",
Propeties = new [] {
new { Type = typeof(string), Name = "FirstName" },
new { Type = typeof(string), Name = "LastName" },
new { Type = typeof(int), Name = "Age" },
new { Type = typeof(int), Name = "Sex" },
}
},
new {
ClassName = "PlayLog",
Propeties = new [] {
new { Type = typeof(int), Name = "StageId" },
new { Type = typeof(int), Name = "Score" },
new { Type = typeof(DateTime), Name = "PlayedAt" },
}
},
};
できた!
[ParseClassName("Person")]
public class Person : ParseObject
{
[ParseFieldName("firstName")]
public string FirstName
{
get { return GetProperty<string>("FirstName"); }
set { SetProperty<string>(value, "FirstName"); }
}
/* 略、他3個のプロパティ */
}
今回一番びっくりしたこと!
導入楽!
今回一番言いたい事!
とにかくT4触って!
ありがとうございました

Weitere ähnliche Inhalte

Was ist angesagt?

2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open sourceYoshiyuki Nakamura
 
Chainerで学ぶdeep learning
Chainerで学ぶdeep learningChainerで学ぶdeep learning
Chainerで学ぶdeep learningRetrieva inc.
 
「自動化...か、かっこいいタル」(憧れ)から始める自動化
「自動化...か、かっこいいタル」(憧れ)から始める自動化「自動化...か、かっこいいタル」(憧れ)から始める自動化
「自動化...か、かっこいいタル」(憧れ)から始める自動化Hirokazu Kutsu
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Takayuki Shimizukawa
 
TFUG_yuma_matsuoka__distributed_GPU
TFUG_yuma_matsuoka__distributed_GPUTFUG_yuma_matsuoka__distributed_GPU
TFUG_yuma_matsuoka__distributed_GPUYumaMatsuoka
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data scienceTakami Sato
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版Katsuhiro Morishita
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境Hisao Soyama
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカーTetsuya Morimoto
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpTakeshi Komiya
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Takayuki Shimizukawa
 
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話Yusuke Miyazaki
 
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話Yuya Kato
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門Hironori Sekine
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of PythonTakanori Suzuki
 
S20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれからS20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれからTakeshi Akutsu
 
Tensor flowを使った キュウリの仕分け あれこれ
Tensor flowを使った キュウリの仕分け あれこれTensor flowを使った キュウリの仕分け あれこれ
Tensor flowを使った キュウリの仕分け あれこれMakoto Koike
 

Was ist angesagt? (20)

2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source2006-04-22 CLR/H #14 .NET and open source
2006-04-22 CLR/H #14 .NET and open source
 
Chainerで学ぶdeep learning
Chainerで学ぶdeep learningChainerで学ぶdeep learning
Chainerで学ぶdeep learning
 
「自動化...か、かっこいいタル」(憧れ)から始める自動化
「自動化...か、かっこいいタル」(憧れ)から始める自動化「自動化...か、かっこいいタル」(憧れ)から始める自動化
「自動化...か、かっこいいタル」(憧れ)から始める自動化
 
Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門Pythonスタートアップ勉強会201109 python入門
Pythonスタートアップ勉強会201109 python入門
 
TFUG_yuma_matsuoka__distributed_GPU
TFUG_yuma_matsuoka__distributed_GPUTFUG_yuma_matsuoka__distributed_GPU
TFUG_yuma_matsuoka__distributed_GPU
 
High performance python computing for data science
High performance python computing for data scienceHigh performance python computing for data science
High performance python computing for data science
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識 第3版
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカー
 
Python エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjpPython エンジニアの作り方 2011.08 #pyconjp
Python エンジニアの作り方 2011.08 #pyconjp
 
Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?
 
Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話Django から各種チャットツールに通知するライブラリを作った話
Django から各種チャットツールに通知するライブラリを作った話
 
PyCharm入門
PyCharm入門PyCharm入門
PyCharm入門
 
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
TensorFlowを使ってテキストをクラス分類してみたら精度96.8%の分類器を簡単に得ることができた話
 
PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門PythonによるWebスクレイピング入門
PythonによるWebスクレイピング入門
 
S18 t0 introduction
S18 t0 introductionS18 t0 introduction
S18 t0 introduction
 
「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python「Python言語」はじめの一歩 / First step of Python
「Python言語」はじめの一歩 / First step of Python
 
S14 t0 introduction
S14 t0 introductionS14 t0 introduction
S14 t0 introduction
 
S20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれからS20 t1 stapyのこれまでとこれから
S20 t1 stapyのこれまでとこれから
 
Tensor flowを使った キュウリの仕分け あれこれ
Tensor flowを使った キュウリの仕分け あれこれTensor flowを使った キュウリの仕分け あれこれ
Tensor flowを使った キュウリの仕分け あれこれ
 

Andere mochten auch

C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!TATSUYA HAYAMIZU
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Yoshifumi Kawai
 
Visual Studio Online as a CI Service
Visual Studio Online as a CI ServiceVisual Studio Online as a CI Service
Visual Studio Online as a CI ServiceHiroshi Maekawa
 
2014 08-30 life with roslyn
2014 08-30 life with roslyn2014 08-30 life with roslyn
2014 08-30 life with roslynshibuki
 
Travis, Circle そして Jenkins 2.0
Travis, Circle そして Jenkins 2.0Travis, Circle そして Jenkins 2.0
Travis, Circle そして Jenkins 2.0Hiroshi Maekawa
 
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉iFunFactory Inc.
 
わたしのVisual studio環境
わたしのVisual studio環境わたしのVisual studio環境
わたしのVisual studio環境Keigo Ando
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
 
第8回大阪Jenkins勉強会LT: iOS vs CI
第8回大阪Jenkins勉強会LT: iOS vs CI第8回大阪Jenkins勉強会LT: iOS vs CI
第8回大阪Jenkins勉強会LT: iOS vs CIHiroshi Maekawa
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep LearningSeiya Tokui
 

Andere mochten auch (13)

T4 Template 入門
T4 Template 入門T4 Template 入門
T4 Template 入門
 
C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!C#でもメタプログラミングがしたい!!
C#でもメタプログラミングがしたい!!
 
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
Metaprogramming Universe in C# - 実例に見るILからRoslynまでの活用例
 
Dockerとdev ops
Dockerとdev opsDockerとdev ops
Dockerとdev ops
 
Visual Studio Online as a CI Service
Visual Studio Online as a CI ServiceVisual Studio Online as a CI Service
Visual Studio Online as a CI Service
 
2014 08-30 life with roslyn
2014 08-30 life with roslyn2014 08-30 life with roslyn
2014 08-30 life with roslyn
 
Travis, Circle そして Jenkins 2.0
Travis, Circle そして Jenkins 2.0Travis, Circle そして Jenkins 2.0
Travis, Circle そして Jenkins 2.0
 
LINQ in Unity
LINQ in UnityLINQ in Unity
LINQ in Unity
 
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
NDC14 범용 게임 서버 프레임워크 디자인 및 테크닉
 
わたしのVisual studio環境
わたしのVisual studio環境わたしのVisual studio環境
わたしのVisual studio環境
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
第8回大阪Jenkins勉強会LT: iOS vs CI
第8回大阪Jenkins勉強会LT: iOS vs CI第8回大阪Jenkins勉強会LT: iOS vs CI
第8回大阪Jenkins勉強会LT: iOS vs CI
 
生成モデルの Deep Learning
生成モデルの Deep Learning生成モデルの Deep Learning
生成モデルの Deep Learning
 

Ähnlich wie T4使ってみた

時系列データ型(Int4)をつくってみた
時系列データ型(Int4)をつくってみた時系列データ型(Int4)をつくってみた
時系列データ型(Int4)をつくってみたToshi Harada
 
デザイナーのためのPHP講座 for WordPress (初級)
デザイナーのためのPHP講座  for WordPress (初級)デザイナーのためのPHP講座  for WordPress (初級)
デザイナーのためのPHP講座 for WordPress (初級)佑 小田垣佑
 
Write good parser in perl
Write good parser in perlWrite good parser in perl
Write good parser in perlJiro Nishiguchi
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について豊明 尾古
 
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5Nishida Kansuke
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7Shunsuke Nakamura
 
PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門Tomo Mizoe
 
YAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッションYAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッションKuninobu SaSaki
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールNobuhisa Koizumi
 
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014Shigeru Hanada
 
第一回ゆるふわーる
第一回ゆるふわーる第一回ゆるふわーる
第一回ゆるふわーるSachiko Hirata
 
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方Sho Shimauchi
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会Yuji Otani
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~CHY72
 
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみようKentaro Matsui
 
Introduction of tango! (jp)
Introduction of tango! (jp)Introduction of tango! (jp)
Introduction of tango! (jp)Yohei Yasukawa
 

Ähnlich wie T4使ってみた (20)

時系列データ型(Int4)をつくってみた
時系列データ型(Int4)をつくってみた時系列データ型(Int4)をつくってみた
時系列データ型(Int4)をつくってみた
 
デザイナーのためのPHP講座 for WordPress (初級)
デザイナーのためのPHP講座  for WordPress (初級)デザイナーのためのPHP講座  for WordPress (初級)
デザイナーのためのPHP講座 for WordPress (初級)
 
Write good parser in perl
Write good parser in perlWrite good parser in perl
Write good parser in perl
 
Ecmascript2015とその周辺について
Ecmascript2015とその周辺についてEcmascript2015とその周辺について
Ecmascript2015とその周辺について
 
名前付け入門
名前付け入門名前付け入門
名前付け入門
 
⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5⑲jQueryをおぼえよう!その5
⑲jQueryをおぼえよう!その5
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門PHP, JavaScriptプログラマのためのC#入門
PHP, JavaScriptプログラマのためのC#入門
 
YAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッションYAPC::Asia Tokyo 2013 ランチセッション
YAPC::Asia Tokyo 2013 ランチセッション
 
これからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツールこれからの「言語」の話をしよう ―― 未来を生きるためのツール
これからの「言語」の話をしよう ―― 未来を生きるためのツール
 
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
OSS-DB Gold技術解説セミナー@db tech showcase 東京 2014
 
mysqlftppc 紹介
mysqlftppc 紹介mysqlftppc 紹介
mysqlftppc 紹介
 
第一回ゆるふわーる
第一回ゆるふわーる第一回ゆるふわーる
第一回ゆるふわーる
 
使い捨て python コードの書き方
使い捨て python コードの書き方使い捨て python コードの書き方
使い捨て python コードの書き方
 
PHP基礎勉強会
PHP基礎勉強会PHP基礎勉強会
PHP基礎勉強会
 
Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~Unity2015_No10_~UGUI&Audio~
Unity2015_No10_~UGUI&Audio~
 
「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう「Html sql」で図書館hpにアクセスしてみよう
「Html sql」で図書館hpにアクセスしてみよう
 
Introduction of tango! (jp)
Introduction of tango! (jp)Introduction of tango! (jp)
Introduction of tango! (jp)
 
Tokyo r38
Tokyo r38Tokyo r38
Tokyo r38
 

Mehr von Ryota Murohoshi

UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!Ryota Murohoshi
 
【Unity】気づいたら加わっていたあいつ【もくもく】
【Unity】気づいたら加わっていたあいつ【もくもく】【Unity】気づいたら加わっていたあいつ【もくもく】
【Unity】気づいたら加わっていたあいつ【もくもく】Ryota Murohoshi
 
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】Ryota Murohoshi
 
Javaのバージョニング問題の話しよっか
Javaのバージョニング問題の話しよっかJavaのバージョニング問題の話しよっか
Javaのバージョニング問題の話しよっかRyota Murohoshi
 
C#のList_TがIListを実装している件
C#のList_TがIListを実装している件C#のList_TがIListを実装している件
C#のList_TがIListを実装している件Ryota Murohoshi
 
どうしてこのコードエラーになるんですか?
どうしてこのコードエラーになるんですか?どうしてこのコードエラーになるんですか?
どうしてこのコードエラーになるんですか?Ryota Murohoshi
 
広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっか広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっかRyota Murohoshi
 
UnityでC#を勉強しはじめた私の主張
UnityでC#を勉強しはじめた私の主張UnityでC#を勉強しはじめた私の主張
UnityでC#を勉強しはじめた私の主張Ryota Murohoshi
 
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlinRyota Murohoshi
 
「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!Ryota Murohoshi
 
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!Ryota Murohoshi
 
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料などRxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料などRyota Murohoshi
 
共変戻り値型って知ってますか?
共変戻り値型って知ってますか?共変戻り値型って知ってますか?
共変戻り値型って知ってますか?Ryota Murohoshi
 
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数Ryota Murohoshi
 

Mehr von Ryota Murohoshi (15)

UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!UnityでC#6.0が使える未来がそろそろ来そう!
UnityでC#6.0が使える未来がそろそろ来そう!
 
【Unity】気づいたら加わっていたあいつ【もくもく】
【Unity】気づいたら加わっていたあいつ【もくもく】【Unity】気づいたら加わっていたあいつ【もくもく】
【Unity】気づいたら加わっていたあいつ【もくもく】
 
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
【ハピバ】未来に備えたKotlin、大好きだぜ!【Kotlin 1.0】
 
「var禁止」禁止
「var禁止」禁止「var禁止」禁止
「var禁止」禁止
 
Javaのバージョニング問題の話しよっか
Javaのバージョニング問題の話しよっかJavaのバージョニング問題の話しよっか
Javaのバージョニング問題の話しよっか
 
C#のList_TがIListを実装している件
C#のList_TがIListを実装している件C#のList_TがIListを実装している件
C#のList_TがIListを実装している件
 
どうしてこのコードエラーになるんですか?
どうしてこのコードエラーになるんですか?どうしてこのコードエラーになるんですか?
どうしてこのコードエラーになるんですか?
 
広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっか広告ネイティブプラグインの辛かった話しよっか
広告ネイティブプラグインの辛かった話しよっか
 
UnityでC#を勉強しはじめた私の主張
UnityでC#を勉強しはじめた私の主張UnityでC#を勉強しはじめた私の主張
UnityでC#を勉強しはじめた私の主張
 
普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin普段C#を使っている僕から見たKotlin
普段C#を使っている僕から見たKotlin
 
「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!「LINQ」っていう名前だけでも 覚えて帰ってください!
「LINQ」っていう名前だけでも 覚えて帰ってください!
 
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!
JXUGのLTだけれどもUnity+iOS+LINQの話をしようと思う!
 
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料などRxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
RxJava初心者の私が良いと思ったやり方、素敵だと思った資料など
 
共変戻り値型って知ってますか?
共変戻り値型って知ってますか?共変戻り値型って知ってますか?
共変戻り値型って知ってますか?
 
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
明日からちょっと KotlinでAndroidが書きたくなる(かもしれない?)SAM変換と拡張関数
 

T4使ってみた