72
オオオオオオオオオ オオオオオオオオオ オオ オオ Ruby Ruby オオ オオ オオ オオ オオ オオ

オレポータビリティ

Embed Size (px)

DESCRIPTION

オレポータビリティ. 日本 Ruby の会 青木 峰郎. 自己紹介. 自己紹介 1/3. 文系の大学生 専門は …… 哲学?. 開発と言えば自宅. 自己紹介 2/3. Ruby 関係者 標準添付ライブラリ メンテナ 著書いろいろ. 自己紹介 3/3. 著書 『 ふつうの Haskell プログラミング 』 『 ふつうの Linux プログラミング 』 『Java を独習する前に読む本 』 『Ruby ソースコード完全解説 』 『Ruby レシピブック 』 『Ruby を 256 倍使うための本 無道編 』. - PowerPoint PPT Presentation

Citation preview

オレポータビリテオレポータビリティィ

日本日本 RubyRuby の会の会青木 峰郎青木 峰郎

自己紹介自己紹介

自己紹介 自己紹介 1/31/3

文系の大学生文系の大学生

専門は……哲学?専門は……哲学?

開発と言えば自宅開発と言えば自宅

自己紹介 自己紹介 2/32/3

RubyRuby 関係者関係者標準添付ライブラリ標準添付ライブラリ メンテナメンテナ著書いろいろ著書いろいろ

自己紹介 自己紹介 3/33/3

著書著書 『ふつうの『ふつうの HaskellHaskell プログラミング』プログラミング』 『ふつうの『ふつうの LinuxLinux プログラミング』プログラミング』 『『 JavaJava を独習する前に読む本』を独習する前に読む本』 『『 RubyRuby ソースコード完全解説』ソースコード完全解説』 『『 RubyRuby レシピブック』レシピブック』 『『 RubyRuby をを 256256 倍使うための本 無道編』倍使うための本 無道編』

言語は言語はほぼ確実にほぼ確実にRubyRuby かか CC

./lib/bitchannel/syntax.rb:398:

[BUG] Segmentation fault

ruby 1.9.0 (2005-10-22) [x86_64-linux]

「開発環境」「開発環境」って何?って何?

部屋部屋

ハードウェアハードウェア

ソフトウェアソフトウェア

部屋の様子部屋の様子

自室自室

自室(自室(本棚本棚))

自室(デスクトップ)自室(デスクトップ)

自室(キーボード)自室(キーボード)

ハードウェアハードウェア

部屋の様子(マシン)部屋の様子(マシン)

55 つのアーキテクチャつのアーキテクチャx86x86AMD64AMD64AlphaAlphaSPARCSPARCPOWERPOWER

77 つのつの OSOS

LinuxLinuxFreeBSDFreeBSDNetBSDNetBSD

Tru64UNIXTru64UNIXSolarisSolarisAIXAIXWindowsWindows

99 つのプラットフォームつのプラットフォーム Linux/x86Linux/x86 Linux/AlphaLinux/Alpha Linux/AMD64Linux/AMD64 FreeBSD/AlphaFreeBSD/Alpha NetBSD/AlphaNetBSD/Alpha

Tru64UNIX/Tru64UNIX/AlphaAlpha

Solaris/SPARCSolaris/SPARC AIX/POWERAIX/POWER Windows/x86Windows/x86

「こんなに「こんなにたくさんたくさんあってあってどうすんどうすんの?」の?」

愛でるため愛でるため

紺筐体紺筐体萌え~萌え~

ついでについでにRuby Ruby のテストものテストも

しているしている

テーマ解説テーマ解説

前提:前提:マシン台数もマシン台数もプラットフォープラットフォームもムも多すぎる多すぎる

オレポータビリテオレポータビリティィ

俺俺(の)(の) portabiportabi

litylity

→ → オレポータビリテオレポータビリティィ  が高い!  が高い!

どんな環境でもどんな環境でも同じように開発でき同じように開発できるる

オレポータビリティオレポータビリティをを

高める戦略高める戦略

