Upload
shinichi-okada
View
343
Download
1
Embed Size (px)
DESCRIPTION
関西RubyKaigi05のLTのスライドです。 .Net用のコードをRubyを使って自動生成するお話です
Citation preview
.Netでお仕事しているプログラマが
スクリプト言語として使うRuby
自己紹介
● 名前:岡田 真一 (OKADA SHINICHI)● Twitter:@shin_asou● お仕事 SIerのSE ● ERPソリューションパッケージの
開発等してます
こんにちは!皆さんお仕事で
Ruby書いてますか?
僕は.Net(C#、VB.NET)Verは1.1です。
とても辛いです(.Net1.1のひどさが)
.Net1.1とかいやなのでRuby使いたいです
でも現実は・・・
あらためてRubyとはなにか?
・ Railsを動かすためのプログラミング言語?
・ tDiaryを動かすためのプログラミング言語?
・ まとめるとWebアプリケーションを(以下略
間違ってはいませんが・・・
ruby-lang.orgによると
ソースコード生成にRubyを使えばいいんじゃね?
例:get;set;
C#1.1の場合
インスタンス変数の一覧からプロパティが自動で作成できれば
問題は解決する
ファイルを行単位で読み込んで
前後の空白等を削除
行を単語単位に分割してプロパティ用の文字列作成
結果をArrayに入れておいて結果出力用のファイルに書き込む
今回はプロパティを例にしましたが
定型的な処理なら応用が効くと思います
例:XML操作
業務アプリケーションにありがちなもの
といえば?
帳票
レイアウトファイルがXMLなのでこれを加工しようという話
当然GUIデザイナは用意されていますが
たまに辛い要件があるんですね例えば1ページ目と2ページ目でヘッダのレイアウトが違うとか
そういう時はVBScriptもどきがあるのでそれを使って
処理を切り分けるんですが・・・
Line1.Top = 1500Line1.Visible = False
みたいなコードがひたすら続いたりするんですね
そこでXMLから項目情報抜き出して操作コードを出力
11~13行目で条件を満たす項目を取得し、15~19行目でそれをすべて非表示にするコードを出力します。
まとめ
たとえ別の言語を使っていても部分的にRubyを使える
ケースはあるのでそういった部分でRubyを使ってみてはいかがでしょうか?
補足1
.Net1.1は辛いですが.Net3.0以降であればいろいろ改善され
ていいと思います。例えば今回のプロパティの
例も1行で書けるようになっています。
補足2
Twitterでも指摘された件ですが例では出力コード組み立てを文字列で
やりましたが実際にはERBとかを使ったほうがいいと思います。
自分が使わなかった理由は例のスクリプトを書いた時にERBを知らなかったので文字列で
組み立てる方法を採用しました。
補足2続き
基本使い捨てのスクリプトなので特に直す必要もなく今に至っています。
コード生成はしっかりメンテナンスする必要が無いので新しい知識を得る機会に乏しくなるという
のは課題の一つかなと思います。