タグ

ブックマーク / capsctrl.que.jp (7)

  • Martin Fowler's Bliki in Japanese - トランザクションレス

    http://martinfowler.com/bliki/Transactionless.html 2007/3/18 (更新:Bill Caputoからも経験談をいただいた) 数年前にeBayで働く友人たちと話していたときのことだ。 大規模サイトで使われる技術の話を聞くのはいつも楽しいが、特に興味深かったのが、eBayでは滅多にデータベーストランザクションを使用しないという話だった。 トランザクションがない環境というのは驚くべきことではないだろうか。 データベースを扱うときにトランザクションを使うのはごくごく一般的なことだ。 多くの人にとって(私もそうだが)トランザクションはデータベースを使う利点のひとつだ。 eBayがトランザクションを使わないのは、あのような規模ではパフォーマンスに影響が出てしまうからだというものだった。 eBayではデータをいくつもの物理的データベースにパーテショ

  • Martin Fowler's Bliki in Japanese - RubyAnnotations

    http://martinfowler.com/bliki/RubyAnnotations.html Rubyで人気のある機能のひとつにメタプログラミングのサポートがある。 メタプログラミングとは言語自身を変えてしまうように動作する機能のことだ。 たとえば、新しい予約語を導入するみたいな、ね。 主流の「中かっこ」言語族はメタプログラミングをほとんどサポートしてないが、メタプログラミングの有用な応用として「注記」をあげることができる。 「注記」は内部DSLスタイルで言語を拡張するにあたって重要な役割を果たす。 一見すると、Rubyは注記をサポートしていないように見えるが、頭をひねってみればそれが見えてくるはずだ。 注記を使って、言語要素(クラス、メソッド、フィールド等)をマーカーでタグ付けする。 とりわけ、その要素のメタデータをね。 そうすると、そのメタデータを実行時ないしコンパイル時に利用

  • Martin Fowler's Bliki in Japanese - DSLの境界線

    http://www.martinfowler.com/bliki/DslBoundary.html 2006/8/1 ドメイン特化言語が表れたときに疑問として挙がったのが、 「DSLは何なのか」そして「DSLは何でないか」だった。 混乱の元はDSLに厳密な定義が存在しないためであり、 DSLとその他とを区別するグレーゾーンが広大だったためである。 私にとっては、「スコープ」と「能力」が限定されている点がDSLの重要な要素である(特定のドメイン向けであり、汎用言語にとって基的な機能が欠けている)。 つまり、良いDSLというのは、小さくてシンプルなものなのだ。 だからこそ「リトル言語」や「ミニ言語」と表現されるのである。 内部DSLではAPIとDSLの境界があいまいである。 基的に両者に違いはない。 内部DSLとは、単なるイイ感じの名前のついたAPIなのだ(「ライブラリ設計は言語設計(l

    ysano2005
    ysano2005 2006/10/30
    「結局、実用性こそが最重要なのだ。」
  • Martin Fowler's Bliki in Japanese - 内部DSLスタイル

    http://martinfowler.com/bliki/InternalDslStyle.html 2006/10/24 内部DSL(組込みDSLとも呼ばれる)は、ホスト言語内に書かれたドメイン特化言語である。 これは多くのプログラミング言語コミュニティでは一般的な考え方だ――特にLispコミュニティではそうだ。 だが最近では、急速に成長を遂げているRubyコミュニティでのDSLの扱いに、多くの注目が集まっている。 私は、内部DSLには二つのスタイルがあると思っている。 ひとつは、内部ミニ言語。 もうひとつは、言語エンハンスメント(強化)だ。 内部ミニ言語というのは、外部DSLでやるようなことを内部言語で行うことだ。 汎用言語のサブセットを意図的に自分のミニ言語として取り出す。 たとえば、以下のようになる(言語ワークベンチから引用した)。 mapping('SVCL', Service

  • Martin Fowler's Bliki in Japanese - クロージャ

    http://martinfowler.com/bliki/Closure.html 動的言語に興味がでてくると、 クロージャやブロックと呼ばれる概念に出会うと思います。 C/C++/Java/C# などクロージャを持たない言語をご使用の方は、 どういったものなのかご存知ないかもしれません。 ここでは簡単にクロージャについて説明します。 クロージャを持った素晴らしい言語を使ったことある方にとっては、 あまり面白くない話かもしれません。 クロージャは長年使用されてきました。 私が最初に出会ったのは、おそらく Smalltalk だったと思います。 Smalltalk ではブロックと呼んでいました。 Lisp ではクロージャを多用しています。 Ruby でもクロージャが提供されています――多くの rubyist がスクリプト言語に Ruby を選ぶのはこのためです。 基的にクロージャとは、ブ

  • Martin Fowler's Bliki in Japanese - 言語ワークベンチ

    以下の文章は、Martin Fowler による 「Language Workbenches: The Killer-App for Domain Specific Languages?」 の日語訳である。 ソフトウェア開発における新しい考えの多くは、実は古い考えの新しい組み合わせ方です。この記事では、その新しい組み合わせ方のひとつ、私が「言語ワークベンチ(Language Workbenches)」と呼んでいるツールについて説明します。これは、現在広まりつつある考え方で、たとえば、Intentional Software、JetBrainsのMeta Programming SystemMicrosoftのSoftware Factoriesなどが例として挙げられます。これらのツールは古い開発スタイルを採用しており、私はこれを「言語指向プログラミング(language oriente

  • 翻訳 - Ruby on Rails: David Heinemeier Hanssonへのインタビュー

    以下の文章は、Edd Dumbillによる「Ruby on Rails: An Interview with David Heinemeier Hansson」の日語訳である。 O'Reilly Media, Inc.の許可を得て、ここに掲載する。 by Edd Dumbill 08/30/2005 プログラミングの世界で誰も無視できない最新のスタープラットフォーム――Ruby on Rails。そして、そのRailsの作者であるDavid Heinemeier Hansson。彼は、今年のOSCONで観衆を大興奮の渦に巻き込んだ。10月にはアムステルダムで開かれるEuropean O'Reilly Opensource Conventionで基調講演を行う予定だ。 Heinemeier Hanssonはデンマークのコペンハーゲンに住んでいる。彼は、革新的な企業37signals のパー

  • 1