Reusable 3題

0. reusable(再利用可能)というキーワード

D3 には reusable(再利用可能)というキーワードがよく出てきます。

作成したコードの再利用可能性をできるだけ高めることにより、開発生産性を向上させ、あるいはそのコードをコミュニティと共有しやすくするというアイデアは、何も D3 に限った話ではなく、およそあらゆる(オープン)ソフトウェア開発に共通する考え方です。

それが D3 で特に強調されるのは

  • D3 がコミュニティ駆動型のプロジェクトであること
  • D3 の学習曲線の急峻さ

によるものが大きいでしょう。特に後者だと思います。

D3 は高機能で優れた視覚化成果物を作ることができますが、そのためには D3に習熟するための長時間の学習と、成果物を作るための多大な労力が必要です。そのため、せっかく作成した成果物はできるだけ多くのユーザで共有したい、という考えが自然に出てきたのだと思います。

しかしそのためには、コミュニティ全体で reusable のための統一したデザインを共有する必要があります。

1. 提言:Towarrd Reusable Charts(再利用可能なグラフのために)

次の文章は、2012年2月27日に、D3 開発者マイク・ボストック氏によって書かれた文章です。

Toward Reusable Charts(再利用可能なグラフのために)( http://bost.ocks.org/mike/chart/ )

作者自身が、D3 で作成したグラフを再利用可能な形にするためのデザインについて語ったものです。機会があれば訳したいと思いますが、平易な英文ですので(マイク氏の文章は常に平易です)、できれば目を通してみてください。

つまるところ、再利用可能なグラフを作る関数は、値(幅、高さ等、グラフを作成するために必要なパラメタ)を設定、読みだすためのメソッドを備えた関数オブジェクトとして作成しよう、という提言です。


“to sum up:implement charts as closures with getter-setter methods” (「要約すると、グラフはゲッター・セッターメソッドを備えたクロージャとして実装すること」)

2. 書籍:Developing A D3.js Edge(意味は「D3 の最先端開発」…かな?)

マイク氏の提言を受ける形で(?)、著名な D3 開発者の面々によって書かれた書籍が右の “Developing a D3.js Edge”です。2013年6月25日に刊行されたばかりの書籍です。

“Developing a D3.js Edge”
(著者)Roland Dunn / Ger Hobbelt / Andrew Thornton / Chris Viau

なんか画像のフチ(Edge)が歪んで見えるかもしれませんが、実際に元の画像でも歪んでいます。なんかのシャレ?(笑)

シンプルな棒グラフを例題に、チャート作成する関数を D3 のモジュールとして作成し、それを reusable にするために、D3 の他のモジュールとのインターフェースとなる API を設計・作成する、という内容のようです(多分)。

多分、と自信がないのは、今朝がた購入・DLしたばかりでまだパラパラとかしか見ていないからです。題材から明らかなように、この書籍は D3 の中級~上級者向けに書かれています。決して D3 入門書ではありません。前書きでも本書の読者に、D3 の経験はもちろんのこと、JavaScript についても第一級オブジェクトとしての関数や、クロージャについての理解を求めています。

ページは54ページと薄いので時間のある時に一気に読めるかと思って買ったのですが、中身が(文字通り)詰まっていて、結構骨が折れそうです。特にサンプルコードのフォントサイズが普通の書籍の数分の一程度の大きさで、全体としても普通の ebook なら倍以上のページになると思います。紙の書籍ならともかく、電子書籍でこんなに詰め込む理由が今一つわかりません。

下記のいずれかで購入可能です。

後者は40%ディスカウント価格ですが、もしかしたら期間限定かもしれません。DRMガチガチのkindleフォーマットは、少なくともプログラミング関連の書籍としては糞フォーマットだと私は思っていますので、値段に関わらず購入するなら後者がお薦めです。当然私も後者で購入しました。
 

3. スライド:Creating Reusable D3(再利用可能な D3 開発)

先日、ロンドンで開かれた D3 開発者のミーティング( London D3.js meetup #4 )が開催され、上記書籍の作者の一人 Roland Dunn 氏が、reusable という観点からの D3 についての講演を行いました。

その際に使われたスライドがネットにアップされています。

Createing Reusable D3 (And A little Bit About MVC)「再利用可能な D3 を作る(MVCについても少々)」

reusable の考え方と、書籍と同じく、シンプルな棒グラフを例に reusable な API の作成方法を解説しています。プレゼン用に作られたスライドですので、見てるだけでも楽しめると思います。

  

クロージャの説明のページにはなぜか映画『ソナチネ』の画像が使われています。どんな寓意があるんでしょうか(笑)

X. おまけ - HTMLプレゼンテーションツール REVEAL.JS

上記スライドで使われているのは HTMLプレゼンテーションツール “REVEAL.JS” ( MIT ライセンス)です。最近よくREVEALで作られた SLIDE を見かけるようになりました。

スライドの際の効果が素晴らしく、左右だけでなく(設定してあれば)上下に移動できたりもします。キーボードだけでスムーズに動くのも素晴らしいです(スペースで右、shift+スペースで左)。私も機会があればこれでスライドを作ってみたいと思っています。

ついでに Vim風キー操作(ggでトップ、shift-gでラスト、100gで100ページ目に移動、等)にも対応してくれれば言うことはないのですが、まぁ無理でしょうね(^^;)

コメントを残す


一 × = 9