なんとなく覚えログ

テキストメモ的な覚えログです。技術的な情報を書いていきます。

rwc2013メモ

2013年11月21日22日に松江で開催されたRubyWorld Conference 2013のメモ

1日目

まつもとゆきひろ (一般財団法人Rubyアソシエーション)

Aiming the Moving Target』

昔(20年以上前)のソフトウェア
  • プロジェクトは長期化(3年単位)
  • 膨大なドキュメントでウォーターフォール
  • システムは構築することが最優先(満足度は犠牲にされる) → システムを持ってるだけで差別化できた(コンピューターは高価)
間違った前提
  • ソフトウェアは柔軟で変更しやすい
  • 何を作りたいか把握してる
  • 状況は変化しない
現在のソフトウェア
  • プロジェクトは短期
  • コンピュータ、クラウド、ネットワークは安価
  • 凄いソフトウェアを作らないといけない
  • ツールとか言語のおかげで早く作れるようになった
対策
  • 無知であることを認める
    → 今も凄いソフトウェアの作り方は分からない
  • 自分ができることは少ない
成功のポイント
  • 試行錯誤を繰り返す(早く、何度も試して、何度も撤退する)
  • 熱心にコードを書かない(コードを書かないために熱心に働く)
  • 競争力維持に必要な物以外はOSSにしてしまうのが正しい戦略
    → コアな部分を小さくとどめる
  • コミュニティを育て維持する
すぐに始められること

*「失敗したら終わりだ」から「失敗してもいい」へ
→「失敗」を「ナイストライ」に言い換える

Aaron Patterson (AT & T)

『Speeding up Rails internals using unique Ruby techniques.』

ruby,railsのコミッター

Yak Shaving

不具合をみつけたらわかるまで調べるのでその過程で色々な問題が 次々でてくる

仮説→計測→改善→計測→検証

人が言うことを鵜呑みにしない

→ 間違ってはいないが一面しか捉えていないことが多い。

事例紹介

一つの不具合から
rubyVMを学び、
DoS攻撃の対策になり、
railsの高速化に寄与でき、
railsのメモリ効率がよくなった

高井直人 (クックパッド株式会社)

クックパッドの継続的デリバリー』

  • 2万 UU(UniqueUser) / 時間
  • 15千 recipes
  • 14千 テストケース (10分で完了)
  • デプロイ頻度 11回/日
継続的デリバリーとは
  • いつでもデプロイできるようにすること
継続的デリバリーの方法
  • デプロイメントパイプライン
    → 手順は標準化、自動化

  • 開発DBは本番のものを使用
    → 当然個人情報はマスキング → 自動レプリケーション → 本番のユーザー体験を

  • デプロイは平日の9:30am - 5:00pm
    → トラぶってもすぐに対応可能な時間帯を選択

三好秀徳 (株式会社日立ソリューションズ)

JRubyを用いたRailsアプリ開発の実情』

技術ネタ。

吉田裕美 (有限会社EY-Office)

Ruby開発者を増やすための教育について-8年間のRuby教育で得た知見』

教育業者と社内教育の比較
  • 教育業者
    • 講義、教育ノウハウがある。
      • 成績が悪い受講者のフォロー
  • 社内教育
コース内容
教育の場でやること
  • 英語ドキュメントの読み方
  • デバッグ方法
  • 良いコードの書き方
  • Webの基本
  • Webの脆弱性
ポイント
  • 関係者の顔が見えるように
  • メタ教育
  • 実際に手を動かす(失敗→考える→定着)
  • コミュニケーション
  • 場数
  • IDEは使わない(やってることが隠蔽されるので)

安川要平 (YasuLab)、八田昌三 (ビヨンド・パースペクティブ・ソリューションズ株式会社)

『Social Translating: Rails TutorialとRuby Hacking Guideの翻訳を支える仕組み』

・・・視聴してない。

五十嵐邦明 (株式会社spice life・一橋大学)

『ひろがるRubyの学びの場』

・・・視聴してないけど、気になるwordをtwitterなどから転用

Ruby講義について

  • 目的はプログラミングも企画も出来る人材を育てること
  • 文系の学科、プログラミング未経験者向け。前期はRuby、後期はRails

やってみて気づいたところ

  • shellの世界とRubyの世界の理解
  • 文法よりもアルゴリズムが難しい
  • 何故かHashが苦手
  • プログラマー向け入門書はあるが、初心者向け無い
  • エンジニアが教えることでで最新rubyなどに追従できる

2日目

Tom Preston-Werner (GitHub Inc. CEO)

『The Internet Axiom: Escaping the Tyranny of Time and Space』

自分でスポットライトの演出

インターネットが使える時代は素晴らしい
電気が生まれた時代に似ている

インターネットは様々なものを変えていく

社会のなかでインターネットが無いものとして動いているものがチャンスとなる

  • カギ
  • お金
  • 病院(問診票)
  • snapchat
  • UBER(タクシー)
  • SPOON ROCKET
  • GitHub

木島浩暁 (株式会社日立ソリューションズ)

『行政業務システムのRuby化(開発事例紹介)』

技術ネタ。

野村真一 (株式会社クラウドワークス)

『日本最大級のクラウドソーシング「クラウドワークス」の超速事業起ち上げにおいてRubyの果たした役割』

オンラインで完結する仕事の斡旋

ミッション
  • 「21世紀の新しいワークスタイルを提案する」

  • 背景は

大切にしていること
  • ユーザエクスペリエンス 「働くを通して人々に笑顔を」 「1クリックで世界の仕事とスキルにアクセスを」
契約
  • 時間での契約が委託者、受託者双方にメリットあり

相澤歩 (株式会社セールスフォース・ドットコム)

クラウド時代のRubyアプリケーション設計』

技術ネタ

‘the twelve-factor app'(アプリ構築に必要な12の要素)

  • コードベースと設定は分離して管理すべき
  • 共通コンポーネントはライブラリ化して複数プロジェクトで利用

川端光義 (株式会社アジャイルウェア)

Rubyistによるアジャイル開発事例紹介と進め方』

XPS & XCSの実現を理念としている

Ruby, Rubylistは生産性が高い * 映画でリラックスするように彼らはプログラミングでリラックスしている

生産性が高いことで変わったこと
  • 要件定義 == プログラミング
  • 受入テストレベルのTDDができない
  • PM管理がいらない(スケジュールが前倒しになる)
ポイント
  • 学歴は見ない、Githubリポジトリを見る
  • プログラミング以外の物をできるだけ取る
最後に

あるカンファレンスでのKent Beckのやりとり
質問者「周囲を変えないと、アジャイルやXPができない」
Kent Beck 「変えられるのは自分自身だけ、それにつられて周りは変わる」