プログラマーのための「Rubyの世界」に参加してきました
(プログラマーのための「Rubyの世界」)http://forkwell.connpass.com/event/20332/という勉強会イベントに参加してきたので、その内容をシェアしたいと思います。
Rubyの世界
松田 明(@a_matsuda)
自己紹介
Rubyについて
- Matz is nice.
- 純粋なオブジェクト指向言語
- スクリプト言語
- 開発者にとって読みやすい/書きやすい
- 多言語にあってRubyがない機能はない
- Rubyの誕生日: 1993.2.14
- 名前を決めた日
- 歴代コミッターの総人数は80人くらい
- 今でもアクティブなのは50人くらい
- フルタイムコミッターは世界中で3名
- パトロンはHeroku(= SalesForce)
- Rubyの日々の改良はSalesForceのおかげ
- 国産言語??
Rubyのリリースサイクル
- 2.0以降は毎年1回クリスマスごろに機械的にリリースすることにした
- 2015年クリスマス:2.3.0
- 2016年クリスマス:2.5.0
- 20XX年クリスマス:3.0.0
Rubyist
Railsについて
- DHHが作ったフレームワーク
- 設計思想
- CoC(設定より規約)
- DRY(Don't Repeat Yourself)
- 2004年ぐらいに公開開始
- Rails5.0は2015年秋にリリース予定だったが、たぶん出ない
なんでRubyなのか?
- Rubyはソーシャルコーディングと相性が良い
- ソーシャルコーディング(GitHub)
- 開発者同士がソースコードを投げ合ってコミュニケーションを取る
- Ruby = 開発者にとって読みやすい言語
- RUbyGems & Bundlerという優れたパッケージシステム
- ライブラリ百花繚乱の時代には必須の仕組み
- 新しいものたちはRubyコミュニティからやってくる
- Rubyに触れていると新しいパラダイムに触れられるのが楽しみ
コミュニティ
- *.rbという地域コミュニティが多い
- Seattle.rb 2001年くらい〜が発祥
- Asakusa.rb 2008年〜
- 毎週どこかの国でカンファレンスが行われている
- オフラインのコミュニケーションができるのが強み
なんでRailsなのか?
OSSについて
- OSSを仕事で使うと楽ができる
- 巨人の肩に乗る
- 納品物の大部分は誰か頭の良い人がつくったもの
- うまくやれば楽ができる
- OSSを仕事で使う覚悟
- 自分で選んだOSSもアプリケーションの一部
- 自分が書いたアプリケーションとOSSの境界
- 境界なんてない
- ソースは全て公開されているが、他人のバグを引き受ける覚悟が必要
- 自分が選んだものは自分で責任を持つ
じゃあどうする?
- ソースは全て読むのが理想
- 「OSSに貢献」という立派なものではなく、「部屋の片付け」くらいの感覚
- 気がついたらメンテナーになっている…
OSSのバージョン
- 「枯れたバージョン」なんてない
- 安定しているものは最新版
- バグもセキュリティホールも全てオープン
- 常に最新のものを使う
- アップデートのコストはしっかり払う
- いつでもアップデートできるようにE2Eテストをしっかり書いておく
- 常に最新のものを使う喜び
- 数々の新機能
- パフォーマンスの向上
- 自分でパフォーマンスをチューニングするのではなく、アップデートするだけでパフォーマンスが上がる
- Ruby2.3.0もパフォーマンスが改善する見込み
- フレッシュなバグが踏める楽しみ
Rubyの歩き方
今どきのやり方でWebサービスを作ろう
後藤大輔(@idesaku)
今どきのやり方って?
結局はコミュニケーションの問題に行きつく
- 一人だけではお金を生み出すWebサービスを作ることは難しい
- プロフェッショナルとしてのコミュニケーションが必要
- プロとしてやっちゃダメなこと
- 口頭だけのコミュニケーション
- 情報共有がなされていない
- 口頭が一番ラクなので、ドキュメントが残らない
- 口頭だけのコミュニケーション
- 状況は変わった
作法
- リモートワーク
- 全てのワークがWebサービスなので、リモートワークが現実的になった
- リモートワークにすることによって、オンラインで必要な作法が分かる
- 組織を変えようと思ったら、ボスに相談
- 結局はトップダウンでやるしかない
- ダメなら転職しかない
感想
Rubyがどういう言語かを紹介する初心者向けの内容であり、少し物足りなかった。
ただ、現役のコミッターの方の言葉でどのような思想でRubyやRailsが開発されているのか、Rubyによってどのようなイノベーションが起こっているかなどという話は刺激があった。
後半のセッションでは、今どきの開発のやり方を紹介してもらったが、セキュリティの厳しい大企業(ソースが外に置けない、Webサービスの利用に申請や審査が必要など)では実現が難しいだろう。
うーん、その解決方法が転職しかないっていうのは答えとしては寂しいかな。
全社レベルでGithubを導入したり、Slackを利用するのは敷居が高いので、少人数のプロジェクトごとにボトムアップで導入していくことが現実的かと思う。というか、そうしてる。
具体的には、ソース管理をSubversionからGitLabに移行したり、Redmineでタスク管理をしたり、チャットをSlackに置き換えたりして、開発プロセスの効率化を図っています。その成果をもって、他のプロジェクトに展開していくことを狙っています。