kanrk05 .netでお仕事しているプログラマがスクリプト言語として使うruby

34
.Netでお仕事している プログラマが スクリプト言語として 使うRuby

Upload: shinichi-okada

Post on 30-Jun-2015

342 views

Category:

Technology


1 download

DESCRIPTION

関西RubyKaigi05のLTのスライドです。 .Net用のコードをRubyを使って自動生成するお話です

TRANSCRIPT

Page 1: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

.Netでお仕事しているプログラマが

スクリプト言語として使うRuby

Page 2: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

自己紹介

● 名前:岡田 真一 (OKADA SHINICHI)● Twitter:@shin_asou● お仕事 SIerのSE ● ERPソリューションパッケージの

開発等してます

Page 3: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

こんにちは!皆さんお仕事で

Ruby書いてますか?

Page 4: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

僕は.Net(C#、VB.NET)Verは1.1です。

Page 5: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

とても辛いです(.Net1.1のひどさが)

Page 6: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

.Net1.1とかいやなのでRuby使いたいです

Page 7: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

でも現実は・・・

Page 8: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

あらためてRubyとはなにか?

・ Railsを動かすためのプログラミング言語?

・ tDiaryを動かすためのプログラミング言語?

・ まとめるとWebアプリケーションを(以下略

Page 9: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

間違ってはいませんが・・・

Page 10: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

ruby-lang.orgによると

Page 11: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

ソースコード生成にRubyを使えばいいんじゃね?

Page 12: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

例:get;set;

Page 13: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

C#1.1の場合

Page 14: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

インスタンス変数の一覧からプロパティが自動で作成できれば

問題は解決する

Page 15: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Page 16: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Page 17: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

ファイルを行単位で読み込んで

前後の空白等を削除

Page 18: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

行を単語単位に分割してプロパティ用の文字列作成

Page 19: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

結果をArrayに入れておいて結果出力用のファイルに書き込む

Page 20: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby
Page 21: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

今回はプロパティを例にしましたが

定型的な処理なら応用が効くと思います

Page 22: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

例:XML操作

Page 23: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

業務アプリケーションにありがちなもの

といえば?

Page 24: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

帳票

レイアウトファイルがXMLなのでこれを加工しようという話

Page 25: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

当然GUIデザイナは用意されていますが

Page 26: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

たまに辛い要件があるんですね例えば1ページ目と2ページ目でヘッダのレイアウトが違うとか

Page 27: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

そういう時はVBScriptもどきがあるのでそれを使って

処理を切り分けるんですが・・・

Page 28: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

Line1.Top = 1500Line1.Visible = False

みたいなコードがひたすら続いたりするんですね

Page 29: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

そこでXMLから項目情報抜き出して操作コードを出力

Page 30: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

11~13行目で条件を満たす項目を取得し、15~19行目でそれをすべて非表示にするコードを出力します。

Page 31: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

まとめ

たとえ別の言語を使っていても部分的にRubyを使える

ケースはあるのでそういった部分でRubyを使ってみてはいかがでしょうか?

Page 32: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

補足1

.Net1.1は辛いですが.Net3.0以降であればいろいろ改善され

ていいと思います。例えば今回のプロパティの

例も1行で書けるようになっています。

Page 33: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

補足2

Twitterでも指摘された件ですが例では出力コード組み立てを文字列で

やりましたが実際にはERBとかを使ったほうがいいと思います。

自分が使わなかった理由は例のスクリプトを書いた時にERBを知らなかったので文字列で

組み立てる方法を採用しました。

Page 34: Kanrk05 .Netでお仕事しているプログラマがスクリプト言語として使うRuby

補足2続き

基本使い捨てのスクリプトなので特に直す必要もなく今に至っています。

コード生成はしっかりメンテナンスする必要が無いので新しい知識を得る機会に乏しくなるという

のは課題の一つかなと思います。