エンタープライズ Rails ―企業ユーザのためのWebアプリケーション設計術

やや難しい内容ですが、今または将来に設計するRuby on Railsのシステムが、長く使われ、その間に成長していくと予想できるばあいは必ず読むべき本です。

エンタープライズ Rails ―企業ユーザのためのWebアプリケーション設計術

エンタープライズ Rails ―企業ユーザのためのWebアプリケーション設計術

この本では「エンタプライズ」と呼ばれるような領域・・・ 長く使われ、その間に成長し、大量のデータが蓄積されていくシステムを、Ruby on Railsで構築するさいに考慮しなければならない事に付いて、サンプルコードを交え解説しています。

さらに、 そのアプローチはRuby on Railsでよく語られているシンプルなルールとは逆の、強固なシステム(それがエンタプライズ?)作りの方向からデータベース設計や、SOAを語っています。


たとえば、8章ではRailsでは避けている、複合キーの優位性に付いて語っています。また4,5章ではデータベースが持っている、検査制約、参照制約などを使い、たとえプログラムにバグがあってもデータベースの整合性が保たれるようにすべきだと語っています。

この本で語られている事は、Ruby on Railsのレールからは外れる部分もあり、Ruby on Railsの良さを活かせなくなるかもしれませんが、エンタプライズ領域で長年培われてきたこれらの技術・手法は、システム拡張性を高めたり、大量のデータの整合性を保ったりできるメリットがあり、学ぶ価値が充分にあります。とくにWebアプリの中で育ってきたエンジニアは学ぶべき本だと思います。

4Gbpsを超えるWebサービス構築術

サービスよりの情報がまとまって読めるは本当に素晴らしいです!

自分の作ったサービスが流行ってきて、アクセス過多で困ってるような人。仕事で作っているサービスが将来は大きくなる予定の方など(^^) は必読だと思います。


4Gbpsを超えるWebサービス構築術

4Gbpsを超えるWebサービス構築術


最初の「Webサービスの概要と要素技術」はWebサービスに慣れている人には不要かと思いますが、Webサービスに不慣れな方には良いイントロだと思います、そして問題提起に成っているのが良いですね。


その後、キャッシングではなく、仕組み的にレスポンスを改善する「キューイング」で始まるのが新鮮でした。Webフレームワークでちょいちょいとサービスを作ってしまうと、どうしても同期処理になってしまいますが、いろいろと難しさのあるキャッシングよりキューイングで非同期処理できるようにする事は重要なのかも知れませんね。


DBキャッシング、HTMLキャッシングに付いては雑誌等には良く登場する話題ですが分かり易く書かれているのと、Livedoorで実際に使われている事が書かれているのが素晴らしいですね。


検索サービスの技術も、雑誌やネットでは断片的にしか入手できない情報がまとまっているのが素晴らしいです。もし同じ検索エンジン(Lucene)を使う場合はとても参考になると思います。

入出力パフォーマンス、分散ストレージ、Webサービスの性能評価も実際に大規模なサービスを行っているからこそ書ける内容だと思います。


モバイルの技術、携帯サポートもまとまった情報がなかなか得られない分野ですが、Livedoorでの携帯サポートの基準が惜しみなく書かれています。どこまでサポートするかの線引きが難しい携帯ですが Livedoor というメジャーなネットサービスの基準を参考に出来るのは、これから携帯サポートをするサービス設計者にはたいへんありがたい事だと思います。


ネットワークを取り巻く技術は、私自身の知識不足で雰囲気しか判りませんでしたが、こういう世界が在ることを知れて嬉しかったです。



これだけの情報をオープンにしてくれた 著者の方々とLivedoor に感謝します。


なぜこれほどオープンに書かれているのかは、最後にある「監修者のことば」を読んで下さい。
ありがとうございます。

「場回し」の技術 (光文社ペーパーバックスBusiness)

「場回し」の技術 (光文社ペーパーバックスBusiness)

「場回し」の技術 (光文社ペーパーバックスBusiness)


書評に誘われて買ってみましたが少しがっかり、一番興味のある 「セミナーの章」を読んだメモ。

  • 増線: 講師と受講者の間だけでなく、受講者同士にも関係(線)が出来るようにすると良い
  • 事前聴取: 参加者のニーズや問題を出来るかぎり事前または開始時に聴取しそれに対する解答を出せるようにする
  • アウト・イン・アウト: アウトプットから始め、インプット、アウトプットと繰り返す
  • アウト・イン・アウト:受講者がアウトプットを出せるように導く

