asteria warp開発前に知っておくべき10の鉄則

59
マスター タイトルの書式設定 ASTERIA WARP開発前に 知っておくべき10の鉄則 インフォテリア株式会社 東京R&Dセンター センター長 田村健 2017.5.23

Upload: asteria-user-group

Post on 23-Jan-2018

1.022 views

Category:

Engineering


7 download

TRANSCRIPT

Page 1: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

ASTERIA WARP開発前に知っておくべき10の鉄則

インフォテリア株式会社東京R&Dセンター センター長田村健

2017.5.23

Page 2: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定まずはじめにお聞きします

• ASTERIA WARPをまだ触ったことがない人

• ASTERIA WARPの体験セミナーを受けたことがある人

• ASTERIA WARPで何か作ったことがある人

Page 3: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

ASTERIA WARPで開発を始める前に

知っておくべきことってなんだろう?

Page 4: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

ASTERIA WARPで開発するってこういうこと

Page 5: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

つまずいたときに、あ〜、これ、こういうことかと思い出すためのあれこれ

Page 6: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

本日の目標

10の鉄則を頭の片隅に残して帰って下さい

Page 7: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定 7

準備編

ASTERIA WARPを知ろう

Page 8: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Page 9: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

ASTERIA WARPはJavaでできている

Page 10: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定1. ASTERIA WARPはJavaでできている

• 1610以降はインストールにJavaが必要

• Java VM上で動作しているので基本的にはJavaの世界• メモリ管理やスレッド管理はJava-way• データベースへのアクセスはJDBC• 問題が起きたらスタックトレースが重要

• Java WebStartやJavaアプレットは使われていない

• Java EEやTomcat、Spring、Strutsなどのフレームワークは使われていない

• lib/extフォルダを見てみよう

Page 11: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Page 12: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

コンポーネントと関数を知ろう

Page 13: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定2. コンポーネントと関数を知ろう

• ASTERIA WARPでできることはコンポーネントと関数でできること

• どんなコンポーネントや関数があってどんなことができるのかを知っているのとそうでないのではその後の開発が大きく変わる

• コンポーネントは常に増えていく

• Experimental Buildやオプションアダプター

Page 14: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定ざっと何があるか知っておくために

• 「ASTERIA WARP 基礎と実践」の「第2章 ASTERIAを使ってできること」を読みましょう

• パレットを眺めましょう

• 気になるアイコンは右クリックでヘルプを見てみる

Page 15: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定ざっと何があるか知っておくために

• コンポーネントリファレンス、関数リファレンスの一覧を表示して眺めてみましょう• コンポーネント一覧

https://help.asteria.com/documentation/warp/ja/current/flow/designer/componentIndex.html

• マッパー関数一覧https://help.asteria.com/documentation/warp/ja/current/flow/designer/functionIndex.html

Page 16: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Page 17: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

コンポーネントの極意はヘルプにあり

Page 18: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定3. コンポーネントの極意はヘルプにあり

• コンポーネントでできることはヘルプを見れば分かる!• できないこと制限事項として書いてあることも

• ヘルプを表示するには• アイコンを選択して「F1」キー• 右クリックで「ヘルプ」メニュー^• ADNでオンラインで検索

Page 19: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定プロパティを知るものだけがコンポーネントを制す

• プロパティを知るにはヘルプを一度見ておく

• 隠れているプロパティがあることも

Page 20: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Page 21: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

流れるデータ=ストリーム

Page 22: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定4. 流れるデータ=ストリーム

• データはストリームで処理をする

• データ連携の基本となるのはRecordストリーム• CSVやFixedLengthはRecordに入出力フォーマットがついた派生型

• JSONはTextとXMLを行ったり来たり

• ループの使い方が速度とメモリに影響を与える

Page 23: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定ストリームは変換できる

入力\出力 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

Page 24: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Page 25: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

フローを流れをコントロールすれば

性能もコントロールできる

Page 26: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定ループは性能の鍵

• ループなし • ループあり

メモリは使うが速い メモリ少ないが若干遅いことも

Page 27: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定パラレル?

• パラレルフローは並列実行ではない

• 分岐ごとに逐次実行

• ストリームを分岐時に保持するので、メモリを圧迫することも

Page 28: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定パラレルサブフロー

• パラレルサブフローは並列実行• ループの内部処理をサブフローにすると別スレッドで

同時に実行してくれる• CPUのコアをフル活用• ネットワークやディスクでボトルネックになることも• Mapperなど、CPUを使う計算処理に向いている• 並列実行なのでメモリにも注意

Page 29: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

実践編

フローを書いて動かしてみる

Page 30: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Page 31: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

とにかく作って動かしてみる

Page 32: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Scrap & Build

Page 33: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定デバッグ実行(ステップ実行)

