リアルビジネスRuby

1,648 views

Published on

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

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,648
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

リアルビジネス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 の場合は難しい です。

×