2010年11月アーカイブ

「実用Git」斜め読みした

ここ3年ほどで一気に広がった感のあるソースコード管理システム(SCM)のGitについて、その成り立ちやら設計思想やらにまで踏み込んで解説している本。Gitの基本的な使い方から内部の構造についてまでかなり幅広い内容を取り扱っている。

正直に書くと、この本ダメです。何がダメかというと、どういう読者をターゲットにしているのかが見えないんです。git のちょー基本的なコマンドを解説しているかと思いきや、内部で使っているSHA1の一意性の構造について語り出したりしていて、まとまりがものすごく悪いです。それにつられてか章立てもなんかいまいち。SCMにほとんどなじめていない初心者をターゲットにしているのか、ばりばり.gitの中まで見ているような人をターゲットにしているのかわからないです。

その点を棚に上げれば、なかなか知ることができないGitの内部構造についてや、無閉路有向グラフで表されるコミットのチェーンについての解説もあって、さらさら読み進めながら時々濃い内容のとこを熟読する程度にはよい。特に、分散レポジトリであるGitを理解する上で最大の難所といってもよい、ブランチがないのに分岐とマージが存在する無閉路有向グラフの様子(gitkで表示されるアレ)を理解するのは、Git初心者からの脱却には必須だったりするので、9章10章あたりは読んどいて損はないと思う。

最近注目を浴びつつある、SourceForgeやGitHubに代表されるようなSCMホスティングサイトについて紹介している付録Bは、正直必要なかったんじゃないかなぁ。

というわけで、よほどGitのことについて詳細に知りたいという人をのぞいて、あんまりこの本はお薦めしないです。SCM初心者には敷居が高い箇所が多いです。他のSCMになじみがあるGit初心者でも、他のコマンドの使い方解説を重視した本の方がよいです。そこそこGitに慣れてきたら、そもそもこの本に書いてあるような使い方はほぼ理解しているだろうしGitの内部構造なんて知っても仕方ないし、やっぱりこの本は必要ないです。

あとは、まだまだ進化を続けている感のあるGitなので、細かなコマンドの使い方はオンラインマニュアル読んだ方が早いです。個人的に大好きなコマンド「git status」「git show --stat」「git diff --stat」「git log --graph --left-right A...B」「git diff (SHA-1) | patch -p1 -R」

「大規模サービス技術入門」読んだ

端的に言えば、はてなのインターン生向けに提供してたカリキュラムを本の形にまとめたもの。大きく、マシン単体についての説明(OS含む)、大規模データを前提としたアプリ実装、複数マシンを使ったサーバインフラ構築、の3つのテーマをはてなの実システムを基にして解説している。

インターン生を対象にしているということもあってか、この手の話にしては内容は比較的容易な反面、時間のこともあるのか内容ははしょり気味の駆け足気味の説明になっている。そのため、自分でインストールしたLinux内にアプリを作ってみたことがある程度の前提知識は必要で、またこれを読んでも内容を極めるというのには少し遠い。この本をすらすら読める程度になるのが理想という点では「スケーラブルWebサイト」に近いけど、後者よりはプログラミングへからは少し遠ざかって大規模アクセスのあるサイトの実運用という点に重みを置いている。

安物PCをたくさん使って安く中?大規模サイトを作るというはてなの基本姿勢が見えたという点で有益だった。Amazon CloudFrontVarnish使ってるという実例がぼんぼん出てくるのもいい点かな。ただ、本の中でも何度も但し書きしているけど、あくまで今使っているのがこれだというだけでそれが最適かどうかはわからないという姿勢なのも注意すべき点かも。

Webアプリを作ってみたことはあるけど中・大規模なアクセスのあるサイトの運用のイメージがつかめないという人にはオススメ。

このアーカイブについて

このページには、2010年11月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2010年9月です。

次のアーカイブは2010年12月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.5.0