Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
リアルビジネス Ruby
2010/11/5
cuzic
2
KOF2010 11/5 リアルビジネス Ruby
自己紹介
cuzic といいます
きゅーじっく と読みます
Ruby 暦は かれこれもう10年くらい
いろんな活動をしています。
Ruby 勉強会@尼崎
 10月まで「リファクタリング R...
3
KOF2010 11/5 リアルビジネス Ruby
この発表で言いたいこと
不況が長引いていますよね・・・
システム開発案件の単価は下がる一方・・・
その一方コンプライアンスはうるさくな
って
ルーチンワークは増えまくり
仕事がラクになり、...
4
KOF2010 11/5 リアルビジネス Ruby
キャズムを超えた Ruby
Ruby はキャズムを超えました
今は「アーリーマジョリティ」フェーズ
少しずつ、 Ruby での開発案件も増加の
傾向
イマコ
コ
イマコ
コ
5
KOF2010 11/5 リアルビジネス Ruby
Ruby は Ruby on Rails だけじゃない
Ruby on Rails
Ruby ブレイクの起爆剤
WEB アプリケーション開発フレームワーク
Java の 10 倍開発効率が...
6
KOF2010 11/5 リアルビジネス Ruby
では特に、いつ Ruby を使えるか?
開発の現場を効率化できる事例を3つ紹
介
GUI の画面項目の確認作業の自動化
テーブル定義書からの  SQL の自動生成
重複が多いプログラムの自...
7
KOF2010 11/5 リアルビジネス Ruby
画面項目の確認作業の自動化(1)
やりたいこと
GUI 部品の Excel 管理表と、実際にできた
GUI 画面とで、不一致がないかどうかの確認
単一行テキスト単一行テキスト名前
複数行テ...
8
KOF2010 11/5 リアルビジネス Ruby
画面項目の確認作業の自動化(2)
実現方法
Windows アプリケーションは GUI 部品のク
ラスやプロパティを外部から取得可能
  AutoITX : GUI 部品のクラスやプロパ