戦略(戦略( 11 ))必須ソフトウェア必須ソフトウェアをを限界まで削る限界まで削る

どこでも使えるどこでも使えるソフトウェアがソフトウェアがそもそも少ないそもそも少ない

たくさんソフトたくさんソフトウェアを使うとイウェアを使うとインストールがめんンストールがめん

どくさい!どくさい!

必ず使うソフトウェア必ず使うソフトウェアRuby Ruby CC コンパイラなどコンパイラなど zshzsh viviバージョン管理システムバージョン管理システム独自の開発ツール独自の開発ツール

使うもの使うもの(( 11 ))

RubRubyy開発版 + 安定版ぜん

forall-ruby forall-ruby コマンコマンドド

システムに存在するシステムに存在する全バージョンの 全バージョンの rubyruby にに同じオプションを与えて実同じオプションを与えて実行行

使うもの(使うもの( 22 ))

CC コンパイラなコンパイラなどど

gcc, bison, flex, agcc, bison, flex, autoconf, make, utoconf, make, ……

使うもの(使うもの( 33 ))

zshzsh

使うもの(使うもの( 44 ))

vivi

複数ファイルを複数ファイルを編集するときは編集するときはジョブ制御でがんばジョブ制御でがんばるるCtrl-Z Ctrl-Z でサスペンでサスペンドドfg fg コマンドで復帰コマンドで復帰

使うもの(使うもの( 55 ))

バージョン管バージョン管理システム理システム

CVS か Subversion

使うもの(使うもの( 66 ))

独自の開発ツール独自の開発ツール ReFeReFe rdefsrdefs

ReFeReFe

RubyRuby のリファレンスマニュのリファレンスマニュアルをアルを検索するツール検索するツール

rdefsrdefs コマンコマンドド

ファイルに定義されているファイルに定義されているクラスやメソッドをクラスやメソッドを抜き出して表示する抜き出して表示する

独自ツールのポイント独自ツールのポイント

Ruby Ruby だけで書くだけで書くインストーラを付けるインストーラを付ける

戦略(2)戦略(2)カスタマイズしなカスタマイズしないい

いちいちいちいちカスタマイズカスタマイズしてられるか!してられるか!

カスタマイズしなくカスタマイズしなくてもても使う気になる使う気になるソフトウェアだけ使ソフトウェアだけ使う!う!

No configuration No configuration isis

Good Good configuration.configuration.

ノウハウをノウハウを作らないこと作らないこと

ががノウハウノウハウ

戦略(戦略( 33 ))ホームディレクトリのホームディレクトリの構造は全マシンで構造は全マシンで共通化する共通化する

各種設定を各種設定を減らすためにも減らすためにも

共通化が重要共通化が重要

Convention Convention over over

configuration.configuration.

慣習じゅーよー慣習じゅーよー

UNIXUNIX のの /usr/usr を真似を真似るる

bin, etc, lib, bin, etc, lib, share, src, vshare, src, v

arar

自分で自分で作ったもの作ったものはは~/c ~/c に置くに置く

戦略(戦略( 44 ))徹底的に徹底的にバージョン管理バージョン管理

共有するため共有するため

~/c ~/c 以下は 例外なく以下は 例外なくバージョン管理システバージョン管理システムムで管理するで管理する

ソースコーソースコードド

開発ツール開発ツール

大学のレポー大学のレポートト

戦略のまとめ戦略のまとめ

戦略(戦略( 11 ))必須ソフトウェア必須ソフトウェアをを限界まで削る限界まで削る

戦略(戦略( 22 ))カスタマイズしカスタマイズしないない

戦略(戦略( 33 ))ホームディレクトホームディレクトリのリの構造は全マシンで構造は全マシンで共通化する共通化する

戦略(戦略( 44 ))徹底的に徹底的にバージョン管バージョン管理理

結論:結論:あたりまえのことあたりまえのことをを徹底的にやるのが徹底的にやるのがポイントポイント

ご静聴ご静聴ありがとうございまありがとうございま

したした