今年もRubykaigi に行ってきました。とても勉強になることが多かったので興味があった内容をまとめます。
まずは1日目から。2,3日目も後に書きます!
もし間違い等ありましたら指摘いただけると助かります。
Conflicts and Resolutions in Ruby and Rails
- ruby1.9 対応をする上で難しかったこと
- encoding。常にencoding について考えなければならなくなった
- 逆に正しくencoding を扱うプログラムを書けるようになった
- encoding。常にencoding について考えなければならなくなった
- Rails アプリは早急に1.9 に対応する必要はあるか
- アプリについては直ぐに対応する必要はないかもしれない
- 一方ライブラリは早急に対応する必要がある
- 全てのライブラリがencoding 対応していないとユーザが混乱してしまう
- Rails3 の良いところ
- モジュール化は素晴らしい
- Arel によってRack のように抽象層が入ったことで、ORM 層を切り替えられる仕組みができた
- Rails3 がまだ改善すべきところ
- ActiveRecord をRails と切り離して使うことは難しい。
- Ruby2.0 について
- より正しくなるとしても、今までのコードの大半が動かなくなるような変更はあまりして欲しくはない
jpmobile on Rails 3 の作り方
- @conceal_rs さん
- jpmobile コミッタ
- らくらく連絡網を作っている
- らくらく連絡網
- 開発の仕方
- Heroku でテストしている
- 基本的にRails のコードを読むだけ
-
- ビューのレンダリングを行っている部分を探す
- hook を挟める場所を探す
- 挟む
リアルタイムウェブができるまで
一部の内容は、個別に質問させていただいたものです。ミントいただきました( ´艸`)
- @makoto_inoue さん(id:makotoi)
- ロンドン在住!
- セッション保存のフロントとしてredis を使っている
- 個人的にはTC を使いたかったが、redis 好きがいるのでredis を使っている
- 現在の規模ならMySQL だけでも十分いけると思う
- redis
- ソート処理等色々できる
- 一方、redis はシングルスレッドでイベントループがまわっているので、重いソートを実行してしまうと、他の処理をブロックしてしまう
Head First ふつうのシステム開発
お客さんから要望を受けて、その機能をリリースするまでをライブ形式で行う。会社でプログラムを書いている身としては、他の会社の開発環境はかなり興味深く、最高の企画のひとつでした。こういうのどんどん増えるといいなぁ。
- フェーズ
-
- 計画
- 朝会
- 開発
- レビュー
- リリース
- 環境
- Scrum
- nginx + Passennger
- 計画
- 日頃から要件、バグをBTS に溜めてある
- その一覧からスプリントでやることを決めておく
- 見積りはある程度の精度で
- チームがコミットできることを宣言する
- 要件、仕様、受け入れ条件を明確にする
- 要件
- 要件(ストーリ)を最小単位に分割する
- 開発
- テスト書く
- Q&A
- 新人がursm さんとペアプロやるのって大変じゃない?
- 最初は速いと感じたがなれる。あと、丁寧に教えてくれるので理解できる
- コントローラのテストを厳密に書くか
- 不安に思わないなら書かない。ursm さんは書かない
- ヘルパのテストは書いた方がいいと思う(kakutani さん)
- 見積りはどうやってやるのか
- 自分の質問。当初予定していなかった点が開発中に見えてきて遅れることが多いので質問
- 見積りは絶対にひとりではしない。皆でやる
- 見積りはクイズなので当たらない
- 遅れたらできるだけ速く謝る
- 恒常的に遅れているプロジェクトならチームで何が問題なのか話しあう
- 皆どのくらいの時間に帰るのか
- ursm さんが大体最後。21時くらい
- お客さんの仕事は集中力が切れる19時くらいに終える。その後社内環境改善とかしている
コミュニティナイト
ほぼ懇親会。懇親会のチケットを持っていなかった自分にとってはとても助かりました。
未踏のid:kazuk_i さんを発見。アーキテクチャの話、スケーラビリティについて伺う
- 最近読み込みを非同期に行うためにcramp を使っている
- memcached を使いつつソート等の処理を行う方法
- MySQL をインデクスのストレージとして使い、データをmemcahed にもたせた(Webアプリをとりまく最近のKVS事情、雑感 - Tous Les Jours 攻防記)
- 読み込みと書き込みの高速化
- 読み込みは並列にStorage に問い合わせてアプリ側でマージするのが最速なんじゃないかと考えている
- 書き込みは非同期処理は使えない
- コールバックが実行される順番を予測できないから
- 書き込みの高速化にはキューを使う
- キューがつまらないよう工夫する必要はある
- Life is beautiful: マルチスレッド・プログラミングの落とし穴、その2が詳しい。コメント欄もあわせて
- memcached活用は、格納オブジェクトの”粒度”がキモ - Tous Les Jours 攻防記が詳しい
- ライブラリの作り方について
- 他のライブラリを読んだり、ライブラリの対象のドキュメントを詳細に読んだりとかはあまりしていない。結構適当に作っている
- 学習の仕方
- 基本大切。ものがどういう仕組みで動いているかを把握しておく必要はあると思う
永和のid:bekkou68 さんを発見。セッション中に質問しきれなかったことについて伺う
- プログラミングは入社前からやっていた
- ruby を始めたのは入社3ヶ月前くらいから
- 帰るのは6時半くらい
- 自分の時間をもたないと何をやっているのか分からなくなる
- 毎日昼休みに何か作っている
- 皆プログラミング好き
- 皆で色々な仕組みを作って社内環境を良くしている
- プロジェクト間の情報共有はML
@nippondanji さん発見!!Rubykaigi は漢のイベントだった!
- Blog を通じて質問させていただいたり、Blog にとても助けられているのでお礼を言う
- とても柔和な方だった
- Amazon CAPTCHAはとっても良い本なので、自分がMySQL を管理している立場の人は是非
普段疑問に思っていることについて色々質問することができてよかった。やっぱり直接話せるのと空気を感じることができるのが現地に行く最大のメリット!
質問にお答えくださった皆様ありがとうございましたー丶(´▽`)ノ