Page 34: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定デバッグ実行(ステップ実行)

Page 35: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定デバッグモードで実行

• エラーが起きるときにスタックトレースを表示することができる

• 実行ログ(FlowService.log)にはさらに細かい情報が出力される• RDBコンポーネント実行時のSQLなど

通常モード デバッグモード

Page 36: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定プロファイルモードで実行

• コンポーネント単位の実行時間を調査

Page 37: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定外部から実行された場合のデバッグ実行

1. デザイナーでデバッグ実行時に「外部からフローを実行する」をチェックしてデバッグ実行

2. デザイナーが待機状態になる

3. 実行(URLにアクセス、外部ツールから実行するなど)

Page 38: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Page 39: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

開発ルールを決めておく

Page 40: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定7. 開発ルールを決めておく

• ASTERIA WARPは自由にすぐに作ることができるのが特徴→ 放っておくと取り返しがつかないことに

• わかりやすい開発ルール• 命名規則• バージョン管理機能の使用とユーザー管理• コネクションの利用• 変数の使用• 外部変数、フロー変数の使い分け

• コメントの付け方• コンポーネントの繋ぎ方• 縦とか横とか

Page 41: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Page 42: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

ベストプラクティス、アンチパターンを

知る、貯める、共有する

Page 43: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定ベストプラクティス

• BranchではなくSwitchを活用しよう

• 文字列の合成、パスの作成にはEmbed関数を使おう

• Concatenateの区切り文字は便利

• RDBGetでループするときは取り出す件数を指定しよう

• URLトリガーのフローはHTTPStartで始めよう

• 何か変更するときはとりあえずフローを複製

• FlowDiffを活用しよう

Page 44: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定アンチパターン

• 変数などの名前には「_」「-」以外の記号は使わない

• パスの区切り文字には「\」を使わない。「/」を使う

• 文字コードにはUTF-8以外を使わない

• EndResponse は使わない。End を使う

• パラレルフローの不要な合流は行わない

• 不要な「ストリームをまとめる」は行わない

• 1つのプロジェクトに20以上のフローは作成しない

• スクロールしなければみることができないフローは作らない

Page 45: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

応用編

効率よく開発するために

Page 46: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Page 47: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

ASTERIA WARPを使って

開発を効率化する

Page 48: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定モジュール化

• サブフロー• フローで書いた処理を再利用する• 呼び出し方もいくつかあり• SubFlow、ParallelSubFlow、FlowInvoker

• 関数ライブラリ• マッパー関数を組み合わせたものを再利用する

• 外部変数• 定数や変数を複数フローで共有する

• ストリーム定義• ストリームのプロパティやフィールド定義を再利用する

Page 49: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定拡張機能

• カスタムコンポーネント、カスタム関数• よく使う処理をコンポーネントやカスタム関数にする

• JavaInterpreter• コンポーネントや関数の処理をJavaで記述できる• 若干遅いので注意

• Flow Thin Client• 外部のJavaプログラムからフローを呼び出すためのライブラリ

• Web API• FSMCの機能やフローの実行と同等のものをWeb APIとして呼び出し

Page 50: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

Page 51: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

先輩に差をつける便利機能5選!

Page 52: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定テーブル定義書

• コネクション接続先のテーブル定義の情報をExcelに書き出す

Page 53: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定プロパティ式エディタ

• プロパティの値を雛形を使ってマクロ化• 簡単な編集であればマッパーよりも見やすくわかりやすい

Page 54: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定入力ストリーム定義を出力にコピーする

• 入力と出力のフィールドが似ている場合にマッパーの右クリックから「入力ストリーム定義を出力にコピーする」を選択するとフィールド定義をコピーできる

Page 55: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定ドラッグ&ドロップ

• コンポーネントとコンポーネントの間のリンク上にMapperなどのコンポーネントをドロップするとリンクを繋ぎ直すことなく間にコンポーネントを挟むことができる

• コネクションを使用するコンポーネントにコネクションをドロップするとコネクションを設定できる

• コネクションをワークスペースにドロップすると対応するコンポーネントを配置できる

• ファイルをプロパティにもつコンポーネントにファイルをドロップするとファイルパスを設定できる

• ファイルをドロップするとファイル種別に対応したコンポーネントを配置できる

Page 56: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定イメージをファイルに保存

• ワークスペースで右クリックから「イメージをファイルに保存」するとフローのイメージを画像ファイルにすることができる• 社内で情報を共有したり、仕様書、ブログ、メールなどに添付する際

に便利

Page 57: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

One more thing...

Page 58: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定困る前に&困った時の情報収集手段

• 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

Page 59: ASTERIA WARP開発前に知っておくべき10の鉄則

マスタータイトルの書式設定

次は先輩の体験談をじっくり聞いてみましょう