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

Post on 28-May-2015

584 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

組込みの仕事場で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 Mongers

Pythonisti

同僚(組込みソフト)

Rubyistの輪

RubyistsPerl Mongers

Pythonisti

同僚(組込みソフト)

Rubyistの輪

RubyistsPerl Mongers

Pythonisti

同僚(組込みソフト)

Rubyistの輪

Rubyists

Perl Mongers

PythonistiできればRubyの輪を広げたい

組み込み (車載)の環境

1.品質(信頼性)重視

2.製造コスト重視

3.潤沢ではない環境

4.慎重なプロセス管理

1. 品質(信頼性)重視

車なので不具合流出は事故に直結

バグ一つが信用問題

事故の前でもリコールすれば大損失

2. 製造コスト重視

製品は車の部品

ソフトの値段よりハードの値段

3. 潤沢ではない環境

CPU : 20~80MHz

RAM : 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..1000

Excelの変数詳細リストから上記のような設定ファイルを生成しよう

RSpec / Test::Unit

Test::Unit は標準、RSpecは gem install

rspec で。何を使うかは好みで。

プチツールならテストケースを説明できれば納得してもらえることも多い

例題 (RSpec / Test::Unit)

ひがきさんの初心者レッスンに期待!

「ツール作るのはいいけど、それで不具合出したりしないよね? どんなパターンで試したの?」に先に備えよう

黒魔術は控えめに

メタプログラミングは面白いけど使いどころは慎重に考えよう。

DSLを作るのはいいかも。でも時間を取られすぎないように気をつけよう。

Key Points

まずは脇役に徹する

主役(のルールや風土)を尊重する

まずは脇役に徹する

主役(のルールや風土)を尊重する

プロダクトの品質のことを常に考える(納得いく答えを用意しておく)

まずは脇役に徹する

主役(のルールや風土)を尊重する

プロダクトの品質のことを常に考える(納得いく答えを用意しておく)

いつか主役になれる日が来るかも…

Rubyは強力な武器

強力な武器を使うときには責任が伴う

Rubyは強力な武器

強力な武器を使うときには責任が伴う

先に組込ソフトでちゃんと信頼を得ておくのも大事です

Rubyは強力な武器

強力な武器を使うときには責任が伴う

先に組込ソフトでちゃんと信頼を得ておくのも大事です

自分の置かれた環境に注意して使おう

Let’s Enjoy Programming!

top related