...
9
KOF2010 11/5 リアルビジネス Ruby
テーブル定義書からの SQL の自動生成(1)
テーブルの定義から、 CREATE TABLE
等の SQL を自動生成
CREATE TABLE bookmarks (
id SERIA...
10
KOF2010 11/5 リアルビジネス Ruby
テーブル定義書からの SQL 自動生成
(2)
Excel は Ruby から COM 経由で操作可
能
テキスト生成は Ruby の得意分野!
自動生成することで
2度手間を削減するこ...
11
KOF2010 11/5 リアルビジネス Ruby
重複が多いプログラムの自動生成(1)
GUI プログラムの自動生成
コントロールの配置などは非常に単純な作業のため
、
自動生成に向いている
テストプログラムの自動生成
特にユニットテス...
12
KOF2010 11/5 リアルビジネス Ruby
重複が多いプログラムの自動生成(2)
プログラム自動生成は何が良いか?
品質の底上げにつながる
似たコードが生成されるため、保守性が向上
ベテランのノウハウを新人に自然に伝授でき
る
R...
13
KOF2010 11/5 リアルビジネス Ruby
事務処理業務の効率化事例 ( Excel
編)
複数の Excel 帳票を開いて、一括印刷
Ruby を使えば、複数の Excel ブック印刷も
簡単
Excel は非常に多くの作業を ...
14
KOF2010 11/5 リアルビジネス Ruby
事務処理業務の効率化事例( WEB 編)
WEB 基幹ソフト操作の自動化も可能
方法1: 情報取得のみであれば、
open-uri 、 mechanize などの利用が効果的
wget ...
15
KOF2010 11/5 リアルビジネス Ruby
まとめ
いろいろな 実際の業務をカイゼンする
方法を紹介してきました
時間が残っているようなので、
質疑応答
デモンストレーション
質疑応答(自問自答編)
の3つを用意しています。
16
KOF2010 11/5 リアルビジネス Ruby
  質疑応答
(自問自答編)
17
KOF2010 11/5 リアルビジネス Ruby
いろんなテクを紹介してきましたが・・
・
Q. うまく自動化して、効率化できる作業を
どうやって見つけるの?
作業をしている本人なら、わりかし簡単
ネックとなるのは「できるわけがない」と...
18
KOF2010 11/5 リアルビジネス Ruby
なんで、 Ruby ?
Q. 今回紹介したのって COM とか結構
どの
言語からでも利用できるものが多いけど
、なんで、開発言語は Ruby を採用する
の?
A. 汎用性と生産性のバ...
19
KOF2010 11/5 リアルビジネス Ruby
タイトルは釣り?
Q. もっと開発案件としての Ruby の動
向とかを聞きたいんだけど
A. 残念ながら、 cuzic はその専門ではありま
せん。
それでも回答すると・・・
 ・一般...
20
KOF2010 11/5 リアルビジネス Ruby
自動化がうまくいかないような例は?
Q. 逆に自動化がうまくいかないような事例は?
A. いっぱいあります。
  特に複雑な判断が必要な場合は、自動化せ
ず、
  人手で介するようにした...
Upcoming SlideShare
Loading in …5
×

リアルビジネスRuby

1,776 views

Published on

KOF 2010 /関西Ruby会議03 で 10月5日発表した内容です。

Published in: Technology
  • Be the first to comment

リアルビジネスRuby

  1. 1. リアルビジネス Ruby 2010/11/5 cuzic
  2. 2. 2 KOF2010 11/5 リアルビジネス Ruby 自己紹介 cuzic といいます きゅーじっく と読みます Ruby 暦は かれこれもう10年くらい いろんな活動をしています。 Ruby 勉強会@尼崎  10月まで「リファクタリング Ruby エディ ション」  の読書会をしていました。  来年「メタプログラミング Ruby 」の読書会を 始めます。  2011年1月29日(土) の予定・・・。 場所: JR 尼崎駅徒歩 2 分の好立地です
  3. 3. 3 KOF2010 11/5 リアルビジネス Ruby この発表で言いたいこと 不況が長引いていますよね・・・ システム開発案件の単価は下がる一方・・・ その一方コンプライアンスはうるさくな って ルーチンワークは増えまくり 仕事がラクになり、 会社も儲かる すぐに使える Ruby 実践事例を 紹介します。
  4. 4. 4 KOF2010 11/5 リアルビジネス Ruby キャズムを超えた Ruby Ruby はキャズムを超えました 今は「アーリーマジョリティ」フェーズ 少しずつ、 Ruby での開発案件も増加の 傾向 イマコ コ イマコ コ
  5. 5. 5 KOF2010 11/5 リアルビジネス Ruby Ruby は Ruby on Rails だけじゃない Ruby on Rails Ruby ブレイクの起爆剤 WEB アプリケーション開発フレームワーク Java の 10 倍開発効率がいい! けど、それだけじゃない! Ruby は汎用プログラミング言語 ログ処理、ネットワークプログラミング、 外部の DLL の呼出し、 GUI プログラミング  etc 、 etc 他の言語にできて、 Ruby にできないことはな い! いざとなれば、 JRuby や IronRuby などもあるし!
  6. 6. 6 KOF2010 11/5 リアルビジネス Ruby では特に、いつ Ruby を使えるか? 開発の現場を効率化できる事例を3つ紹 介 GUI の画面項目の確認作業の自動化 テーブル定義書からの  SQL の自動生成 重複が多いプログラムの自動生成 事務処理業務の効率化事例を2つ紹介 複数の Excel ファイルの一括印刷 画面遷移が遅く手数が多い WEB 操作の自動 化
  7. 7. 7 KOF2010 11/5 リアルビジネス Ruby 画面項目の確認作業の自動化(1) やりたいこと GUI 部品の Excel 管理表と、実際にできた GUI 画面とで、不一致がないかどうかの確認 単一行テキスト単一行テキスト名前 複数行テキスト複数行テキスト 住所 送信 Excel 管理表で管理されている コントロールやプロパティと 作成中のアプリケーションの 値が一致しているかを確認 アプリケーション1
  8. 8. 8 KOF2010 11/5 リアルビジネス Ruby 画面項目の確認作業の自動化(2) 実現方法 Windows アプリケーションは GUI 部品のク ラスやプロパティを外部から取得可能   AutoITX : GUI 部品のクラスやプロパ ティを    取得する一連の関数を COM 技術で公 開 Excel も COM 技術で、値の取得等が可能 Win32OLE : COM 技術を Ruby から利用 する ためのライブラリ 超便利。
  9. 9. 9 KOF2010 11/5 リアルビジネス Ruby テーブル定義書からの SQL の自動生成(1) テーブルの定義から、 CREATE TABLE 等の SQL を自動生成 CREATE TABLE bookmarks ( id SERIAL PRIMARY KEY, user_id INTEGER , url VARCHAR(255) FOREIGN KEY (user_id) REFERENCES users(id) );
  10. 10. 10 KOF2010 11/5 リアルビジネス Ruby テーブル定義書からの SQL 自動生成 (2) Excel は Ruby から COM 経由で操作可 能 テキスト生成は Ruby の得意分野! 自動生成することで 2度手間を削減することができる 生成される SQL の品質を一定化できる 管理表の品質が保持されやすくなる 逆向きも可能 実際のデータベースからリバースエンジニア リングして、テーブル定義書 (Excel) の生成 ActiveRecord と Win32OLE の夢の協演が実
  11. 11. 11 KOF2010 11/5 リアルビジネス Ruby 重複が多いプログラムの自動生成(1) GUI プログラムの自動生成 コントロールの配置などは非常に単純な作業のため 、 自動生成に向いている テストプログラムの自動生成 特にユニットテストでの利用が多いようです IronRuby 、 JRuby を活用して、他の言語のテスト を Ruby で書くこともできます WEB ・・・ Selenium Ruby で統合テストを作成可 能 Selenium ・・・ WEB ブラウザを利用したテスト自動化 ツール Ruby on Rails の script/generate も自動生成の例 データベース関係は自動生成の宝庫
  12. 12. 12 KOF2010 11/5 リアルビジネス Ruby 重複が多いプログラムの自動生成(2) プログラム自動生成は何が良いか? 品質の底上げにつながる 似たコードが生成されるため、保守性が向上 ベテランのノウハウを新人に自然に伝授でき る Ruby on Rails ではコードの自動生成によって、 MVC Framework Convention over Configuration Test First などのノウハウを自然に学べるよう工夫されている ベテランにとってもツールに落とし込む過程 で、 互いの開発ノウハウ、規約を共有・洗練でき
  13. 13. 13 KOF2010 11/5 リアルビジネス Ruby 事務処理業務の効率化事例 ( Excel 編) 複数の Excel 帳票を開いて、一括印刷 Ruby を使えば、複数の Excel ブック印刷も 簡単 Excel は非常に多くの作業を COM で公開 値の入力、取得、変更、セルの表示形式の設定 罫線の取得、生成。グラフの作成 オートシェイプの作成。色等の加工 画像処理(明るさの変更、グループ化画像を1枚 に) filename1 = “ ~~ .xls” ; filename2 = “ ~~ .xls” xl = WIN32OLE.new(“Excel.Application”) xl.Workbooks.Add(filename1); xl.Workbooks.Add(filename2) xl.Workbooks.each do |book| book.PrintOut end
  14. 14. 14 KOF2010 11/5 リアルビジネス Ruby 事務処理業務の効率化事例( WEB 編) WEB 基幹ソフト操作の自動化も可能 方法1: 情報取得のみであれば、 open-uri 、 mechanize などの利用が効果的 wget などの外部実行ファイルも開発効率向上に役 立つ 方法2: 操作が必要で、 Ajax などもあれ ば・・・ InternetExplorer を COM 経由で制御 FireFox を Selenium 経由で制御 方法3: JavaApplet などもあれば・・・ 開発者ならいろいろ方法がありますが、ただの利 用者なら汎用的な AutoIT などで、キーボード操 作、マウス操作をシミュレートして、自動操作す
  15. 15. 15 KOF2010 11/5 リアルビジネス Ruby まとめ いろいろな 実際の業務をカイゼンする 方法を紹介してきました 時間が残っているようなので、 質疑応答 デモンストレーション 質疑応答(自問自答編) の3つを用意しています。
  16. 16. 16 KOF2010 11/5 リアルビジネス Ruby   質疑応答 (自問自答編)
  17. 17. 17 KOF2010 11/5 リアルビジネス Ruby いろんなテクを紹介してきましたが・・ ・ Q. うまく自動化して、効率化できる作業を どうやって見つけるの? 作業をしている本人なら、わりかし簡単 ネックとなるのは「できるわけがない」という思い込み 実は意外に結構どんな業務でも自動化できちゃう Q. 管理職が部下の効率化可能な業務を見つけ出 せるか? これは案外 難しい・・・。 そもそも、管理職は部下の業務内容を知らない・・ ・。 日常的な事務処理などのルーチンワークの詳細は知らない どんな業務をしているか気軽に話せる関係が必要
  18. 18. 18 KOF2010 11/5 リアルビジネス Ruby なんで、 Ruby ? Q. 今回紹介したのって COM とか結構 どの 言語からでも利用できるものが多いけど 、なんで、開発言語は Ruby を採用する の? A. 汎用性と生産性のバランスが優れているから 汎用性) シェルスクリプトや Makefile の代替から       大規模アプリケーションまで可能        Win32API の呼び出しや JRuby 、 IronRuby を利用 して、       既存のアプリケーション資産の活用も可能であるため。 生産性) ハッシュや正規表現リテラルの存在       豊富なライブラリの存在       読みやすく、覚えやすい文法
  19. 19. 19 KOF2010 11/5 リアルビジネス Ruby タイトルは釣り? Q. もっと開発案件としての Ruby の動 向とかを聞きたいんだけど A. 残念ながら、 cuzic はその専門ではありま せん。 それでも回答すると・・・  ・一般に、 Ruby 採用事例は増えているようです。  ・ただ、現状でも PHP 、 Java などの開発が主流です  ・短納期、高機能の WEB システム開発が多いそう  ・運用・デプロイ、レンタルサーバ業者の選定、 チーム開発 などに課題が多いようです  ・全体に今は幻滅期を乗り越え、適切な要件の場合に Ruby を採用しようとする機運が進んでいるようです。
  20. 20. 20 KOF2010 11/5 リアルビジネス Ruby 自動化がうまくいかないような例は? Q. 逆に自動化がうまくいかないような事例は? A. いっぱいあります。   特に複雑な判断が必要な場合は、自動化せ ず、   人手で介するようにした方がいいと思いま す。    典型的にはデータのクレンジング作業は、 人手で実施して、機械処理用のデータを入力し たのちに、自動処理させるというのは1つのノ ウハウです。    あと、たとえ単純作業でも Java アプレッ トとかネイティブでない GUI の場合は難しい です。

×