ノーコード5行で理解する

[急激に広まるノーコード、ローコードをうまく使いこなせ](https://ascii.jp/elem/000/004/039/4039185/) ... 話はわかるのだが、世の中のノーコード解説記事が難しすぎる気がする。そんな4行でノーコードを理解したい人（私）のためにまとめた。

## 結論

1. 処理のきっかけ (トリガーとよく言われる)
1. 入力
1. 出力
1. 制御
1. 変換

2~5 は複数ステップになることも多い。
およそ以上5要素から、フローを簡単につくるもの。


## 一般的説明

参考文献を書きます。一般的な製品名称などは以下。
[ノーコード・ローコードまとめ](https://qiita.com/yshr10ic/items/d5c1d18d862a0e50ee3d)
[ノーコード・ローコードのあれこれ](https://qiita.com/kento_gm/items/34c46a9bc6b3017c9345#webflow)
[プログラミング不要のNo Code（ノーコード）とは？どうやって学習するの？](https://note.com/nocodeninja/n/n48feac237591)

### No Code
- プログラミングをせずにWebサイトやアプリ開発をする手法
- コンピューターに指示を与えるのにコーディングせずに実行する手法

### Low Code
- 大部分をNo Codeの手法で進めつつ、コーディングが必要な部分だけはコーディングする手法。
- NoCodeの弱点を補うことが出来るといわれている。

### 記事
- [No Code（ノーコード）でサービス開発する](https://qiita.com/t-kurasawa/items/ba8ad66aa49c52716221)
- [ローコード／ノーコードの台頭で開発者の役割はいかに変化するか](https://japan.zdnet.com/article/35163392/)
- [ローコード開発の現状--なぜ今注目されるのか、何がハードルなのか](https://japan.techrepublic.com/article/35163140.htm)
- [OutSystemsを使ってローコードで座席管理システムを作ってみる](https://qiita.com/n-tanimoto/items/061ff5ff6062070989c1)
- [What Is No Code?](https://medium.com/nocode/what-is-no-code-8c53f0e4c083)

いずれも、2020年初頭には結構熱く語られたトピックだったようですが、その後、俺も俺もとなり何だか製品、用語が乱立してすっかり訳がわからなくなりました。

## 詳細

1. 処理のきっかけ
- 入力
- 出力
- 制御
- 変換

と冒頭に書きましたが実際はその詳細がいろいろな、ぞれぞれのツールの命名で書かれている。例を見てみることにします。

### 処理のきっかけ
- 発火点
- センサー
- トリガー
- 監視
- リクエスト
- メール
- スケジューラ
- コラボレーションアプリ

など

### 入力
- データを受け取る　
- テンプレートを使って
- ファイルで
- XMLで

など

### 出力
- CSVに保存
- DBに保存
- RSSの生成
- グラフの作成
- HTTPリクエストを送信 
- メールを送信
- XMLを送信
- JSONで出力

など

### 制御

- 繰り返し
- 条件
- 分岐

### 変換
- 数値の加減乗除
- 日付書式の設定
- 暗号化/復号化
- 正規表現マッチング
- 変換表/DBのデータによるデータ置換 など
- nullの置き換え
- null・空文字チェック
- エンコーディングの変換

など




### その詳細が例えば
例示として集めてきたものを一通り書いてみる。

- Slack、Microsft Teams等 
- 1レコードずつ
- ファイルをアップロード
- ファイルを保存
- コマンドを実行
- フィードの作成・アップロード
- フィードの作成・更新
- BASE64
- エンコード
- デコード
- Excel
- メールを送信
- Excel形式で保存
- FTPサーバにXMLファイルが追加されたかどうかを監視
- FTPサーバにレコードファイル（CSV）が追加されたかどうかを監視
- FTPサーバに文書ファイルが追加され-たかどうかを監視
- FTPサーバに画像ファイルが追加されたかどうかを監視
- URLデコード
- XPathでノードを取得
- XPathで文字列を取得
- XSLTファイルを使って変換
- XSLT変換ZIP形式に圧縮してアップロード
- ZIP形式に圧縮してファイルに保存
- カレンダーファイルを作成・アップロード
- カレンダーファイルを作成・更新コマンド実行
- コマンド実行の終了を監視
- コマンド実行の結果を取込み
- コマンド実行結果の変更を監視
- ジオコーディングテキストの抽出テキストをファイルに保存
- テーブルを参照してテキストの文字列を置換
- データをファイルに保存
- データベースからの取込み（DB2）
- データベースからの取込み（MySQL）
- データベースからの取込み（Oracle）
- データベースからの取込み（PostgreSQL）
- データベースからの取込み（SQLServer）
- データベースに保存（DB2）
- データベースに保存（MySQL）
- データベースに保存（Oracle）
- データベースに保存（PostgreSQL）
- データベースに保存（SQLServer）
- データベースのアドレスリストを使ってメールを送信
- データベースの更新を監視（DB2）
- データベースの更新を監視（MySQL）
- データベースの更新を監視（Oracle）
- データベースの更新を監視（PostgreSQL）
- データベースの更新を監視（SQLServer）
- ファイルにレコードデータが追加されたかどうかを監視
- ファイルをアップロード
- ファイル・フォルダを削除
- フィードを1レコードずつメールで送信
- フィードをまとめてメールで送信
- フィードを監視
- フォルダにXMLファイルが追加されたかどうかを監視
- フォルダにテキストファイルが追加されたかどうかを監視
- フォルダにレコードファイル（CSV）が追加されたかどうかを監視
- フォルダに固定長データファイルが追加されたかどうかを監視
- フォルダに文書ファイルが追加されたかどうかを監視
- フォルダに画像ファイルが追加されたかどうかを監視
- ブラウザからのフォームリクエストを受信
- ブログにエントリーを投稿
- メールに添付されたExcelファイルのデータを取込み
- メールに添付されたXMLファイルを取込み
- メールに添付されたレコードファイル（CSV）を取込み
- メールに添付された画像ファイルを取込み
- メールを取込み
- メールを送信
- レコードデータをCSVファイルとしてアップロード
- レコードデータをCSVファイルに保存
- レコードデータをフローに送信
- レコード数のチェック
- レコード範囲を抽出
- ログをファイルに出力
- 乗算値がnull・空文字であるレコードを削除
- 値がnull・空文字であるレコードを選択
- 全角→半角変換円グラフを作成
- 切り上げ切り捨て別の変数やフィールドに値をコピー
- 剰余算加算半角→全角変換四捨五入変換表を使って変換
- 変換表ファイルを使って変換
- 変数やフィールドに値を設定
- 大文字→小文字変換
- 小文字→大文字変換
- 復号化
- 折れ線グラフを作成
- 指定された形式の日付フォーマットに変換
- 指定したURLで示されるファイルをダウンロード
- 指定したURLで示されるレコードファイル（CSV）をダウンロード
- 接尾辞の付加
- 接尾辞の切詰め
- 接頭辞の付加
- 接頭辞の切詰め
- 改行文字のプラットフォーム変換
- 改行文字の削除数値の範囲チェック
- 文字列を日付データに変換
- 文字列埋め込み文書管理
- 日付から星座に変換
- 日時の計算暗号化
- 条件に一致した値を含むレコードを削除
- 条件に一致した値を含むレコードを選択
- 棒グラフを作成
- 正規表現に一致したレコードを削除
- 正規表現に一致したレコードを選択
- 正規表現に一致するかのチェック
- 正規表現変換
- 減算特定文字列が存在するかのチェック
- 特定文字列を含むレコードを削除
- 特定文字列を含むレコードを選択
- 現在時刻を設定
- 空白を除去
- 配列にデータを追加
- 重複レコードを削除
- 長さを取得
- 除算集計して円グラフを作成
- 集計して棒グラフを作成
- 集計値を計算
- ３次元棒グラフを作成

等など、多種多様な単位と機能名称で構成されておりそれを積み木、ブロック遊びのように組み合わせて動作させるものをつくる。さらには [プラグイン自作](https://blog.nocodelab.jp/entry/create-plugin) もできる！それだけで可能性は無限大。



## そのほか
エクセルなんていうのもノーコードかもしれない - [コロナウィルス対策で神エクセルをhtmlに](https://qiita.com/yoho/items/80f46d1f97ae99d4e970)。
それが、API 等と協調する。

[RESTful APIとは何なのか](https://qiita.com/NagaokaKenichi/items/0647c30ef596cedf4bf2)
[Web APIとは何なのか](https://qiita.com/NagaokaKenichi/items/df4c8455ab527aeacf02)
[JSONとは(WebAPIについての説明)](https://qiita.com/busyoumono99/items/9b5ffd35dd521bafce47#json%E3%81%A8%E3%81%AF)
[翻訳: WebAPI 設計のベストプラクティス](https://qiita.com/mserizawa/items/b833e407d89abd21ee72)
[「WebAPI 設計のベストプラクティス」に対する所感](https://qiita.com/ryo88c/items/0a3c7861015861026e00)
[WebAPIでエラーをどう表現すべき？15のサービスを調査してみた](https://qiita.com/suin/items/f7ac4de914e9f3f35884) 
[Jerseyとは](https://qiita.com/yukiyan/items/3c8e29a3a61160a39273)

https://qiita.com/SFITB/items/a0a935cf1bf4225339d2

…などと言い出すから話が難しく聞こえるが、基本は表題の通り。それがノーコード。以上自分のためのまとめでした。