IoT向けのローコードプログラミングツールNode-REDがバージョン2.0に至った。フローデバッガーとフローリンターが提供されており、プログラマがフローのバグを見つける助けとなる。
Node-RED 2.0では主に、古いバージョンのNode.jsのサポートをなくし、多数の内部依存関係を更新することに重点を置いている。それでも、プラグインとして利用できる新しいフローデバッガーとフローリンターは、ほとんどの開発者にとって歓迎すべき追加機能だ。
Node-REDフローデバッガーでは、ノードポートにブレークポイントを設定し、設定されたポートで新しいメッセージが受信されるたびにフローを停止できる。これによって、キューに入り、処理を待機しているすべてのメッセージを検査できる。フローを一度に1つのメッセージで実行したり、キューに入ったメッセージを削除したりすることもできる。これができるのは、Node-REDが数年前に非同期になったことによるものであり、ゆえに、メッセージ処理の相対的な順序が直感的ではなくなっている。
現時点では、フローデバッガーは条件付きブレークポイントやキューに入ったメッセージの編集をサポートしていないが、両方とも開発中である。同様に、現在、ノードのサブセットのみを一時停止することはできないが、将来のリリースでできるようになる予定である。
nrlint
と呼ばれるNode-REDフローリンターを使って、フロー内の潜在的な問題を特定できる。nrlint
はルールを基に、HTTP In
ノードの出力をどのHTTP Response
ノードにも接続しない状態でいるといった、潜在的に誤った使用法を特定できる。nrlint
はeslint
と統合することもできる。これは、フローにカスタムのJavaScriptコードが含まれている場合に有効である。
Node-REDリンターは、ブラウザーのWorkerスレッドを使い、その結果を別のサイドバーに表示する。これにより、注意が必要なフローの箇所にすばやく移動することもできる。あるいは、コマンドラインからnrliter
を実行して、リンティングステップをCIパイプラインに統合することもできる。
まだ開発者エクスペリエンスの面では、Node-RED 2.0ではコードエディターのACEがMonacoに置き換わっている。Monacoは、Microsoft Visual Studio Codeで活用されているエディターエンジンであり、すべてのVisual Studio Code開発者がNode-RED 2.0を快適に使えるようになる。Monacoはデフォルトで有効だが、ユーザは必要に応じてACEに戻すことができる。
他にもNode-RED 2.0の注目すべき改善点がある。新たにnode-red admin init
コマンドが追加されており、正しく構成された設定ファイルを簡単に作成できる。Function
ノードから外部モジュールを呼び出すためのサポートが改善された。データの変更がないときにメッセージを破棄するために使用するReport By Exception(RBE
)ノードは、デフォルトパレットの一部になり、より適切な意味のFilter
という名前に変更された。