Submit Search
Upload
プロのためのNode-RED再入門
•
5 likes
•
14,042 views
Makoto SAKAI
Follow
経験者向け社内勉強会資料(一部加筆)
Read less
Read more
Software
Report
Share
Report
Share
1 of 31
Download now
Download to read offline
Recommended
UIbuilderを使ったフロントエンド開発
UIbuilderを使ったフロントエンド開発
Atsushi Kojo
Node-REDをIoTビジネスに適用するために苦労した3つの話
Node-REDをIoTビジネスに適用するために苦労した3つの話
Tomohiro Nakajima
Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業
kazuhiro harada
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
Makoto SAKAI
Node RED で実現する製造業の DX
Node RED で実現する製造業の DX
雅治 新澤
Node-REDのノード開発容易化ツールNode generator
Node-REDのノード開発容易化ツールNode generator
BMXUG
Node-REDでプロジェクト管理を始めてみよう!
Node-REDでプロジェクト管理を始めてみよう!
Koji FUNATSU,
OPC UAをオープンソースやフリーのソフトで遊んでみた
OPC UAをオープンソースやフリーのソフトで遊んでみた
ミソジ
Recommended
UIbuilderを使ったフロントエンド開発
UIbuilderを使ったフロントエンド開発
Atsushi Kojo
Node-REDをIoTビジネスに適用するために苦労した3つの話
Node-REDをIoTビジネスに適用するために苦労した3つの話
Tomohiro Nakajima
Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業
kazuhiro harada
[Node-RED] ファンクションノードのデバッグどうしてる?
[Node-RED] ファンクションノードのデバッグどうしてる?
Makoto SAKAI
Node RED で実現する製造業の DX
Node RED で実現する製造業の DX
雅治 新澤
Node-REDのノード開発容易化ツールNode generator
Node-REDのノード開発容易化ツールNode generator
BMXUG
Node-REDでプロジェクト管理を始めてみよう!
Node-REDでプロジェクト管理を始めてみよう!
Koji FUNATSU,
OPC UAをオープンソースやフリーのソフトで遊んでみた
OPC UAをオープンソースやフリーのソフトで遊んでみた
ミソジ
データで散らかった製造業界における最高の翻訳機 Node-RED
データで散らかった製造業界における最高の翻訳機 Node-RED
nodered_ug_jp
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
Hitachi, Ltd. OSS Solution Center.
ia-cloudとNodeREDで作る工場IoT–センサ接続やダッシュボードのカスタムNode開発秘話
ia-cloudとNodeREDで作る工場IoT–センサ接続やダッシュボードのカスタムNode開発秘話
Ryoichi Obara
Node-REDのworldmapの活用
Node-REDのworldmapの活用
OSgeo Japan
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
Kazuto Kusama
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
Node-REDと出会って4年でようやくわかったSwitchノードの重要性
Node-REDと出会って4年でようやくわかったSwitchノードの重要性
SmartLight
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
KLab Inc. / Tech
Node-RED導入時の効果的な開発を考える
Node-RED導入時の効果的な開発を考える
Makoto SAKAI
IoT GatewayとNode-REDの美味しい関係 - OpenBlocks IoTへのNode-REDの実装 -
IoT GatewayとNode-REDの美味しい関係 - OpenBlocks IoTへのNode-REDの実装 -
nodered_ug_jp
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTT DATA OSS Professional Services
MQTTとAMQPと.NET
MQTTとAMQPと.NET
terurou
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd
Itsuki Kuroda
低レイヤー入門
低レイヤー入門
demuyan
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
Node-redでプロトタイピング
Node-redでプロトタイピング
Makoto SAKAI
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
Makoto SAKAI
More Related Content
What's hot
データで散らかった製造業界における最高の翻訳機 Node-RED
データで散らかった製造業界における最高の翻訳機 Node-RED
nodered_ug_jp
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
Hitachi, Ltd. OSS Solution Center.
ia-cloudとNodeREDで作る工場IoT–センサ接続やダッシュボードのカスタムNode開発秘話
ia-cloudとNodeREDで作る工場IoT–センサ接続やダッシュボードのカスタムNode開発秘話
Ryoichi Obara
Node-REDのworldmapの活用
Node-REDのworldmapの活用
OSgeo Japan
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
Kazuto Kusama
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
UnityTechnologiesJapan002
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Ore Product
Node-REDと出会って4年でようやくわかったSwitchノードの重要性
Node-REDと出会って4年でようやくわかったSwitchノードの重要性
SmartLight
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
Takafumi ONAKA
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
dcubeio
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
KLab Inc. / Tech
Node-RED導入時の効果的な開発を考える
Node-RED導入時の効果的な開発を考える
Makoto SAKAI
IoT GatewayとNode-REDの美味しい関係 - OpenBlocks IoTへのNode-REDの実装 -
IoT GatewayとNode-REDの美味しい関係 - OpenBlocks IoTへのNode-REDの実装 -
nodered_ug_jp
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
KLab Inc. / Tech
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTT DATA OSS Professional Services
MQTTとAMQPと.NET
MQTTとAMQPと.NET
terurou
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
onozaty
大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd
Itsuki Kuroda
低レイヤー入門
低レイヤー入門
demuyan
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Akihiro Suda
What's hot
(20)
データで散らかった製造業界における最高の翻訳機 Node-RED
データで散らかった製造業界における最高の翻訳機 Node-RED
Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介
ia-cloudとNodeREDで作る工場IoT–センサ接続やダッシュボードのカスタムNode開発秘話
ia-cloudとNodeREDで作る工場IoT–センサ接続やダッシュボードのカスタムNode開発秘話
Node-REDのworldmapの活用
Node-REDのworldmapの活用
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
『コンテナ疲れ』と戦う、k8s・PaaS・Serverlessの活用法
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
【Unite Tokyo 2019】Unityだったら簡単!マルチプレイ用ゲームサーバ開発 ~実践編~
オーバーエンジニアリングって何? #devsumi #devsumiA
オーバーエンジニアリングって何? #devsumi #devsumiA
Node-REDと出会って4年でようやくわかったSwitchノードの重要性
Node-REDと出会って4年でようやくわかったSwitchノードの重要性
エンジニアの個人ブランディングと技術組織
エンジニアの個人ブランディングと技術組織
こんなに使える!今どきのAPIドキュメンテーションツール
こんなに使える!今どきのAPIドキュメンテーションツール
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
モバイルアプリの高速で安定したビルドを支えるJenkins運用術
Node-RED導入時の効果的な開発を考える
Node-RED導入時の効果的な開発を考える
IoT GatewayとNode-REDの美味しい関係 - OpenBlocks IoTへのNode-REDの実装 -
IoT GatewayとNode-REDの美味しい関係 - OpenBlocks IoTへのNode-REDの実装 -
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
ゴリラテスト モバイルゲームのUIを自動的に検出・操作する モンキーテスト
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
NTTデータ流 Hadoop活用のすすめ ~インフラ構築・運用の勘所~
MQTTとAMQPと.NET
MQTTとAMQPと.NET
40歳過ぎてもエンジニアでいるためにやっていること
40歳過ぎてもエンジニアでいるためにやっていること
大企業アジャイルの勘所 #devlovex #devlovexd
大企業アジャイルの勘所 #devlovex #devlovexd
低レイヤー入門
低レイヤー入門
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
Similar to プロのためのNode-RED再入門
Node-redでプロトタイピング
Node-redでプロトタイピング
Makoto SAKAI
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
Makoto SAKAI
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Makoto SAKAI
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
Ryo Mitoma
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
じゅん なかざ
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Makoto SAKAI
Oracle設計
Oracle設計
Kouta Shiobara
Open stack reference architecture v1 2
Open stack reference architecture v1 2
Dell TechCenter Japan
Redmine Ansible
Redmine Ansible
ITO Yoshiichi
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
日本マイクロソフト株式会社
20170705 apiをつくろう
20170705 apiをつくろう
CData Software Japan
Node-REDのロードマップや見どころ
Node-REDのロードマップや見どころ
BMXUG
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
OpenStack 向けネットワーク入門
OpenStack 向けネットワーク入門
Dell TechCenter Japan
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
Insight Technology, Inc.
[db tech showcase Sapporo 2015] A12:DBAが知っておくべき最新テクノロジー: フラッシュ, ストレージ, クラウド b...
[db tech showcase Sapporo 2015] A12:DBAが知っておくべき最新テクノロジー: フラッシュ, ストレージ, クラウド b...
Insight Technology, Inc.
LightSwitch で OData
LightSwitch で OData
Yoshitaka Seo
ここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alpha
Hiroshi Sakate
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
Mikiya Okuno
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino
Similar to プロのためのNode-RED再入門
(20)
Node-redでプロトタイピング
Node-redでプロトタイピング
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
新技術で未来の扉を開け! - Node-REDの環境構築と社内導入 -
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
既存システムへの新技術活用法 ~fluntd/MongoDB~
既存システムへの新技術活用法 ~fluntd/MongoDB~
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Node-REDから見えた未来 - 変わるもの、変わらないもの -
Oracle設計
Oracle設計
Open stack reference architecture v1 2
Open stack reference architecture v1 2
Redmine Ansible
Redmine Ansible
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
【de:code 2020】 Azure Kubernetes Service と Azure DevOps による GitOps の実践
20170705 apiをつくろう
20170705 apiをつくろう
Node-REDのロードマップや見どころ
Node-REDのロードマップや見どころ
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
OpenStack 向けネットワーク入門
OpenStack 向けネットワーク入門
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[D33] そのデータベース 5年後大丈夫ですか by Hiromu Goto
[db tech showcase Sapporo 2015] A12:DBAが知っておくべき最新テクノロジー: フラッシュ, ストレージ, クラウド b...
[db tech showcase Sapporo 2015] A12:DBAが知っておくべき最新テクノロジー: フラッシュ, ストレージ, クラウド b...
LightSwitch で OData
LightSwitch で OData
ここが変わったTizen sdk2.0alpha
ここが変わったTizen sdk2.0alpha
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
MySQL Cluster 7.4で楽しむスケールアウト @DB Tech Showcase 2015/06
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
More from Makoto SAKAI
プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-
Makoto SAKAI
プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-
Makoto SAKAI
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
Makoto SAKAI
メールやチャットでも役立つテクニック
メールやチャットでも役立つテクニック
Makoto SAKAI
改訂版:開発現場で役立つ論文の書き方のお話
改訂版:開発現場で役立つ論文の書き方のお話
Makoto SAKAI
(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話
Makoto SAKAI
論理的思考力を身に着けるための論文研修
論理的思考力を身に着けるための論文研修
Makoto SAKAI
SS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさ
Makoto SAKAI
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
Makoto SAKAI
プロジェクトを成功させるチケット管理
プロジェクトを成功させるチケット管理
Makoto SAKAI
複合主キーの扱い方
複合主キーの扱い方
Makoto SAKAI
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
Makoto SAKAI
チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性
Makoto SAKAI
効果的な XP の導入を目的としたプラクティス間の相互作用の分析
効果的な XP の導入を目的としたプラクティス間の相互作用の分析
Makoto SAKAI
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
Makoto SAKAI
社会人のためのシンポジウム発表入門 リーン論文作法
社会人のためのシンポジウム発表入門 リーン論文作法
Makoto SAKAI
パネル:Redmineの未来を考える
パネル:Redmineの未来を考える
Makoto SAKAI
古くて新しいサーバントリーダーシップ
古くて新しいサーバントリーダーシップ
Makoto SAKAI
チケット駆動開発導入のヒント - 自律と規律 -
チケット駆動開発導入のヒント - 自律と規律 -
Makoto SAKAI
計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)
Makoto SAKAI
More from Makoto SAKAI
(20)
プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-
プロセスモデルの補完方法 -モデル・ノウハウ・人-
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
SQiP20222投稿応援フォーラム「開発現場で役立つ論文の書き方のお話」
メールやチャットでも役立つテクニック
メールやチャットでも役立つテクニック
改訂版:開発現場で役立つ論文の書き方のお話
改訂版:開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話
(講演資料)開発現場で役立つ論文の書き方のお話
論理的思考力を身に着けるための論文研修
論理的思考力を身に着けるための論文研修
SS2019 エッジデバイス開発の難しさ
SS2019 エッジデバイス開発の難しさ
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
スクリプト言語入門 - シェル芸のすすめ - 第2回クラウド勉強会
プロジェクトを成功させるチケット管理
プロジェクトを成功させるチケット管理
複合主キーの扱い方
複合主キーの扱い方
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
UAS5 アジャイル開発に学んだアダプタブルウォーターフォール開発
チケットの利用による経験を活かした開発の可能性
チケットの利用による経験を活かした開発の可能性
効果的な XP の導入を目的としたプラクティス間の相互作用の分析
効果的な XP の導入を目的としたプラクティス間の相互作用の分析
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
「なんで?」と「自分だったら」が属人化を防ぐ - 必要な時に必要なものを必要なだけ -
社会人のためのシンポジウム発表入門 リーン論文作法
社会人のためのシンポジウム発表入門 リーン論文作法
パネル:Redmineの未来を考える
パネル:Redmineの未来を考える
古くて新しいサーバントリーダーシップ
古くて新しいサーバントリーダーシップ
チケット駆動開発導入のヒント - 自律と規律 -
チケット駆動開発導入のヒント - 自律と規律 -
計算量のはなし(Redisを使うなら必読!O(logN)など)
計算量のはなし(Redisを使うなら必読!O(logN)など)
プロのためのNode-RED再入門
1.
Copyright © Software
Research Associates, Inc. All Rights Reserved 株式会社 SRA 阪井 誠 プロのためのNode-RED再入門
2.
Copyright © Software
Research Associates, Inc. All Rights Reserved 1 Visual 開発ツールNode-RED • Node-RED*はVisual IoTツールと呼ばれ,Webブラウザ上の エディタでプログラミングする • 長円のプログラムモジュールをノードと呼び、標準ノードのほか、 コントリビュートされた多機能なノードが豊富にある • ノードを中央の編集領域に配置し,ノード間を接続してフロー (処理)を作成する • ノードには名前を付加できるが,単に配置するだけでも設定に 応じた内容が表示される * JS Foundation,Node-RED is a visual wiring tool for the Internet of Things,https://nodered.org/
3.
Copyright © Software
Research Associates, Inc. All Rights Reserved Node-REDの長所・短所 長所: • 非同期処理が簡単に扱える • アルゴリズムが可視化される • 多機能なノード(モジュール) • デプロイが一瞬 • 再利用が容易 短所: • 単体テストの自動化ができない • 発展途上 • 方式設計が重要 • ループが特殊 • マージ・保守に工夫が必要
4.
Copyright © Software
Research Associates, Inc. All Rights Reserved Node-REDを使いこなそう • Visual IoTツール Node-REDの開発は、簡単に始 められ、だれでもある程度は使いこなせる • しかし、Node-REDの導入には以下が重要*1 • ツールの知識やノウハウを共有すること • 特性を活かした設計で品質を作りこむこと • 実装を繰り返して常に確認すること • 上流から利用すること • Node-REDを使いこなすためのノウハウを説明し ます *1:Visual開発ツールNode-REDの導入によるプロセスの変化と考慮点, http://sea.jp/ss2017/accepted_papers.html#3-9,SS2017 , 2017.
5.
Copyright © Software
Research Associates, Inc. All Rights Reserved 4 目次 • 背景:Node-REDを使いこなそう • 目次 • アンケートとその結果 • Node-REDの特徴と繰り返し開発 • 構造を設計・実装する • テストの方法 • 上流から動かす • はまりがちなところ
6.
Copyright © Software
Research Associates, Inc. All Rights Reserved アンケート • Node-REDの経験者8人にアンケートを行った. • 社内サービス • プロトタイプ • テストダブル(ドライバ,モック,スタブ) • 自社パッケージ • ユーティリティなど • Node-REDは生産性が高いことから選択された. • 全てのプロジェクトはいわゆるウォーターフォール 型開発の工程を持っていた • 程度の差はあるが厳格な工程完了審査は行われていない • メールでQCDとプロセスの変化をアンケートした • 品質,コスト, 開発期間:4段階の選択式(重複選択可) の評価と自由記述 • 要件定義,設計,プログラミング,テスト,リリースの変 化:自由記述
7.
Copyright © Software
Research Associates, Inc. All Rights Reserved アンケート結果 • 評価方法 大分類 小分類 収集データ グラフ化 QCD 品質 4段階+自由記述 4段階 コスト 開発期間 プロセスの 変化 要件定義 自由記述 以下を判断して集計 • ネガティブ評価 • ポジティブ評価 • 変化なし および どちらともいえない 設計 プログラミング テスト リリース
8.
Copyright © Software
Research Associates, Inc. All Rights Reserved QCDアンケート結果 - 品質 - • サクサクと実装,実行,確認・修整の作ってのループが良かった • 内製にこだわるよりも品質が良い • コード量が減った • 試作に有効 • 非同期処理が容易 • フローを意識してシンプルな作りになった • 単体テストができない • コード検索ができないのでバグが見つけにくい
9.
Copyright © Software
Research Associates, Inc. All Rights Reserved QCDアンケート結果 – コスト - • 非同期処理が容易 • 高機能なコンポーネントが多い • 設計からテストまでシームレスにでき効率が良い • 処理部に注力できた • diffが取れない • ドキュメントが少ない • 必要なノードを探すのに時間がかかった • 繰り返し処理に苦労した
10.
Copyright © Software
Research Associates, Inc. All Rights Reserved QCDアンケート結果 - 納期 - • 非同期処理が容易 • カスタムノード作成で効率化できた • 開発のスピード感が半端ない • 他人のフローを簡単にインポート可 • 実装にいきなり入れる • 効率よく開発できる • 大きな手戻りがなかった • 自作部分の作りで効率や保守性が変わる • ドキュメントが少ない • 品質の悪いノードがあった • 必要なノードを探すのに時間がかかった
11.
Copyright © Software
Research Associates, Inc. All Rights Reserved アンケート結果 • 評価方法 大分類 小分類 収集データ グラフ化 QCD 品質 4段階+自由記述 4段階 コスト 開発期間 プロセスの 変化 要件定義 自由記述 以下を判断して集計 • ネガティブ評価 • ポジティブ評価 • 変化なし および どちらともいえない 設計 プログラミング テスト リリース
12.
Copyright © Software
Research Associates, Inc. All Rights Reserved プロセスの変化 – ポジティブ - • プロトタイプが早くできると説明も早く,意見を貰いやすい • 曖昧な要求でもとりあえず作り始めることができる • 作ったものから要件を確定していくことが可能 • 大まかな処理の流れをすぐにフローとして実装可能 • 設計とプログラミングのイテレーションが容易 • Injectノードとデバッグノードでの確認も容易 • ほんの少数のファイルをリリースするだけでよく,管理しやすい • ユニットテストはカスタムフローやAPI単位しかできないが,不安は少なかった • コード管理だけ課題・・・完成した開発環境になればすばらしいものになりそう • (保守は)基本的に容易だが,開発環境を残さないと詳細を確認し辛かった 設計以降の問題を 指摘しながらも, 好意的な表現
13.
Copyright © Software
Research Associates, Inc. All Rights Reserved プロセスの変化 – ネガティブ - • 単体テストをどのように行うのかわかりませんでした • 複数人数での開発が少し手間取る • 外部リソースの設定が外だしに出来ず,リリース後にとても煩わしかった • Node-REDの癖にあわせた設計は必要.設計次第 • 簡単な反面,リリース後の不具合も増える可能性がある • コード全体の検索が出来ないため,複雑なシステムは保守しにくくなる 上流のプロセスに変 化がないとしていた. Node-RED流の開発 スタイルをつかみ切 れていない
14.
Copyright © Software
Research Associates, Inc. All Rights Reserved 考察 Node-REDの導入に重要なこと • ツールの知識やノウハウを共有すること • 特性を活かした設計で品質を作りこむこと • 実装を繰り返して常に確認すること • 上流から利用すること 情報共有や教育が重要であるだけでなく, 既存のプロセスをそのまま適用するのではなく, 積極的に変更することがプロセス改善につながる
15.
Copyright © Software
Research Associates, Inc. All Rights Reserved アンケートまとめ • Node-REDの開発経験者8人にアンケートした • プロセスの変化を調査してその原因を考察した • 新しいツールを導入してプロセスの改善するには以下が必要 Node-REDの導入に必要なもの モダンアジャイルの指導理念 ツールの知識やノウハウを共有 する 人々を尊重する 特性を活かした設計を行う 安全な状態を前提とする 実装を繰り返して常に確認する 素早い実験と学習 主体的にプロセスを変更し、品質 を上流から作りこむ 価値を継続的に届ける • 得られた知見は,モダンアジャイル*の基本理念と通じる • Node-REDの良い導入が開発のアジリティ(機敏さ)を高める * Smith, Agile 2016 Keynote: Modern Agile, https://www.infoq.com/news/2016/08/agile2016-modern-agile, 笠原,Agile 2016の基調講演: モダンアジャイル, https://www.infoq.com/jp/news/2016/08 /agile2016-modern-agile, 2016.
16.
Copyright © Software
Research Associates, Inc. All Rights Reserved 15 Node-REDの特徴 • Hello Worldの入出力のノードを置き換えるだけで Webプログラムになる 一瞬でデプロイ 非同期処理を 可視化 簡単デバッグ 多機能なノード群
17.
Copyright © Software
Research Associates, Inc. All Rights Reserved 16 Dashboard • msg.payloadが標準なので Hello Worldの入出力のノー ドを置き換えるだけで WebUIになる
18.
Copyright © Software
Research Associates, Inc. All Rights Reserved 17 繰り返し開発 • データの受け渡しの基本がmsg.payloadであ ることを利用する • インジェクトノードとデバッグノードでノードを開 発する • 動作確認ができれば上流あるいは下流のノードを追 加する • 確認の工夫 • カバレージを考慮しながらテストする • 使い方のわからないノードは単独で確認する • 注意点 • 起動時の処理は要注意 • もしもの時は~/.node-red/flows.jsonを編集する • type:injectにあるonce (一世代だけならbackupから戻せます)
19.
Copyright © Software
Research Associates, Inc. All Rights Reserved 18 インジェクトノード 注目 注目
20.
Copyright © Software
Research Associates, Inc. All Rights Reserved 19 デバッグノード • ノード状態:functionノードの「node.status(xxx)」と同じ • https://nodered.jp/docs/creating-nodes/status 注目
21.
Copyright © Software
Research Associates, Inc. All Rights Reserved 20 構造を設計・実装する • 実装前に考えたことは? • 意識したデータ? • 機能のまとめ方? • システム構造の考え方? • 作業分担の方法?
22.
Copyright © Software
Research Associates, Inc. All Rights Reserved 21 意識するデータ • msgオブジェクトの構造 • 重複の少ないデータ構造 • 途中で破壊しない • グローバルオブジェクト、フローオブジェクト • 永続化されない • 初期化も考慮する • データベース • RDBかキーバリューか • 運用も考慮する
23.
Copyright © Software
Research Associates, Inc. All Rights Reserved 22 機能のまとめ方 • タブ • リンクやhttpで結合 • サブフロー • フローを一つのノードにまとめる • ファンクションノード • 複雑な処理(Change, Switch, Split, Joinノード)を まとめて記述できる • カスタムノード • 設定などのUIを持ったノードを作成できる • 設計指針 • 単機能のノードやサブフローになる様に • インタフェースのデータ構造が単純になる様に
24.
Copyright © Software
Research Associates, Inc. All Rights Reserved 23 Functionノード(1/2) • 処理内容を表す名前を付けてフローを読み易く • 入力は最大一つ、出力は複数可能 • 出力が複数の場合は戻り値を配列で返す • 出力しない出口にはnullをセットする • 単一条件出力はスイッチノードの方が修正が楽 • 端子に名前をつけるとマウスオーバーで表示 • バージョン0.17以降 • javascriptでコーディング(構文エディタ) • msgオブジェクトを受け取って、msgを返す • 一つの出口に複数返す場合や、無名関数内で終了 する場合は、 node.send(msgオブジェクト)
25.
Copyright © Software
Research Associates, Inc. All Rights Reserved 24 Functionノード(2/2) • グローバルオブジェクト • global.get()/set() • 永続化されない • フローオブジェクト • flow.get()/set() • 永続化されない • require は setting.js の functionGlobalContextで • グローバルオブジェクトで 参照可能 端子名とアイコン
26.
Copyright © Software
Research Associates, Inc. All Rights Reserved 25 システムの構造を考える • 処理形態 • 非同期並行処理 • 順次処理(メモリー消費が少ない) • 処理間連携 • データ結合 • グローバル/フローオブジェクト、RDB、その他 • CRUD(生成、参照、更新、削除)の仕組み • 通信 • http:戻りがある • websocket、リンク:入力あるいは出力 • カスタムノード、サブフロー:入力と出力 • msgオブジェクトの初期化は危険 • http responseできなくなる • メモリ削減にならない
27.
Copyright © Software
Research Associates, Inc. All Rights Reserved 26 作業分担の単位と方法 • 分担の単位 • システム(Node-RED) • タブ • フロー • サブフロー • カスタムノード • 分担の方法 • 呼び出し(通信) • リンクノード • import & export • インストール • デバッグノードの出力をインジェクトノードで入力
28.
Copyright © Software
Research Associates, Inc. All Rights Reserved 27 テストの方法 • 単体レベル • xUnitできるのはカスタムノード • 少しずつ開発しながら随時テストする • 信頼性の高いソフトウェアを増やしていく • 機能テスト • 機能の網羅性、データの網羅性や境界値に注目する • Swagger、Postman、curlなどで呼び出す • Node-REDでテストダブルを用意する • スタブ、モック、ドライバ • DashboardをUIに利用する • 非機能テスト • 非同期に動作するので線形に性能が出る • 想定される負荷を実際に与えてテストする • デバッグノードに注意
29.
Copyright © Software
Research Associates, Inc. All Rights Reserved 28 上流から動かす • ドキュメントを軽量化する • 情報(タブ、カスタムノード) • コメントノード • とりあえず動かす • ユーザインタフェース • システムインタフェース • ビジネスロジック • 単純化する • 詳細なロジックは後回し • リスクをつぶして実装のメリットを発揮する
30.
Copyright © Software
Research Associates, Inc. All Rights Reserved 29 はまりがちなところ • メモリ不足 • 1対他の接続はコピーになる • Functionノードでstatus表示すると良い • デバッグノードは文字列化するので要注意 • 不要な接続は切る • Node.send()は参照になる(結構危険) • Javascript • 非同期あるある • 非同期処理中はreturnでなくnode.send() • 適当に動作する(弱い型付け) • 引数の間違いも動作する • 進化が速い • 他人が作業中に上書き • 競合の通知と差分確認が可能 • 端子を間違える • 端子に名前を付ける • 動かなくなる • ユーザディレクトリの.flows_*.json.backupを.flows_*.jsonにコピー
31.
Copyright © Software
Research Associates, Inc. All Rights Reserved 30 おわり
Download now