次回から、試してみよう。

いま気が付いたのですが、私は実用的な本より原理や思想をあらわした本が好きなようです。

プロになりたいと思っているプログラマーは読むべき本 -- まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法

表紙はご本人も書かれているように持って歩くには少し恥ずかしいですが・・・
Rubyistはもちろん、Rubyと関係ない人でも、プロを目指してるプログラマーは読むべき一冊だと思う。

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法

まつもとゆきひろ コードの世界?スーパー・プログラマになる14の思考法

内容はソフトウェアの雑学という感じで、雑誌の掲載を集めたものなので1つ1つの話が適度な長さでとても読みやすいので通勤時間とかに気分転換に読むのに向いると思います。
しかし、その内容はプログラマーとしては(詳しくなくとも)知っておく必要があるものばかりです。歴史的な経緯とか今の若いプログラマーには知らない事も書かれているのもいいですね。

Ruby言語の設計者・実装者、また自他共に認める言語オタとしてのまつもとさん(Matz)の見識にそこかしこで触れられるのも、たんなるライターの書いた本とは違い素晴らしい点です。

今まで意識した事はなかったのですが、Matz はこういった文章を書く才能もあるのではないでしょうか?
Rubyコミニュティーにみんなが引き寄せられるのは Ruby言語の素晴らしさ以外にMatzの魅力に付いて語られる事よくがあります。プログラミングへの愛情をベースにある種の思念と適度な柔らかさは Ruby にも通じるものかも・・・・

WEB+DB PRESS Vol.50のGit特集は素晴らしい!

WEB+DB PRESS Vol.50のGit記事 「はじめての Git」は素晴らしいです。まだ日本語で読める Gitの書籍が無い今、この特集の為だけでも ¥1,480 出す価値があります (もちろん他の記事もいいです)。

WEB+DB PRESS Vol.50

WEB+DB PRESS Vol.50

Ruby on Railsに関わってる人は、Ruby on Railsや各種プラグイン等が Git に移行してしまったので否応無しに git を使う事になってしまったと思います ^^;

私も最近になって Git を本格的に使うようになり、ネットや勉強会などで仕入れた知識でなんとか運用し、やっと初心者を脱したくらいで、基本的な事でも知らない事をたくさん知り 目から鱗 です。

この記事は 「バージョン管理システムの基礎」「基本的な使い方」「共同作業のやり方」 「ランチを用いた並行開発」と段階を追って判りやすくかかれています。そして 「Gitの基本概念とデータ構造」のように Gitの原理を解説した章もあり、とても良い記事だと思います。


Junio C Hamano さんありがとございます m(__)m

Ruby on Railsで一通り開発できるようになったら読んでほしい「 プログラミング言語 Ruby 」

プログラミング言語 Ruby

プログラミング言語 Ruby

JavaPHPの世界から、Ruby on Railsを使う為にRuby言語を始めた人も多いと思います。RubyJavaPHPのようなナイーブなコーディングスタイルでもプログラムを書くことができますが、やはり Ruby で生産性が高く、しかも美しいプログラムを書くには、関数言語的なブロック、イテレータ動的なオブジェクト指向を習得する必要があります。


この本は、厚さもあり入門書として読むには向いてないかもしれませんが、Ruby on Railsで一通り開発できるように成った人が読むのに向いていると思います。Ruby言語の入門書とリファレンスマニュアルの間を埋める存在としてお勧めです。

Ruby on Railsで一通り開発できるように成った人は、リファレンスマニュアルを見ながらすらすらとコードが書けるように成っている思いますが、この本はリファレンスマニュアルだけではつかみにくいRuby言語の特徴や、見落としてしまいそうな機能が網羅されています。


Ruby on Railsで一通り開発できるようになったら、ぜひ読んで下さい。
あなたのRuby / Rubu on Rails 開発能力が確実にアップすると思います !!

Railsデプロイ

CapistranoMongrelについて、まとっまた情報が日本語で得られる良書です。

Railsデプロイ

Railsデプロイ

最初の方は、Ruby on Railsアプリのサーバーの設定や運用をした事のない人に一通りの知識を与えてくれるので、サーバー運用って良く解らない・・・ と思っている Ruby on Railsプログラマーの方に是非とも読んでもらいたいです。

既にRuby on Railsアプリを運用している方にも、スケールアウトやパフォーマンスの章はたいへん参考になると思います。


Passenger運用の章があると、もっと嬉しかったかも・・・・