Successfully reported this slideshow.
組込みの仕事場でRubyを使うしずと (@shizuto_a)2013/6/15第58回Ruby/Rails勉強会@関西
最初におことわり残念ながら組み込みRuby (Rite, mruby)の話ではありません
最初におことわりRubyライトユーザな組込みプログラマがRubyを細々と使う、ライトユーザのライトユーザによるライトユーザのためのお話です
しずと (@shizuto_a)Rubyライトユーザ歴10年ぐらい仕事は組込みソフト(車載機器)言語好き(仏、亜、洪、etc)
組込みソフトの仕事場
組込みソフトの仕事場基本はC言語で開発する
組込みソフトの仕事場基本はC言語で開発するソフトとしては古い技術で生きている
組込みソフトの仕事場基本はC言語で開発するソフトとしては古い技術で生きているRubyistsにはつまらないライトなRubyistsが活躍できる!
Ruby勉強会@関西 参加者Rubyistの輪RubyistsPerl MongersPythonisti
同僚(組込みソフト)Rubyistの輪RubyistsPerl MongersPythonisti
同僚(組込みソフト)Rubyistの輪RubyistsPerl MongersPythonisti
同僚(組込みソフト)Rubyistの輪RubyistsPerl MongersPythonistiできればRubyの輪を広げたい
組み込み (車載)の環境1.品質(信頼性)重視2.製造コスト重視3.潤沢ではない環境4.慎重なプロセス管理
1. 品質(信頼性)重視車なので不具合流出は事故に直結バグ一つが信用問題事故の前でもリコールすれば大損失
2. 製造コスト重視製品は車の部品ソフトの値段よりハードの値段
3. 潤沢ではない環境CPU : 20~80MHzRAM : 64KB~256KBほぼC言語(一部アセンブラ)
4. 慎重なプロセス管理ウォーターフォール設計レビュー、ソースレビューC1カバレッジの単体検査検査、検査、検査品質とは「変えない」こと
なので「アジャイルでRuby使ってやろうぜ」と気楽には言えないスクリプト言語が好きな人もいるけど嫌いな人もいる
Why (not) Arabic Ruby?
Why not Ruby?Rubyistなら仕事でもRuby使いたいよね
Why Ruby?Enjoy Programmingしたいから。(C言語も楽しいけど)
Rubyを使うために何にRubyを使おうか?抵抗なく受け入れられるのは?できれば喜んでもらえるのは?
Where can we enjoy Ruby?
どこで使うか(夢)
どこで使うか(夢)Rubyで制御プログラムを書く
どこで使うか(夢)Rubyで制御プログラムを書くRubyでプログラムを書いてCに変換
どこで使うか(夢)Rubyで制御プログラムを書くRubyでプログラムを書いてCに変換Cで書いたものをRubyを使って検証
どこで使うか(夢)Rubyで制御プログラムを書くRubyでプログラムを書いてCに変換Cで書いたものをRubyを使って検証プロトタイプをRubyで作る
どこで使うか(夢)Rubyで制御プログラムを書くRubyでプログラムを書いてCに変換Cで書いたものをRubyを使って検証プロトタイプをRubyで作る夢は大事だけど、まだもう少し先
どこで使うか(現実)
どこで使うか(現実)電卓代わりにirb (pry)を使う
どこで使うか(現実)電卓代わりにirb (pry)を使う補助的なプチツールを作る
どこで使うか(現実)電卓代わりにirb (pry)を使う補助的なプチツールを作る設定ファイルやテーブルの生成を行う
どこで使うか(現実)電卓代わりにirb (pry)を使う補助的なプチツールを作る設定ファイルやテーブルの生成を行う作ったものを他人に使ってもらう
Rubyの立ち位置Rubyを主役級には(まだ)しにくい脇役、エキストラとして活躍しようRubyの輪を徐々に広げよう
おことわり
おことわりまだRubyの輪を広げられてはいません
Gems, Tools, OrangeJuices
irb / pry高性能電卓としても使えるインタラクティブ環境irbは標準添付、pryはgem install pry数値の確認などで使っています
例題(irb / pry)(x / 1.8)を整数演算だけで精度良く計算するには?C言語で長くても3行以内浮動小数点と除算使用不可xの範囲は0∼65535等、制限あり
正規表現テンプレートや静的コード検証、検査ツールのログ解析などテキスト処理ができると嬉しい場面は多い
例題 (正規表現)Cソースの中から32文字以上の変数名をリストアップしよう
ocraスクリプトをWindowsアプリにするRubyistでない人に作ったものを使ってもらうための便利なアイテムRuby1.8系ではExerb
例題 (ocra)作ったツールを ocra にかけてみよう引数なしで実行したときにrequireを全て通るなど、多少制限がある
eRubyテンプレートの中にRubyのコードを埋め込んで展開する <% rubycode %>設定ファイルやテーブルを生成するのに便利Rubyist以外も編集できるようにする
例題 (eRuby)“変数1”, type=char, range=0...20“変数2”, type=long, range=-1000..1000Excelの変数詳細リストから上記のような設定ファイルを生成しよう
RSpec / Test::UnitTest::Unit は標準、RSpecは gem installrspec で。何を使うかは好みで。プチツールならテストケースを説明できれば納得してもらえることも多い
例題 (RSpec / Test::Unit)ひがきさんの初心者レッスンに期待!「ツール作るのはいいけど、それで不具合出したりしないよね? どんなパターンで試したの?」に先に備えよう
黒魔術は控えめにメタプログラミングは面白いけど使いどころは慎重に考えよう。DSLを作るのはいいかも。でも時間を取られすぎないように気をつけよう。
Key Points
まずは脇役に徹する主役(のルールや風土)を尊重する
まずは脇役に徹する主役(のルールや風土)を尊重するプロダクトの品質のことを常に考える(納得いく答えを用意しておく)
まずは脇役に徹する主役(のルールや風土)を尊重するプロダクトの品質のことを常に考える(納得いく答えを用意しておく)いつか主役になれる日が来るかも…
Rubyは強力な武器強力な武器を使うときには責任が伴う
Rubyは強力な武器強力な武器を使うときには責任が伴う先に組込ソフトでちゃんと信頼を得ておくのも大事です
Rubyは強力な武器強力な武器を使うときには責任が伴う先に組込ソフトでちゃんと信頼を得ておくのも大事です自分の置かれた環境に注意して使おう
Let’s Enjoy Programming!
Upcoming SlideShare
Loading in …5
×

