アジャイルにおけるプロジェクトマネジャーの役割
この記事では最初に一般的に産業界でのプロジェクトマネージャーの役割について説明し、それから、アジャイルにおけるコーチ/ファシリィテーターの役割にあてはめてみます。
作者 Alex Blewitt , 翻訳者 徳武 聡 投稿日 2009年12月13日 午後3時12分
ECMAScript 5の仕様がが今週、リリースされた(pdf)。ECMAScriptは一般的にはJavaScript™として知られている。最新バージョンでは、基本ライブラリに改善が加えられている一方、一般的でありがちなコーディングミスを特定し、除去するためにより厳格なランタイムモードが導入された。
ECMAScript 4を合理化しようという初期の試みは大失敗に終わった。結局、Adobe社のActionScriptだけが提案された変更点に対応しただけだった。ECMAはバージョン4の仕様もリリースできなかった。バージョン4の仕様では、様々なグループの実装に悪影響を与えてしまうからだ。また、そのような問題がある限り、ブラウザもサポートできない。
ここ数年にわたって、JavaScriptのエンジンに大規模な改善が加えられた。例えば、NitroやTraceMonkeyなどだ。その結果、JavaScriptはコラボレーションツールの分野で利用できるほど高性能になった。例えば、Google Waveはそのようなオンラインアプリケーションの事例のひとつだ。また、最近リリースされたGWT 2.0の一部としてSpeed TracerというGoogle Chromeの拡張がある。これは、JavaScriptのアプリケーションの性能を最適化するツールだ。
近年のこのような状況をふまえ、ECMAScript 5は現在使われているバージョン3との後方互換性の確保を目指し(各ブラウザが素早く対応できるようにするために)、同時に開発者が一般的なコーディングミスを犯さないようにするために、より厳しい制約を提供する。
Strict mode
strict modeを導入する目的は、ECMAScriptアプリケーションを開発するときに発生するコーディング上の一般的な問題を避けることだ。ひとつのユニット(スクリプトまたはファンクション)の中に、次のような文字列リテラルを書くことでこの制約を有効にできる。
"use strict;"
このリテラルは従来のランタイム上では何の影響もないが、バージョン5がターゲットとする新しいランタイム上ではstrict modeに切り替わる。スクリプトのトップに記述すればそのスクリプト全体が、ひとつのファンクションに記述すればそのファンクションが、strict modeになる。したがって、strict modeを適用したコードとそうでないコードを混在させることができ、既存のコードの改善にも利用できる。では、strict modeにすると実際にはどうなるのだろう。
i=3という書き方はランタイムエラーになる。var i=3としなければならない。(iがこのスコープ内にはないという前提)eval("var i=3"); print(i);と書くと例外が発生する。010は10であり、8ではない。delete演算子が使えない。withステートメントは使えない。構文エラーと見なされる。argumentsとcaller変数は不変になる。ライブラリの拡張
基本ライブラリに対して、次のような拡張が加えられている。
20091209T12:34:56Z)。パースもできる。trim()メソッドが組み込まれる。JSONオブジェクトは、JSON形式のデータを効率的に生成するためにparseとstringifyをサポートする。evalと似ているが、セキュリティを考慮した実装がないのでコードを少なくできる。加えて、RFC 4627に仕様化されているJSONObjectやJSONArrayだけでなく、どのようなJSONValueも使える。(4627はJSON-Textを定義しているが、これはオブジェクトか配列に制限されている。)bindが組み込まれたindexOf()やmap()、filter()そして reduce()など。seal()(新しい属性の追加と既存の属性の削除ができなくなる)とfreeze()(すべての属性が読み取り専用になり、属性の追加と削除もできなくなる)が利用できる。Object.keys()を使うとそのオブジェクトのすべてのenumerableな属性を一覧できる。Object.getOwnPropertyNames()を使うとすべてのenumerableと非enumerable属性を一覧できる。Object.getPrototypeof()を使うとそのオブジェクトのprototypeを返す。要約
JSONのパース機構の標準サポートとstrict modeは開発者に多大な恩恵を与える。これらの機能を使えばPrototypeや必要な拡張ライブラリのためにコードをより小さなライブラリへ変換できる可能性がある。JSONストリームからISO形式にパースされた日付は以前よりもはるかに移植が簡単になる。将来は日付を表す形式のデファクトスタンダードになるだろう。また、後方互換性が確保され、Prototypeのような既存のライブラリからヒントを得ているので、比較的近い将来のうちに開発者やブラウザは新しいJavaScriptの特徴になじむだろう。
この記事では最初に一般的に産業界でのプロジェクトマネージャーの役割について説明し、それから、アジャイルにおけるコーチ/ファシリィテーターの役割にあてはめてみます。
「パターン」と呼ばれる設計手法をご存知ですか?この建築の分野ではじまった設計の形式知化手法、および、使う人と作る人の対話のプロセスは、私たちソフトウェアの世界に援用されて1995年に「デザインパターン」という書籍で注目を浴びました。さらに、アジャイルと呼ばれる開発手法には、ユーザーといっしょに対話をしながら設計を進める「パターン」の思想が脈々と引き継がれているのです。
この仮想パネルでは、特に、アジャイルソフトウェア開発環境におけるソフトウェアアーキテクチャの文書化について、Len Bass氏、Grady Booch氏、Paulo Merson氏、Eoin Woods氏に話を聞いた。
HTTPSコネクションを確立するとき、一体何が起こっているのだろう。この記事では安全なコネクションを準備するためにクライアントとサーバの間でどのようなデータの交換が行われているのか、バイトレベルまで詳細に分析する。
Modular Javaシリーズの第3弾は、動的なモジュール化、どのようにバンドルのクラスが解決され、どのように生成され、消滅するのか、どのようにお互いに通信するのかについて、議論する。
分散バージョン管理システムへの関心や採用は増え続けています。この記事では、分散バージョン管理システムのコンセプトを紹介し、git、Mercurial、Bazaarの3つについて詳しく見てみようと思います。
ここ数年にわたって、Javaのモジュール化は活発に議論され続けている話題である。いくつかのJSRによってJavaの進化におけるモジュール化の必要性が示されている。モジュール化の意味するところは何で、なぜそれを気にかけるべきなのだろうか?
Modular Javaシリーズの第2弾は、静的なモジュール化、バンドルの作り方、OSGiのエンジンにそれらをインストールする方法、バンドル間の(バージョン付き)依存性の設定のしかたなどについて扱う。
No comments
スレッド表示 返信