Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。成功によって明確に示されたのは、より対話的(インタラクティブ)なソフトウェア体験をユーザたちは望んでいる、と言うことでした。対話的であればあるほど、アプリケーションが持つ機能を効率的に利用し、より高い効果を挙げることができます。それが(個人的な情報管理だけではなく)エンタープライズな業務アプリケーションにとっても、対話性が非常に重要である理由です。業務アプリケーションにおける「よりよい対話性」とは、ほとんど「データの視覚化」を表します。業務においてより効果的・効率的であるということは、よりよい意志決定や、利益が即座にもたらされることと同義だからです。ダッシュボードはデータを視覚化するアプリケーションの典型的な例です。興味深いことに、今日における多くのダッシュボードは、効果的なユーザ体験を作り出すための対話性に欠けています。1.0のダッシュボードを、より対話的でリッチなダッシュボードに改良することにしました。私たちは、車輪の再生産を行ったり、アプリケーション全体を一から作成するわけではありません。代わりに我々はインターフェースを再作成し、既存のサーバサイドインフラにそれを組み込みました。2.0アプリへの)変換を実現したのです。BIスイートの一部です。データとビューは、ディストリビューションに含まれているサンプルアプリケーションの一部です。1.0からRIAへの移行を必要とする全てのプロジェクトに適合します。Flexを選びました。VM、サポートされているライブラリについてです。関連スポンサーコンテンツこれ以降の記事を読み進めるには、以下のソフトウェアをインストールする必要があります。インターフェースを動かす前に、Pentahoサーバを起動して、ダッシュボードにログインするのを忘れないでください。Flexインターフェースは、あなたがすでにログインして認証を受けていると仮定しています。8080で受け付けると仮定しています。HTTPサーバが、他のポートでリクエストを待ち受けているなら、ソースコードを適切に修正してください。Flexインターフェースに表示されるダミーデータは、Pentahoサーバを同時にインストールするのをスキップしたい、と言う人の利便性を考えて、ソースコードのダウンロードアーカイブに含まれています。セットアップが終わったら、サンプルアプリケーションに取りかかりましょう。この記事は、"事始め"として書かれました。必須というわけではありませんが、もしあなたがFlexの経験を以前からお持ちなら、learn.adobe.com(英語)かflex.org(英語)を見てみた方が良いかもしれません。この記事では、保守しやすいコードを書くためのアーキテクチャや、ユーザインターフェースデザインのベストプラクティスをお伝えしようとはしていません。[デモ](source)を使わないことにしました。それはユーザエクスペリエンスを向上させますが、サンプルを動かすのに若干追加の作業が必要とされてしまうからです。私たちは、このコードを試してみたい方に対して「単純にコピーアンドペーストすれば良い」と言う体験を提供したいのです。サードパーティのコンポーネントを追加したり、真のMVCアーキテクチャーを採用したりすることは、こうした体験を複雑にしてします。Connection(サイト・英語)上で見つけることができるでしょう。最終的な結果を見てみてください。すれば、私たちが作り出そうとしている体験を理解することができるでしょう。デモはこちら(source)オリジナルのPentahoダッシュボードも、見た目は似ています。Flexを使いました。SDKによってSWFへとコンパイルされています。VM向けのバイトコードです。よってデスクトップアプリケーションとして動かすこともできます。新しいダッシュボードを作るためのソースコードを見てみてください。ActionScriptで使われ、MXMLでは使用されないクラスをインポートします。SDKに含まれるmxmlcコンパイラにより、ActionScriptコードはMXMLから生成されます。mxmlcに-compiler.keep-generated-actionscriptと言う引数を渡せば、生成されたActionScriptを見ることができます。Bindableはメタデータ/アノテーションです。dataProvider="{territoryRevenue}")ようにします。ActionScript内の変数は、Javaのような名前空間を持ちます。protected、そして自作した名前空間も同様に用いることができます。コロン文字とともにオブジェクトの型を指定できます。省略可能ですが、指定することが推奨されています。地域データから売上高を取得するための、サーバリクエストを初期化します。tSrvは以下のMXMLで定義されています。ActionScript内で定義することも可能ですが、tSrv.send()と言うように少し冗長になります。選択された地域に基づいたデータを読み込む(もしくはキャッシュから取り出す)ための関数呼び出しを行います。この場合選択された地域は、"*"か、もしくは私たちが指示したものです。選択された地域が異なっていれば、これらのメソッドは再度呼び出されます。選択されている地域を返すgetterメソッド。Bindableメタデータ/アノテーションを持ちます。selectedTerritoryと同様のsetterメソッドですが、選択された製品ラインのためのものです。この関数は、地域売り上げを取得するためのサーバからのレスポンスを処理します。eachループ内で行われる変更に反応します。変更があったことを見つけると、データのビューを更新します。handleTResultと同様ですが、製品ライン売り上げのデータを処理します。handelTResultと同様ですが、トップ10顧客売り上げのデータを処理します。この館数は、tPieチャートにおけるデータツールチップをフォーマットするために呼び出されます。通貨のフォーマットを正しく行うための、不可視のコンポーネントです。ActionScriptコードを埋め込むため、円グラフのitemClickプロパティをセットします。</mx:Application>ソースコードを読むか、もしくはダウンロードしてください(source)。アプリケーションには二つのバージョンが存在することに注意してください。pentaho_dashboard_demo.mxmlは、偽のデータセットを使用しています。pentaho_dashboard.mxmlは、実際のPentahoサーバに接続してデータを取得します。移植を行うプロセスは、新しいインターフェースをデザインするところから始まります。同時に、あなたのアプリケーションがRIAに向けて、データとサービスをどのように公開するかを計画しておく必要があるでしょう。Pentahoでは、データとサービスはすでに我々に対して公開されていました。そのためもっとも難しかったのは、データを解析してFlexのチャートコンポーネントが期待するフォーマットに変換する部分でした。ある時点で、新しいインターフェースからバックエンドのサービスを呼び出すことができます。したステップをさらに詳しく見ていきましょう。新しいインターフェースをデザインする新しくRIAインターフェースを作成するためのもっとも良い方法は、既存のインターフェースをよりリッチにする方法を考えることではありません。ユーザがどのように情報を視覚化し、対話したがっているかを考え直すことです。この過程において、デザイナが非常に役立ちます。可能であれば、彼らの創作意欲を最大限発揮させてください。あなたは開発者として、プロトタイプを作り始めることができます。これを効果的に行うためには、モックのデータセットを作る必要があるかもしれません。Sales_by_Territory.xaction、topnmdxquery.xactionと言ったファイルにあります。今回作成したモックのデータセットは、Pentahoが公開しているWebサービスそっくりに見えるものです。しておかねばならないと言うわけではありませんが、好みのデザインが決定したときに、リアルなサービスに置き換えるのが簡単になります。モックのデータセットを用いることにより、デザインにおいて、よりスピーディなイテレーションを行うことができます。実際に作成したデザインは、オリジナルのダッシュボードとほとんどまったく同じに見えます。何かしら、よりクリエイティブなデザインにすることができたでしょう。我々は開発者ではありますが、もっと対話的なダッシュボードを作成することも可能でした。私たちはよりリッチなインターフェースを相当数作ってきましたが、この例では、コードを読みやすく、理解しやすく保っておきたかったのです。UIを作成するためのコードは、かなり単純です。円グラフを作成するには、以下のようなMXMLを単純に追加するだけです。</mx:PieChart>対話性を追加するため、itemClickイベントハンドラを円グラフに追加することができます。プロパティをサポートしているため、あなたがselectedTerritoryをセットしたときに、itemClickイベントハンドラで行っていたような何らかの処理を行うことができます。この場合では、円グラフの一部が紐づけられているデータセットのリフレッシュを行いました。}また、データセットが変更されたら、スムーズにチャートを変更するようにするのも非常に簡単です。最初に行うのは、使いたいエフェクトのインスタンスを一つ追加することです。id="plEffect"/>それから、データが変更されたときこのエフェクトを使用するよう、円グラフに対して伝えることができます。私たちは、使いたいエフェクトのインスタンスをshowDataEffectに紐づけました。labelField="PRODUCTLINE"/>また、マウスオーバー時にカスタムのデータチップを追加することもできます。dataTipFunction="formatTPieDataTip">dataTipFunctionで指定されたメソッドformatTPieDataTipは、データチップ内で使用されるカスタム文字列を返します。}このほかにも、アプリケーションのルック・アンド・フィールをカスタマイズするために、スタイルをたくさん指定することができます。したスタイルは、プロパティとしてインラインで指定することもできますし、外部のCSSファイルで指定することもできます。バックエンドを公開するPentahoでは、ダッシュボードに必要なデータを公開しているWebサービスを見つけ、対話するのは簡単です。地域ごとの売上高を返すURLはこちら(source)です(ローカルで動かしていた場合)。どのデータセットを返すか、を指定するためのパラメータをとるURLもあります。それは地域と生産ラインで、情報のサブセットをどのように返すかを決めるものです。作成するところから始めます。プロパティは、サーバからのレスポンスが返ってきたときに実行するコードを指定します。この場合、handleTResultと言う名の関数にイベント引数を一つ渡して呼び出すだけです。その関数は、我々が受け取ったデータを、チャートが必要とする形式に変換する責務を持ちます。DataGridのようなその他のコンポーネントを使う場合でも、こうした調整は何かしら必要になるでしょう。この場合、チャートにデータを渡す前に、いくつかの小さな処理を行います。}この例では、全てのコードが単一のファイルに書かれています。現実世界のアプリケーションでは恐らく、モデル・ビュー・コントローラアーキテクチャに従って異なるファイルに分割するでしょう。いくつかの実績あるデザインパターンを用いて大きなアプリケーションを構築する、と言うトピックについてはまた別の機会に議論したいと思います。今のところは、サンプルが示しているところまで行うとしましょう。Flexを用いたRIAの興味深い側面をいくつか論じ、このサンプルアプリを商用品質のソリューションにするために何ができるか、を示唆しています。このサンプルの何がすごいのか?このサンプルは、伝統的な古いスタイルのWebアプリケーションを、よりリッチでより対話的なユーザインターフェースにすることの重要性を手早くデモしたものです。このアプリの美しいところは、大規模なリファクタリングを必要とすることなく、既存のアプリケーションに対して素晴らしいインターフェースを提供したことです。これほど手軽に移植を行えたことの理由は、Pentahoが自身のサーバサイド呼び出しをWebサービスのエンドポイントとして公開されていることと、そして、Flexが自身のコンポーネントモデルとバインディングモデルの中で、これらのサービスをエレガントに扱えることに起因しています。このサンプルは、テクノロジーを用心深くミックスして適用することをデモしています。Flexインターフェースと効果的に組み合わせて、説得力のあるアプリケーションを作成することができます。これは素晴らしく価値のある事柄であり、このサンプルはその恩恵にあずかっています。アプリケーションを作るのがいかに簡単か」を、実際に動作するコードを通して表していると言うことです。JavaとXMLに慣れ親しんだ人々にとっては、そのシンタックスとセマンティクスはとても親しみやすいですね!何が欠けていますか?そして、その溝をどうしたら埋められますか?このサンプルは製品レベルのコードだとは言えません。単純なプロトタイプであることを主眼においています。PentahoのWebサービス呼び出しをActionScriptのライブラリに抽象化する、と言う小さな努力は、堅牢なアプリケーションを構築するための良き第一歩だと言えるでしょう。したライブラリを構築するための努力がオープンソースによって進行中です。この例でとっているアプローチは手続き型で、オブジェクト指向の概念もほんの少ししか使用していません。モデル・ビュー・コントローラアーキテクチャパターンの使用、インターフェースに対するプログラミング、継承とポリモフィズムの適切な使用により、保守が容易でクリーンなアプリケーションを作ることができます。1.0アプリから)コピーしました。理想的には、対話に関する要件に基づいて完全に新しいインターフェースを作成してから、ヴィジュアルなコンポーネントをWebサービスコンポーネントに紐付けるべきです。製品レベルのアプリケーションを作成するためには、そうした努力に時間とエネルギーを費やす必要があります。知りたい方はこのサンプルは、RIAで行えることのほんの一部です。私たちにできる改善の一つとしては、ドリルダウン可能なチャートへの移行です。Greenfieldは説明付きのデモとコードを作成することで、Flexチャートを使ったドリルダウンをいかにして実装するかを示しました。その詳細とデモに関しては彼のブログ(source)を見てください。3のチャートコンポーネントには、ほんのわずかですが新しい機能があります。した機能についてはここ(source)とここ(source)で読むことができます。Flexプログラミングについてさらに学びたいのであれば、flex.org(英語)とlearn.adobe.comand(英語)をチェックしてください。WardはAdobeに所属している、Flex向けのテクニカルエバンジェリストです。286、299、301に対するAdobeのJCP代表者でもあります。彼は登山を愛し、それと同様にプログラミングを楽しんでいます。それは終わることのない新しい発見、エレガントな解決策、頂上もあれば谷もあるからです。登山においては、彼は様々な場所で冒険を繰り広げてきました。同様に、テクノロジーは彼を多くの冒険に導いています。90年代の初めにはPascalとアセンブリ、90年代半ばにはPerl・HTML・JavaScript、そして90年代末にはJavaとそのフレームワークの多くが始まったのです。今日、彼は美しいフロントエンドを構築するためにFlexを主に用い、Javaをバックエンドに使っています。Systems向けのリッチな市場/顧客サービスのポータルを作っていました。Jamesについては、彼のブログ(www.jamesward.org)(英語)でより多くを知ることができます。Technologies社(サイト・英語)のチーフテクノロジストです。同社はシカゴを基盤としており、銀行や金融サービス企業向けの、最先端テクノロジーからなるビジネスソリューションを提供しています。312についてのエキスパートグループのメンバーとして活動中です。Groovy、JavaScript、Ruby、Matlabを含む少なくとも1ダース以上の言語でプログラムを行っています。彼はO'reillyネットワークにおいても人気のあるブロガー(source)です。2.0アプリケーションの構築にいそしんでいます。(英語)から得ることができます。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。