asteria warp開発前に知っておくべき10の鉄則
TRANSCRIPT
マスタータイトルの書式設定
ASTERIA WARP開発前に知っておくべき10の鉄則
インフォテリア株式会社東京R&Dセンター センター長田村健
2017.5.23
マスタータイトルの書式設定まずはじめにお聞きします
• ASTERIA WARPをまだ触ったことがない人
• ASTERIA WARPの体験セミナーを受けたことがある人
• ASTERIA WARPで何か作ったことがある人
マスタータイトルの書式設定
ASTERIA WARPで開発を始める前に
知っておくべきことってなんだろう?
マスタータイトルの書式設定
ASTERIA WARPで開発するってこういうこと
マスタータイトルの書式設定
つまずいたときに、あ〜、これ、こういうことかと思い出すためのあれこれ
マスタータイトルの書式設定
本日の目標
10の鉄則を頭の片隅に残して帰って下さい
マスタータイトルの書式設定 7
準備編
ASTERIA WARPを知ろう
マスタータイトルの書式設定
マスタータイトルの書式設定
ASTERIA WARPはJavaでできている
マスタータイトルの書式設定1. ASTERIA WARPはJavaでできている
• 1610以降はインストールにJavaが必要
• Java VM上で動作しているので基本的にはJavaの世界• メモリ管理やスレッド管理はJava-way• データベースへのアクセスはJDBC• 問題が起きたらスタックトレースが重要
• Java WebStartやJavaアプレットは使われていない
• Java EEやTomcat、Spring、Strutsなどのフレームワークは使われていない
• lib/extフォルダを見てみよう
マスタータイトルの書式設定
マスタータイトルの書式設定
コンポーネントと関数を知ろう
マスタータイトルの書式設定2. コンポーネントと関数を知ろう
• ASTERIA WARPでできることはコンポーネントと関数でできること
• どんなコンポーネントや関数があってどんなことができるのかを知っているのとそうでないのではその後の開発が大きく変わる
• コンポーネントは常に増えていく
• Experimental Buildやオプションアダプター
マスタータイトルの書式設定ざっと何があるか知っておくために
• 「ASTERIA WARP 基礎と実践」の「第2章 ASTERIAを使ってできること」を読みましょう
• パレットを眺めましょう
• 気になるアイコンは右クリックでヘルプを見てみる
マスタータイトルの書式設定ざっと何があるか知っておくために
• コンポーネントリファレンス、関数リファレンスの一覧を表示して眺めてみましょう• コンポーネント一覧
https://help.asteria.com/documentation/warp/ja/current/flow/designer/componentIndex.html
• マッパー関数一覧https://help.asteria.com/documentation/warp/ja/current/flow/designer/functionIndex.html
マスタータイトルの書式設定
マスタータイトルの書式設定
コンポーネントの極意はヘルプにあり
マスタータイトルの書式設定3. コンポーネントの極意はヘルプにあり
• コンポーネントでできることはヘルプを見れば分かる!• できないこと制限事項として書いてあることも
• ヘルプを表示するには• アイコンを選択して「F1」キー• 右クリックで「ヘルプ」メニュー^• ADNでオンラインで検索
マスタータイトルの書式設定プロパティを知るものだけがコンポーネントを制す
• プロパティを知るにはヘルプを一度見ておく
• 隠れているプロパティがあることも
マスタータイトルの書式設定
マスタータイトルの書式設定
流れるデータ=ストリーム
マスタータイトルの書式設定4. 流れるデータ=ストリーム
• データはストリームで処理をする
• データ連携の基本となるのはRecordストリーム• CSVやFixedLengthはRecordに入出力フォーマットがついた派生型
• JSONはTextとXMLを行ったり来たり
• ループの使い方が速度とメモリに影響を与える
マスタータイトルの書式設定ストリームは変換できる
入力\出力 Binary Text HTML CSV FixedLength XML Record ParameterList MIME
Binary ○ ○ ○ ○ ○ ○ × × ○
Text ○ ○ ○ ○ ○ ○ × × ○
HTML ○ ○ ○ × × ○ × × ○
CSV ○ ○ × ○ ○ × ○ × ○
FixedLength ○ ○ × ○ ○ × ○ × ○
XML ○ ○ ○ × × ○ × × ○
Record ○ ○ × ○ ○ ○ ○ × ○
ParameterList ○ ○ × ○ ○ ○ ○ × ○
MIME ○ ○ × × × × × × ○
https://help.asteria.com/documentation/warp/ja/current/flow/designer/flowservice/topic_stream.html#topic_stream_converter
マスタータイトルの書式設定
マスタータイトルの書式設定
フローを流れをコントロールすれば
性能もコントロールできる
マスタータイトルの書式設定ループは性能の鍵
• ループなし • ループあり
メモリは使うが速い メモリ少ないが若干遅いことも
マスタータイトルの書式設定パラレル?
• パラレルフローは並列実行ではない
• 分岐ごとに逐次実行
• ストリームを分岐時に保持するので、メモリを圧迫することも
マスタータイトルの書式設定パラレルサブフロー
• パラレルサブフローは並列実行• ループの内部処理をサブフローにすると別スレッドで
同時に実行してくれる• CPUのコアをフル活用• ネットワークやディスクでボトルネックになることも• Mapperなど、CPUを使う計算処理に向いている• 並列実行なのでメモリにも注意
マスタータイトルの書式設定
実践編
フローを書いて動かしてみる
マスタータイトルの書式設定
マスタータイトルの書式設定
とにかく作って動かしてみる
マスタータイトルの書式設定
Scrap & Build
マスタータイトルの書式設定デバッグ実行(ステップ実行)
マスタータイトルの書式設定デバッグ実行(ステップ実行)
マスタータイトルの書式設定デバッグモードで実行
• エラーが起きるときにスタックトレースを表示することができる
• 実行ログ(FlowService.log)にはさらに細かい情報が出力される• RDBコンポーネント実行時のSQLなど
通常モード デバッグモード
マスタータイトルの書式設定プロファイルモードで実行
• コンポーネント単位の実行時間を調査
マスタータイトルの書式設定外部から実行された場合のデバッグ実行
1. デザイナーでデバッグ実行時に「外部からフローを実行する」をチェックしてデバッグ実行
2. デザイナーが待機状態になる
3. 実行(URLにアクセス、外部ツールから実行するなど)
マスタータイトルの書式設定
マスタータイトルの書式設定
開発ルールを決めておく
マスタータイトルの書式設定7. 開発ルールを決めておく
• ASTERIA WARPは自由にすぐに作ることができるのが特徴→ 放っておくと取り返しがつかないことに
• わかりやすい開発ルール• 命名規則• バージョン管理機能の使用とユーザー管理• コネクションの利用• 変数の使用• 外部変数、フロー変数の使い分け
• コメントの付け方• コンポーネントの繋ぎ方• 縦とか横とか
マスタータイトルの書式設定
マスタータイトルの書式設定
ベストプラクティス、アンチパターンを
知る、貯める、共有する
マスタータイトルの書式設定ベストプラクティス
• BranchではなくSwitchを活用しよう
• 文字列の合成、パスの作成にはEmbed関数を使おう
• Concatenateの区切り文字は便利
• RDBGetでループするときは取り出す件数を指定しよう
• URLトリガーのフローはHTTPStartで始めよう
• 何か変更するときはとりあえずフローを複製
• FlowDiffを活用しよう
マスタータイトルの書式設定アンチパターン
• 変数などの名前には「_」「-」以外の記号は使わない
• パスの区切り文字には「\」を使わない。「/」を使う
• 文字コードにはUTF-8以外を使わない
• EndResponse は使わない。End を使う
• パラレルフローの不要な合流は行わない
• 不要な「ストリームをまとめる」は行わない
• 1つのプロジェクトに20以上のフローは作成しない
• スクロールしなければみることができないフローは作らない
マスタータイトルの書式設定
応用編
効率よく開発するために
マスタータイトルの書式設定
マスタータイトルの書式設定
ASTERIA WARPを使って
開発を効率化する
マスタータイトルの書式設定モジュール化
• サブフロー• フローで書いた処理を再利用する• 呼び出し方もいくつかあり• SubFlow、ParallelSubFlow、FlowInvoker
• 関数ライブラリ• マッパー関数を組み合わせたものを再利用する
• 外部変数• 定数や変数を複数フローで共有する
• ストリーム定義• ストリームのプロパティやフィールド定義を再利用する
マスタータイトルの書式設定拡張機能
• カスタムコンポーネント、カスタム関数• よく使う処理をコンポーネントやカスタム関数にする
• JavaInterpreter• コンポーネントや関数の処理をJavaで記述できる• 若干遅いので注意
• Flow Thin Client• 外部のJavaプログラムからフローを呼び出すためのライブラリ
• Web API• FSMCの機能やフローの実行と同等のものをWeb APIとして呼び出し
マスタータイトルの書式設定
マスタータイトルの書式設定
先輩に差をつける便利機能5選!
マスタータイトルの書式設定テーブル定義書
• コネクション接続先のテーブル定義の情報をExcelに書き出す
マスタータイトルの書式設定プロパティ式エディタ
• プロパティの値を雛形を使ってマクロ化• 簡単な編集であればマッパーよりも見やすくわかりやすい
マスタータイトルの書式設定入力ストリーム定義を出力にコピーする
• 入力と出力のフィールドが似ている場合にマッパーの右クリックから「入力ストリーム定義を出力にコピーする」を選択するとフィールド定義をコピーできる
マスタータイトルの書式設定ドラッグ&ドロップ
• コンポーネントとコンポーネントの間のリンク上にMapperなどのコンポーネントをドロップするとリンクを繋ぎ直すことなく間にコンポーネントを挟むことができる
• コネクションを使用するコンポーネントにコネクションをドロップするとコネクションを設定できる
• コネクションをワークスペースにドロップすると対応するコンポーネントを配置できる
• ファイルをプロパティにもつコンポーネントにファイルをドロップするとファイルパスを設定できる
• ファイルをドロップするとファイル種別に対応したコンポーネントを配置できる
マスタータイトルの書式設定イメージをファイルに保存
• ワークスペースで右クリックから「イメージをファイルに保存」するとフローのイメージを画像ファイルにすることができる• 社内で情報を共有したり、仕様書、ブログ、メールなどに添付する際
に便利
マスタータイトルの書式設定
One more thing...
マスタータイトルの書式設定困る前に&困った時の情報収集手段
• ADNhttps://support.asteria.comhttps://forum.asteria.jp (ADN Forum)
• 各種SNS情報• Facebook
https://www.facebook.com/asteriajp/• Twitter
https://twitter.com/asteriajp
• AUGhttps://aug.asteria.jp/https://aug.asteria.jp/join/(FBグループへの参加やメルマガの登録など)
• Qiita Organizationhttps://qiita.com/organizations/infoteria/activities
マスタータイトルの書式設定
次は先輩の体験談をじっくり聞いてみましょう