20130615 組込みの仕事場でRubyを使う

953 views

Published on

第58回 Ruby/Rails勉強会@関西 でお話しした、ライトユーザなRubyistの日常のお話です。

Published in: Technology
  • Be the first to comment

20130615 組込みの仕事場でRubyを使う

  1. 1. 組込みの仕事場でRubyを使うしずと (@shizuto_a)2013/6/15第58回Ruby/Rails勉強会@関西
  2. 2. 最初におことわり残念ながら組み込みRuby (Rite, mruby)の話ではありません
  3. 3. 最初におことわりRubyライトユーザな組込みプログラマがRubyを細々と使う、ライトユーザのライトユーザによるライトユーザのためのお話です
  4. 4. しずと (@shizuto_a)Rubyライトユーザ歴10年ぐらい仕事は組込みソフト(車載機器)言語好き(仏、亜、洪、etc)
  5. 5. 組込みソフトの仕事場
  6. 6. 組込みソフトの仕事場基本はC言語で開発する
  7. 7. 組込みソフトの仕事場基本はC言語で開発するソフトとしては古い技術で生きている
  8. 8. 組込みソフトの仕事場基本はC言語で開発するソフトとしては古い技術で生きているRubyistsにはつまらないライトなRubyistsが活躍できる!
  9. 9. Ruby勉強会@関西 参加者Rubyistの輪RubyistsPerl MongersPythonisti
  10. 10. 同僚(組込みソフト)Rubyistの輪RubyistsPerl MongersPythonisti
  11. 11. 同僚(組込みソフト)Rubyistの輪RubyistsPerl MongersPythonisti
  12. 12. 同僚(組込みソフト)Rubyistの輪RubyistsPerl MongersPythonistiできればRubyの輪を広げたい
  13. 13. 組み込み (車載)の環境1.品質(信頼性)重視2.製造コスト重視3.潤沢ではない環境4.慎重なプロセス管理
  14. 14. 1. 品質(信頼性)重視車なので不具合流出は事故に直結バグ一つが信用問題事故の前でもリコールすれば大損失
  15. 15. 2. 製造コスト重視製品は車の部品ソフトの値段よりハードの値段
  16. 16. 3. 潤沢ではない環境CPU : 20~80MHzRAM : 64KB~256KBほぼC言語(一部アセンブラ)
  17. 17. 4. 慎重なプロセス管理ウォーターフォール設計レビュー、ソースレビューC1カバレッジの単体検査検査、検査、検査品質とは「変えない」こと
  18. 18. なので「アジャイルでRuby使ってやろうぜ」と気楽には言えないスクリプト言語が好きな人もいるけど嫌いな人もいる
  19. 19. Why (not) Arabic Ruby?
  20. 20. Why not Ruby?Rubyistなら仕事でもRuby使いたいよね
  21. 21. Why Ruby?Enjoy Programmingしたいから。(C言語も楽しいけど)
  22. 22. Rubyを使うために何にRubyを使おうか?抵抗なく受け入れられるのは?できれば喜んでもらえるのは?
  23. 23. Where can we enjoy Ruby?
  24. 24. どこで使うか(夢)
  25. 25. どこで使うか(夢)Rubyで制御プログラムを書く
  26. 26. どこで使うか(夢)Rubyで制御プログラムを書くRubyでプログラムを書いてCに変換
  27. 27. どこで使うか(夢)Rubyで制御プログラムを書くRubyでプログラムを書いてCに変換Cで書いたものをRubyを使って検証
  28. 28. どこで使うか(夢)Rubyで制御プログラムを書くRubyでプログラムを書いてCに変換Cで書いたものをRubyを使って検証プロトタイプをRubyで作る
  29. 29. どこで使うか(夢)Rubyで制御プログラムを書くRubyでプログラムを書いてCに変換Cで書いたものをRubyを使って検証プロトタイプをRubyで作る夢は大事だけど、まだもう少し先
  30. 30. どこで使うか(現実)
  31. 31. どこで使うか(現実)電卓代わりにirb (pry)を使う
  32. 32. どこで使うか(現実)電卓代わりにirb (pry)を使う補助的なプチツールを作る
  33. 33. どこで使うか(現実)電卓代わりにirb (pry)を使う補助的なプチツールを作る設定ファイルやテーブルの生成を行う
  34. 34. どこで使うか(現実)電卓代わりにirb (pry)を使う補助的なプチツールを作る設定ファイルやテーブルの生成を行う作ったものを他人に使ってもらう
  35. 35. Rubyの立ち位置Rubyを主役級には(まだ)しにくい脇役、エキストラとして活躍しようRubyの輪を徐々に広げよう
  36. 36. おことわり
  37. 37. おことわりまだRubyの輪を広げられてはいません
  38. 38. Gems, Tools, OrangeJuices
  39. 39. irb / pry高性能電卓としても使えるインタラクティブ環境irbは標準添付、pryはgem install pry数値の確認などで使っています
  40. 40. 例題(irb / pry)(x / 1.8)を整数演算だけで精度良く計算するには?C言語で長くても3行以内浮動小数点と除算使用不可xの範囲は0∼65535等、制限あり
  41. 41. 正規表現テンプレートや静的コード検証、検査ツールのログ解析などテキスト処理ができると嬉しい場面は多い
  42. 42. 例題 (正規表現)Cソースの中から32文字以上の変数名をリストアップしよう
  43. 43. ocraスクリプトをWindowsアプリにするRubyistでない人に作ったものを使ってもらうための便利なアイテムRuby1.8系ではExerb
  44. 44. 例題 (ocra)作ったツールを ocra にかけてみよう引数なしで実行したときにrequireを全て通るなど、多少制限がある
  45. 45. eRubyテンプレートの中にRubyのコードを埋め込んで展開する <% rubycode %>設定ファイルやテーブルを生成するのに便利Rubyist以外も編集できるようにする
  46. 46. 例題 (eRuby)“変数1”, type=char, range=0...20“変数2”, type=long, range=-1000..1000Excelの変数詳細リストから上記のような設定ファイルを生成しよう
  47. 47. RSpec / Test::UnitTest::Unit は標準、RSpecは gem installrspec で。何を使うかは好みで。プチツールならテストケースを説明できれば納得してもらえることも多い
  48. 48. 例題 (RSpec / Test::Unit)ひがきさんの初心者レッスンに期待!「ツール作るのはいいけど、それで不具合出したりしないよね? どんなパターンで試したの?」に先に備えよう
  49. 49. 黒魔術は控えめにメタプログラミングは面白いけど使いどころは慎重に考えよう。DSLを作るのはいいかも。でも時間を取られすぎないように気をつけよう。
  50. 50. Key Points
  51. 51. まずは脇役に徹する主役(のルールや風土)を尊重する
  52. 52. まずは脇役に徹する主役(のルールや風土)を尊重するプロダクトの品質のことを常に考える(納得いく答えを用意しておく)
  53. 53. まずは脇役に徹する主役(のルールや風土)を尊重するプロダクトの品質のことを常に考える(納得いく答えを用意しておく)いつか主役になれる日が来るかも…
  54. 54. Rubyは強力な武器強力な武器を使うときには責任が伴う
  55. 55. Rubyは強力な武器強力な武器を使うときには責任が伴う先に組込ソフトでちゃんと信頼を得ておくのも大事です
  56. 56. Rubyは強力な武器強力な武器を使うときには責任が伴う先に組込ソフトでちゃんと信頼を得ておくのも大事です自分の置かれた環境に注意して使おう
  57. 57. Let’s Enjoy Programming!

×