
分散バージョン管理システムの詳細なガイド
2007年5月に、Linus Torvalds氏がgitについてGoogleでプレゼンテーションして以来、分散バージョン管理システムへの関心や採用が増え続けています。この記事では、git、Mercurial、Bazaarの3つのツールを題材にして、分散バージョン管理システムのコンセプト、使用するタイミング、現在使われているバージョン管理システムよりも優れている理由を紹介します。

2007年5月に、Linus Torvalds氏がgitについてGoogleでプレゼンテーションして以来、分散バージョン管理システムへの関心や採用が増え続けています。この記事では、git、Mercurial、Bazaarの3つのツールを題材にして、分散バージョン管理システムのコンセプト、使用するタイミング、現在使われているバージョン管理システムよりも優れている理由を紹介します。
TDDとBDDは現在広く使われているソフトウエア開発技術だ。しかし、TDDやBDDを単に適用するだけではビジネス機会を逸したり、さらに悪いときにはビジネスにネガティブな影響を与えてしまう。TDDとBDDでは解決できないふたつの問題とは、どのようにアプリケーションの使いやすさを計測するのか、そして顧客からどのようにしてフィードバックを得るのか、ということだ。実験駆動開発(EDD)はこの問題を解決できるか。
DocumentCloudは、ドキュメントペースのアプリケーションを提供する非営利団体だ。並行して実現するには非常に高価な処理タスクであるため、 DocumentCloudは、RubyでCloudCrowdという自作のクラウドソリューションを実装することに決めた。InfoQはさらに詳細を聞くため、CloudCrowdの作成者であるDocumentCloudのJeremy Ashkenas氏と話をした。
RubyやRailsアプリケーションにCを組み込むのは、パフォーマンスのボトルネックを解消するひとつの方法だ。Mark Wotton氏は最近、HubrisというRubyからHaskellコードの呼び出しを可能にするブリッジを書いた。
Ruby 1.8 のグリーンスレッドは,以前からその性能が批判されている。Luc Castera氏は RubyNation コンファレンスでRuby とタプルスペースによる並列プログラミングの発表を行い,Ruby でのタプルスペース実装方式として,Rinda と Redisを用いたBlackboard(とErlangへの移植計画)の2つを紹介した。
Railsアプリケーションを開発したり、テストしたり、統合する方法は多数ある。基本的なTest::UnitやZenTestがあるTDDからRSpec、ShouldaまたはCucumberがあるBDDに至るまで多岐にわたる。
Ruby言語の一部が、関数型プログラミング技法によって影響を受けた。Rubyプログラマは、その後ErlangまたはHaskellから技法を導入したり、これらの言語へのブリッジ(Erlectricityなど)を作成した。
CRMおよびERPの市場占有率で首位を誇り、ビジネスソフトウェア会社の規模としては第2位のSAPが、同社のSAP NetWeaver?ならびにSAP ERP 6.0ソリューションの一部としてRubyを採用しようとしている。ABAP Virtual MachineはBlue Ruby拡張を介してRubyコードを実行できるようになるだろう。
Evans Dataはスクリプト言語の調査結果を公表した。500名を超えるデベロッパおよびITの専門家がPHP、RubyおよびPythonを好んで選択している。企業におけるスクリプト言語の使用状況は、時代と共に変化した。各言語の利点および欠点について、その調査が概説している。
ビヘイビア(振舞)駆動開発(BDD:Behaviour Driven Development)の盛り上がりは看過できない。BDDは、テスト駆動開発(TDD:テスト駆動開発)の課題に応えるかたちでDan Northが2003年に提唱した手法だ。BDDはソフトウェアプロジェクトに関わる様々な人や組織の間を巻き込み、お互いが協調していくことを促進する。そこにはたとえば、開発者、品質保証担当、技術に詳しくない業務分析担当者などが含まれている。
Webアプリケーションをキャッシュする方法は膨大にあり、複雑なことが多い。アプリケーションのインフラが増大するにつれて、Basic Railsのページキャッシュングは、退屈なものになりかねない。Rails 2.2は、httpヘッダーであるlast_modifiedとetagを使用し、条件付きGETを導入した。RFC2616のインターネットスタンダードキャッシングのセクションに従いつつ、Ryan Tomayko氏はRack::Cacheを採用した。