ローコード開発とノーコード:設定・拡張・テスト
執筆:Ai Flowi · 公開日
ローコード開発は、視覚的な設定と再利用可能なコンポーネントによって、アプリケーションやワークフローに必要な手作業で記述するコードを減らす手法です。ノーコードは、対応するタスクをコードを書かずに設定だけで完了させることを目指す手法です。どちらも、入力、権限、失敗時の処理、正しい結果の基準について判断する必要があります。
境界はタスクによって変わります。既存のコンポーネントを選ぶのは設定作業になり得ますが、変換式やカスタムコンポーネントを書くと、誰かが保守すべきコードが加わります。視覚的なキャンバスでも、その責任はなくなりません。
ローコードとノーコードとは
画面で操作するビルダーは、定義済みの操作、設定フィールド、接続を提供します。実装を書き直さずに、既存の操作を利用できるようにします。ローコードの作業では、それらの操作に式や拡張を組み合わせる場合があります。ノーコードの作業は、プラットフォームの動作を拡張せず、そのタスクで使える設定済みの機能の範囲にとどまります。
これらの呼び方は品質の指標ではありません。たまに行う確認には短い手作業の手順で十分な場合があり、契約が安定している繰り返し作業には、設定したワークフローが適する場合があります。まず必要な処理を決めます。未確定の規則に沿ってワークフローを組んでも、その未確定の規則を繰り返し実行するだけです。
関連情報:RPAとAIの違い:自動化での役割と実行権限。
提供されたCSVの検証で境界を確認する
request_id、category、requested_unitsを含む架空のCSVを考えます。指定の規則では、空文字列や空白だけではないテキストの識別子、standardまたはexceptionに等しいcategory、1から5までの整数の数量が必要です。同じ識別子が繰り返される場合は、確認のため保留します。これらの制限は説明用に作ったものであり、製品の制限ではありません。
求める出力は、受け入れた記録の一覧と、元の行の参照情報および拒否理由を含む例外の一覧です。外部への書き込みは不要です。受け入れた一覧で識別子が失われたり、2つの記録が統合されたり、空の値がゼロに変換されたりしていれば、出力行数が正しそうに見えるだけでは不十分です。
同じ説明用CSV検証を行う3つの方法:狭い画面では、表の領域にフォーカスを合わせて横にスクロールしてください。
| 手法 | 行う作業 | 残る責任 |
|---|---|---|
| 手作業 | 確認担当者が、提供された各記録を書面の規則に照らして確認し、例外を記録します。 | 同じ規則を一貫して適用し、元の記録の識別情報を維持します。 |
| 画面での設定 | 記録を読み込み、ビルダーが実際に提供する検証について、利用可能な設定済みの操作を使います。 | 解析、受け入れる型、拒否の経路、未対応の規則を確認します。 |
| コードによる式や拡張 | 既存の設定で表せない検証や重複の規則を実装します。 | ロジック、エラー時の動作、実行環境との互換性、回帰チェックを保守します。 |
この表は1つのタスクの方法を比較するもので、製品の比較や速度の主張ではありません。標準機能で規則を扱えるなら再利用します。作業が1回限りで、無理なく確認できるなら、自動化したパイプラインより手作業の確認のほうが保守を減らせる場合があります。拡張が正当化されるのは未達の要件がある場合であり、コードエディターがあるからではありません。
設定にもデータ契約が必要
空のセル、数値に見える識別子、想定外の列をパーサーがどう表すかを定義します。書面の識別規則で別途定めていない限り、識別子「001A」は「1A」と区別されるべきです。整数という要件にも明示的な解釈が必要です。任意の数値テキストを受け入れると、後続の操作が扱う想定のない値が入り込む可能性があります。
影響を伴うアクションの前に入力を検証します。入力ファイルの見た目で実行時の型が決まると思い込まず、実際に解析された行を確認します。必須のヘッダーが消えていたら停止し、スキーマの不一致を記録します。空のフィールドで黙って続行すると、成功したように見える実行から、使えない出力が生じることがあります。
型付きの接続と設定の詳細は、ワークフローの基本リファレンスで説明しています。ポートが接続されていることは、宣言された型の互換性を示すものであり、CSVの規則が正常に実行されたことを示すものではありません。この違いは、設定だけを使うワークフローにも、式を含むワークフローにも当てはまります。
例に使う文書化済みのコンポーネント
Load CSV、JSON Operations、Verification Routerのリファレンスで、それぞれのインターフェースを説明しています。このCSV検証の提案は、カタログに記載されていますが、Ai Flowiによる本番環境でのテストは実施されていません。
設定例であり、実施・記録済みのテストではありません:利用が認められた架空のファイルをLoad CSVのcsv_fileで提供し、JSON Operationsのoperationsを正確な選択肢名JQ Expression
に設定し、queryに確認済みの検証式を入れます。返された判断を確認してから、Verification Routerのverification_resultに渡します。ワークスペースとファイルの読み取り権限が必要です。この概略ではモデルや外部プロバイダーを使いません。想定する受け入れ一覧と例外一覧の生成は、まだ実行されていません。
設定の範囲に収められるものを判断する
指定されたcategoryの検証では、文書化された操作で、追加コードなしに許可された2値を比較できるかをまず確認します。識別子の重複規則では、1行だけの検証ではなく、利用可能な設定でファイル全体の記録を比較できるかを確認します。行単位の空欄確認とファイル単位の一意性確認では対象範囲が異なります。前者を通過しても、後者が成立したことにはなりません。
確認済みの式で不足していたファイル単位の比較を補う場合、この実装はローコードに分類されます。誰かが実行可能なロジックを保守することになるためです。規則の改訂とともに式の改訂を記録します。後から許可する数量の範囲が変わった場合は、ロジックを更新し、新しいファイルを受け入れる前に境界のケースを再実行します。画面上の接続が同じでも、検証の意味は変わり得ます。
例外的な1回限りの修正は、承認された規則になるまでは、再利用する検証処理に組み込まないようにします。例えば、確認担当者が原文の参照情報を使って、利用が認められた1行の欠落した識別子を手作業で修正することがあります。その修正を将来のすべての実行に組み込むと、欠落した識別情報を黙って推定値に変えることになります。契約を変える特別な処理を加えるのではなく、例外を確認に戻します。
拡張は動作を保守する担当者を変える
カスタムコンポーネントのリファレンスでは、既存のコンポーネントで扱えない要件に対応するPythonの動作を説明しています。状態:この拡張の仕組みは文書化されていますが、ここではCSV拡張のテストを実行したとは主張していません。カスタムコンポーネントは、キャンバス上で組み込みノードの隣に置かれていても、自分で保守する実装です。
拡張する前に、不足している規則を正確に特定します。識別子の重複確認なら、新しいコンポーネントではなく小さな式で済むかもしれません。拡張が必要な場合は、保守担当者を明示し、規則が壊れたときに失敗する小さな実行可能なチェックを残します。エラーの表現方法と、次のコンポーネントが受け入れる内容を決めます。例外を空の受け入れ一覧として隠すと、作業の喪失を覆い隠す可能性があります。
テストはキャンバスではなく規則に従う
指定の契約について、有効な行、空の識別子、重複した識別子、未知のcategory、小数の数量、範囲外の数量を確認します。解析を確かめるため、区切り文字を含む引用符付きのCSVフィールドも含めます。フローが何かを出力したことだけでなく、受け入れた識別子と例外の理由を検証します。
この試行では元の記録を変更せず、確認が失敗しても元に戻せるようにします。後のバージョンでプロバイダーへの書き込みを行う場合は、利用権限のある専用のアカウントまたはAPI認証情報と、プロバイダーの課金設定が必要です。サードパーティーのAPIとモデルの利用料金は含まれません。追加されたこの境界では、書き込み処理と失敗時の動作を別途確認する必要があります。
よくある誤りと関連用語
コードが少なくても、受け入れ要件が減るわけではありません。カタログを読む前に拡張を加える、型付きの接続をテストとみなす、保守を誰にも割り当てない、といったことは避けます。より広いタスク適合性の根拠は、評価チェックリストで扱います。ワークフローオーケストレーションは段階間の依存関係と復旧を、リバースETLは業務上の書き込みで追加される判断を説明します。