Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。編集部アプリケーションは多くの場合、レポート作成によってデータベース内でデータを分析します。グラフはレポートを視覚的に表現するもので、傾向の理解に役立ち、一般的にデータ統合をさらに簡素化します。Railsは、レポートやグラフを用いてこれらのWebアプリケーションを作成するのに使用可能な技術の1つです。Rails上でグラフを作成する方法について説明します。データベース内でレポートやデータからグラフを作成するには、優れたグラフ化製品が必要です。Charts、FusionChartsなどが挙げられます。以下の表は、これらのグラフ化製品を大まかに比較したものです。すべての製品を試したり、テストを行ったりしたわけではないことに注意してください。以下の分析のほとんどは、製品のマニュアルから集めた情報に基づいています。v3の一部として)この記事では、Rails上でFusionChartsおよびMySQLデータベースを使用してグラフを作成する方法について考察します。FusionChartsはFlashベースのチャーティングコンポーネントで、アニメーション化されたインタラクティブなグラフの作成が可能です。FusionChartsはあらゆるWebスクリプト言語で使用でき、ごく最小限のコードで強力なグラフを提供します。FusionChartsにはRoRで使用するためのラッパーモジュールが備わっています。この記事でFusionChartsを使用したのは、使いやすいさまざまなグラフタイプ、分かりやすいマニュアル、および質の高いサポートが用意されているためです。Rails上でFusionChartsを使用してグラフを作成するメカニズムについて説明します。この記事に記載するサンプルアプリケーションを実行するには、以下が必要です。ダウンロード可能です。この記事では、フリーバージョンを使用してグラフ作成を行います。FusionChartsのインストールに必要なことは、swfおよび.rbファイルをダウンロードパッケージから適切なアプリケーションフォルダにコピー&ペーストすることだけです。Librariesフォルダにあります。以上http://www.rubyonrails.org/downで入手可能です。以上RubyGemsをロードすると、以下のコマンドラインを使用してすべてのRailsとそのdependency(従属性)をインストールできるようになります。(リンク)ダウンロードも可能です。以上ここから(リンク)ダウンロード可能です。この記事向けに開発したサンプルアプリケーションは、基本的なタイムトラッカーアプリケーションです。これは、従業員が1週間分の時間を記入し、入力した時間に基づいたグラフを閲覧する単純なアプリケーションです。この記事では、サンプルアプリケーションを2つのパートに分けて説明します。含む基本的なアプリケーションの開発について取り扱います。アプリケーション内でグラフを統合する必要がある場合は、このパートをとばして直接次のパートにお進みください。次のパートではグラフとアプリケーションの統合について説明します。Railsの基本知識を持っていることを前提としています。いう基本機能が実現可能です。基本的な従業員およびタイムシートコントローラを作成するコマンドは以下のとおりです(1行目のコマンドで作成したTimeTrackerApplicationフォルダ内から、残り2行のコマンドを実行します)。employee_id:integer次に、configフォルダにあるdatabase.ymlを変更して「timetrackerdb」を示すようにし、また自身のデータベースに一致するユーザー名およびパスワードエントリに変更します。この後、以下のrakeコマンドを実行してデータベースを作成します。db:migrate従業員とタイムシートテーブルの間の外部キー関係を確立するため、以下のクエリーをmysqlインスタンス内で実行します。cascade当然、外部キーを作成する方法は他にもありますが、この記事においてその説明は不要でしょう。Railsにて上述の外部キー関係を表すには、モデル間で関連付けを作成する必要があります。従業員モデルでは、クラス宣言文の後、以下の文を記述します。:timesheetsタイムシートモデルでは、以下のように記述します。:employeeサンプル値をデータベースに挿入するには、sqlスクリプトdb/sampledata.sqlを実行する必要があります。これで基本アプリケーションの準備が整いました。ここから、従業員の追加、閲覧、または削除が可能となります。基本的なタイムトラッカーアプリケーションの環境が整うと、以下の方法で従業員のタイムトラッカーグラフを作成します。FusionCharts)をTimeTrackerApplicationのpublicフォルダにコピーする。FusionChartsフォルダにあるファイルFusionCharts.jsをpublic/javascriptsフォルダにコピーする。Librariesフォルダからfusioncharts_helper.rbをTimeTrackerApplicationのlibフォルダにコピーする。これで、FusionChartsの設定は完了です。従業員ページのリストから、タイムトラッカーグラフへのリンクを作成します。して、すべての従業員を対象として、彼らの時間をグラフとして表示するリンクが用意されます。タイムトラッカーグラフへのリンクは、app/views/employees/index.html.erbファイルに作成されます。リスト1は、追加したリンクの詳細を示しています。このリンクをページ内の他のリンクの後に追加します。%></td>図1は、アプリケーションからの従業員ページのリストを示しています。scaffoldを用いて簡単に実現されています。このページはアドレス「http://yourserver:port/employees」にアクセスして閲覧可能です。この画面の関連部分が図1に示した内容です。Chart」リンクをクリックして起動するアクションは、従業員コントローラのview_timesheet_chartアクションです。リスト2はこのアクション用のコードを示しています。このアクションは、選択した従業員用のグラフをレンダリングします。このアクションは、従業員モデルに作用して、「2008年12月1日」から「2008年12月7日」までの日付範囲でこの従業員向けのタイムシートを見つけ、それから「view_timelog_chart.html.erb」をレンダリングします。単純化するため、日付範囲はコントローラ内で固定されています。実際のアプリケーションでは、レポート/グラフを作成するための日付範囲はユーザーが選択します。headers["content-type"]="text/html"end従業員IDをパラメータとして使用して、このアクションは従業員モデルに作用して指定の期間内のこの従業員用のタイムシートを見つけます。従業員モデル内で追加される機能を、リスト3に示します。employee_details_with_timesheetsendこのアクションは、最終的に「view_time_chart.html.erb」をレンダリングします。テンプレート「view_timelog_chart.html.erb」は、従業員コントローラのすべてのビューに共通なレイアウト「employees.html.erb」を使用します。したがって、リスト4に見られるとおり、ビュー内のコードは短くて簡単です。-%>上記のコードから、ビューページ内でグラフをレンダリングするのに以下のステップが必要なことが分かります。FusionCharts.jsファイルをインクルードする。ビルダーからXMLデータを入手する(ビルダーはコントローラアクションからのデータを使用してXMLを構築)。適切なパラメータを使用してrender_chart機能を呼び出すことでグラフをレンダリングする。通常、時間はガントチャートで表され、このグラフはFusionChartsでも利用可能です。ここでは簡素化のため、縦棒グラフを使用しました。2つ目のステップはxmlの作成に関連します。Language)を使用してグラフを作成、操作します。FusionChartsグラフ全体はXMLパラメータに制御されます。XMLを使用して見栄えとともにグラフ用の機能プロパティを定義します。各グラフタイプに応じて多くのプロパティが定義可能です。FusionChartsは各グラフ特有のXML構造を持ちます。当該グラフは単独系グラフ(1セットのデータのみを持つ)で、曜日と従業員がその日に費やした時間数を表示します。このグラフのサンプルXMLをリスト5に示します。color="CCCC00"/></graph>データベース内にあるデータでリスト5のようなXMLを生成するには、ビルダーファイルを使用します。ビルダーはどのようにグラフ用XMLを構築するのでしょうか。答えは、アクション内に保存された@employee_details_with_timesheets変数を使用するのです。リスト6はビルダーファイルの内容を示しています。endendビルダー内にて、まず0に等しい「indent」値で新しいXMLMarkupオブジェクトを作成し、このオブジェクトをXMLの構築に使用します。グラフの構成に必要なすべてのオプションは、optionsという名のハッシュ内にあり、これは、最上位(グラフ)タグに渡されます。グラフに提供可能なオプションの詳細については、FusionChartsマニュアル一式を参照してください。XMLルートエレメントは「graph」です。この中に、選択した従業員の各タイムシートに一致する「set」エレメントがあります。各「set」エレメントは属性として名前と値を持ちます。名前には曜日が、値にはその従業員がその日に費やした時間が含まれます。ビルダーはコントローラアクション内にある@employee_details_with_timesheets変数を使用して、これらの値を入手します。最後に、ビューページにおいて、パラメータとしてswfグラフファイル名、URL、XML、幅、高さ、debugMode、registerWithJSを利用とする機能render_chartを使用して、グラフがレンダリングされます。この機能は、libフォルダにあるfusioncharts_helperモジュール内で入手可能です。これは、リスト7に示すとおり、application_helper.rb内にインクルードすることによって、すべてのビューにアクセス可能となります。FusionChartsHelperグラフ表示に必要なswfファイルは、public/FusionChartsフォルダ内にあります。ここではColumn3D.swfが使用されていますが、他の種類の単独系グラフも、swfファイル名を変更するだけで作成可能です。データはdataXMLメソッドを使用して提供されていますが、dataURLでも提供可能です。この例はFusionChartsマニュアルに記載されています。Chart」リンクをクリックしてみると、2008年12月1日から2008年12月7日までの週に相当するタイムログエントリがグラフの形で表示されます。タイムシートグラフは、以下の図2と同様になります。2グラフ作成ステップのまとめアプリケーション内でFusionChartsを設定し、application_helper.rb内にFusionChartsHelperをインクルードした後、以下のステップを行います。コントローラアクション内で、データベースからグラフに必要なデータを見つける。ビルダーを記述してこのデータからグラフ用XMLを構築する。ステップ1におけるコントローラアクション用のビューで、データを渡すか、ビルダーにコントローラアクションからのデータを使用させるかして、ビルダーからXMLを入手する。次に、適切なパラメータ(ステップ3で入手したXMLも含む)で機能render_chartを呼び出す。Rails上でFusionChartsを使用して単純なグラフを作成する方法を説明しました。サンプルアプリケーションにいくつか変更を加えると、すべての従業員向けのタイムログ概要でグラフを作成できます。このグラフから、特定の従業員について掘り下げ、その従業員用の時間の詳細を得ることができるでしょう。グラフの検索にはAjaxが使用可能です。可能性は無限に広がります。FusionChartsダウンロードパッケージ自体には、検索可能ないくつかの例が含まれています。この記事で説明したサンプルアプリケーションの完全版はここ(リンク)でダウンロード可能です。Rails、およびPHPに関連する幅広いWeb技術に関心を持っています。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見るあなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。あなたの意見をお聞かせください。毎週火曜日に前週のまとめコンテンツがお送りいたします。25万人ものシニアデベロッパーのコミュニティーにぜひご参加ください。サンプルを見る様々なイノベーターとアーリーアダプターがお送りするテクノロジーの概要を見る。自分がまだ知らないことに気づいていないと知るあなたが興味のあるトピックスをいつでも最新な情報に。あなたのメールアドレスはこちら国を選んでください。プライバシーポリシーに従って私の個人情報を扱うことに同意します。よい世界へ私たちが暮らす世界を大切に思い、よりよいものにしたいと考えています。人のためのソフトウェア開発を加速し私たちのミッションを実現することで、この思いを成し遂げようとしています。私たちは利益の1%をさまざまな慈善団体に寄付しています。会社として、また従業員として、そうしたことの価値を強く信じているからです。with.プライバシーBTあなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。アドレス*Eメールを変更すると確認のメールが配信されます。会社名:現在の会社名をご入力ください。Other組織規模:現在の組織規模をご入力ください。2,501+国:現在の国を設定してください。Zimbabwe都道府県:現在の都道府県に設定してください。次の都道府県にアップデートする:ニュースレターを購読しますか?インダストリーメールを購読しますか?本Eメールに登録すると、以前より関心のあったトピックの関連情報をお送りする場合がございます。詳細はこちらのプライバシーポリシーをご覧ください。newsletter?新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。