北斗神拳伝承者、仲間とともにシステムを創る 〜flydelabs/flydeがもたらす新たな時代の奥義〜
想像してみてくれ。北斗の拳の世界で、ケンシロウがたった一人で強敵を倒してきたように、ソフトウェアの世界でも、あんたたちは一人、あるいは少数の仲間で、巨大なシステムという敵と戦ってきたはずだ。だが、その戦いは常に孤独だった。
そこに現れたのが、「flydelabs/flyde」、こいつだ。この力は、例えるなら、北斗神拳伝承者がただ一人ではない、新たな時代の救世主を生み出すための奥義書のようなもの。
flyde は、AI、ビジュアルプログラミング、VSCode といった最強の仲間たちを連れてきた、オープンソースのビジュアルプログラミングツールだ。
「ビジュアルプログラミング」と聞くと、なんだかおもちゃみたいに聞こえるかもしれない。だが、こいつは違う。
例えるなら、北斗神拳の奥義を、言葉や文字だけで伝えるのではなく、実際にその技の流れを絵で見せ、さらにその技を自分たちのものとして、既存の技と融合させる。そんなイメージだ。
flyde のすごいところは、既存のコードベースとシームレスに連携できる点だ。
あんたたちが汗と涙を流して築き上げてきたコード資産を無駄にしない。それどころか、そのコード資産をさらに強化し、新たな価値を生み出すためのツールとして機能する。
あんたたちは、プロダクトマネージャーやデザイナーといった、コードを直接書かない仲間たちと、機能やロジックについて話すことが多いだろう。
「このボタンを押したら、こういう処理が走って…」
「このデータを取得して、こういう条件で分岐して…」
言葉だけでは、どうしても誤解が生じることがある。それはまるで、北斗神拳の奥義を、ただ言葉で説明するようなものだ。
だが、flyde を使えば、ロジックの流れを視覚的に表現できる。
「見てくれ、このノードがボタンを押した時の処理だ。そして、この矢印が、その後のデータの流れを示している。」
こうすることで、コードを書かない仲間たちも、ロジックの流れを直感的に理解できる。まるで、奥義の流れを絵で見せているかのように。
これにより、認識のズレが減り、手戻りが少なくなる。開発のスピードが上がり、あんたたちはより重要な、奥義を極めるための修行に集中できる。
複雑なロジックを、コードだけで追うのは大変だ。特に、新しい機能を追加したり、バグを修正したりする時、まるで迷路の中にいるかのようだ。
だが、flyde を使えば、ロジックの流れが視覚的に表現されている。
「このバグは、このノードの処理がおかしいんじゃないか?」
「この機能を追加するには、このノードとこのノードの間に、新しいノードを挿入すればいいのか。」
まるで、羅針盤を手に入れたように、ロジックの迷路を迷うことなく進めるようになる。
flyde は VSCode の拡張機能として提供されている。
第一のステップ
奥義書を手に入れる
VSCode の拡張機能マーケットプレイスで、「flyde」と検索して、インストールする。
第二のステップ
新たな力を生み出す
npm install @flyde/runtime
このコマンドで、プロジェクトに flyde のランタイムを追加する。
第三のステップ
奥義を書き記す
プロジェクトのルートディレクトリに、flyde ディレクトリを作成し、そこに flow.flyde のような、*.flyde の拡張子を持つファイルを作成する。
そして、VSCode でそのファイルを開けば、ビジュアルエディタが開く。
ケンシロウが強敵を倒す時の、簡単な流れを考えてみよう。
「敵が目の前にいる」 ↓ 「敵の弱点を見つける」 ↓ 「北斗百裂拳を繰り出す」 ↓ 「敵は倒れる」
この流れを flyde で表現すると、次のようになる。
ノードA(トリガー)
「敵が目の前にいる」というイベントをトリガーする。
ノードB(関数)
「敵の弱点を見つける」というロジックを、既存のコードで実装した関数として呼び出す。
ノードC(関数)
「北斗百裂拳を繰り出す」というロジックを、ノードBの出力(弱点の情報)を引数として受け取り、実行する。
ノードD(コールバック)
「敵は倒れる」という結果を、コールバック関数として受け取り、次の処理に渡す。
このように、flyde のノードは、既存のコードの関数を呼び出すことができる。
あんたが既に、敵の弱点を分析する関数 analyzeWeakness を作成しているとしよう。
// weaknessAnalyzer.js
exports.analyzeWeakness = (enemy) => {
// 敵の弱点を分析するロジック
if (enemy.name === 'ジャギ') {
return '自らの顔の傷';
}
return '秘孔';
};
この関数を flyde で利用するには、Function ノードを作成し、module.exports でエクスポートした analyzeWeakness 関数を呼び出すように設定するだけだ。
そして、このノードの出力は、次のノードの入力として簡単に渡すことができる。
flyde は、ビジュアルプログラミングという新たな武器をあんたたちに授け、孤独だった戦いを、仲間と共に戦う新たな時代へと導いてくれる。
この力を使いこなし、あんたたち自身が、そしてあんたたちのチームが、新たな時代の救世主となることを、俺は願っている。