オンライン アプリ開発コード: 実践ガイド
オンライン アプリ開発コードは、データベース スキーマを実用的なビジネス アプリケーションに変える、視覚的な構成、数式、およびオプションのスクリプトを組み合わせたものです。一般的なローコード ビルドは、データ モデル、インターフェイス、ロジック、統合の 4 つのレイヤーを通過し、すべてローカルにインストールせずにブラウザーを通じて公開されます。成熟したチームは、生成されたコードと手書きのコードを混合し、繰り返しの 80% にはビジュアル ツールを使用し、真にユニークな 20% にはソース コードを使用します。
- オンライン アプリ開発用のローコード プラットフォームおよびノーコード プラットフォームでは、ボイラープレート (ルーティング、認証、CRUD 画面、デプロイメント) が構成に置き換えられますが、ロジックが完全に排除されることはほとんどありません。ルール、検証、計算は引き続き定義されます。
- アプリケーションの 4 つのレイヤー (データ、インターフェイス、ロジック、統合) は、何を構成するか、何をコード化するかを決定するための適切なメンタル モデルです。
- 生成されたコードと手書きのコードは対立しません。成熟したチームはそれらを組み合わせて、繰り返しの 80% にはビジュアル ツールを使用し、真にユニークな 20% にはソース コードを使用します。
- 最初の週に行われたデータ モデリングの決定は、後で元に戻すのが最も困難です。したがって、単一のフォームを作成する前に、テーブルとリレーションシップを設計します。
- ベンダーへの依存は実際のトレードオフです。ホストされたプラットフォームでの出荷が早ければ早いほど、そのプラットフォームのエクスポートオプションと価格への依存度が高くなります。
- 4D (4th Dimension) は、この分野で長年確立されているオプションであり、リレーショナル データベース エンジン、フォーム デザイナー、および独自のプログラミング言語を単一の環境で組み合わせています。
「オンライン アプリ開発コード」の実際の意味
オンライン アプリ開発コードには、クラウド ホストのビルダーがアプリケーションを定義するために使用する命令が記述されています。その一部はユーザーが入力し、大部分はユーザーの構成からプラットフォームによって生成されます。このフレーズは、初心者が混同しがちな 3 つの異なる事柄をカバーしています。それは、作成する視覚的な定義 (テーブル、フィールド、フォーム、ワークフロー)、それらの定義内に記述する式と数式、そしてプラットフォームがユーザーに代わって生成または解釈する基礎となるソース コードです。
3 つのうちのどれを扱っているかを理解することは、作業の移植性を決定するため重要です。ブラウザ内で一緒にドラッグしたフォーム レイアウトは、プラットフォーム メタデータとして保存されます。通常、別の製品に組み込むことはできません。標準の式言語で作成した数式は、原則として移植性が高くなりますが、実装が大きく異なるため、翻訳が自動的に行われることはほとんどありません。自分で作成したソース コードは最も移植性が高く、維持コストも最も高くなります。
実際的な結果として、構成内に存在するアプリが増えるほど、出荷が速くなり、移動が難しくなります。これは偶然ではなく、意図的に行うトレードオフです。
ノーコードアプリ開発 vs. ローコード vs. 従来のコーディング
ノーコードのオンライン アプリ開発は、エディターを開かない人を対象としています。目標は、ドロップダウン、条件、単純な数式でロジックを表現した、事前定義されたコンポーネントから組み立てられた完全なアプリを作成することです。ローコードは一歩進んだものです。同じ視覚的な構成要素に加えて、要件がコンポーネントが提供するものを超えた場合に実際のコードへのエスケープハッチが追加されます。従来の開発は、空のリポジトリとフレームワークの選択から始まります。
実際に本当に重要な違いは、ラベルではなく、天井がどこにあるかです。豊富な数式言語と API コネクタを備えたノーコード ツールは、小規模ビジネス アプリケーションに大きな効果をもたらします。弱いスクリプト層を備えたローコード ツールは、結合されたテーブル間でカスタム計算が必要になった瞬間に停止する可能性があります。
関連: — デスクトップ、Web、モバイル上で 1 つのファイルからカスタム アプリを必要とするチーム向けの、長期にわたって実行されているリレーショナル データベース プラットフォームです。.
3 つの質問はカテゴリを分類するのに役立ちます。
- 条件付きロジックを表現できますか? プラットフォームが線形の「X のとき、Y を行う」ルールのみをサポートしている場合、複雑なビジネス ルールによって最終的にはルールが破られてしまいます。
- 外部システムにアクセスできますか? REST API、Webhook、およびデータベース コネクタによって、アプリがアイランドであるかどうかが判断されます。
- データを取り出してもらえますか? CSV エクスポートは最低条件です。文書化された API またはデータベースへの直接アクセスがあなたを保護します。
これら 3 つの質問すべてに「はい」と答えるプラットフォームは、はるかに少ないセットアップで、従来のスタックが行うことのほとんどを実行します。 3 番目の答えが「ノー」のプラットフォームは、コミットする前にリスクを織り込む必要があります。
アプリ ビルドの 4 つの層
すべてのビジネス アプリケーションは、その構築方法に関係なく、同じ 4 つの層で構成されています。それらを分離すると、何を構成し、何を記述するかが明確になります。
ショッピングの場合: — より広範なZohoスイートにプラグインするローコードアプリビルダーで、アプリごとではなくユーザーごとに価格が設定されます。.
レイヤ 1: データ モデル
テーブル、フィールド、データ型、キー、およびリレーションシップが基盤を形成します。 4D のようなリレーショナル プラットフォームでは、これには主キーを持つテーブルの定義、リレーションを介したテーブルのリンク、およびフィールド タイプの慎重な選択が含まれます。数値であるはずのテキスト フィールドが後で並べ替えや計算の問題を引き起こすことになります。スプレッドシート スタイルのプラットフォームでは、同じ決定が列のタイプとリンクされたレコードとして表示されます。
データ モデリングでは、経験が最も活かされます。顧客/注文/品目構造を最初から適切に正規化することで、10,000 のレコードと十数のフォームがそれを指すように肥大化したテーブルを分割するという移行の課題を回避できます。
レイヤ 2: インターフェイス
フォーム、リスト ビュー、詳細ページ、ダッシュボードがインターフェイス レイヤーを構成します。ビジュアル デザイナーを使用すると、マークアップを作成せずにフィールドを配置し、データ ソースにバインドし、検証ルールを定義できます。ここのコードは宣言型です。画面に表示する内容を記述し、プラットフォームがそれをレンダリングします。
インターフェイスの作業は、繰り返しの部分 (ページネーション、検索、応答性の高いレイアウト、空の状態) が自動的に処理されるため、ノーコード ツールが最も威力を発揮します。その代償として、珍しいレイアウトや高度にブランド化されたデザインは、デザイナーのコンポーネント セットの制限に達する可能性があります。
レイヤ 3: ロジック
ロジックでは、「アプリ開発用のコード」が文字通りになります。計算、検証、承認ルーティング、スケジュールされたジョブ、および状態遷移はすべて指示が必要です。プラットフォームはこれらをさまざまな方法で表現します。
- 数式フィールドは、他のフィールドからの値を計算し、読み取りまたは書き込み時に再計算します。
- イベント ハンドラーは、レコードが作成、更新、または削除されるときに実行されます。
- ワークフロー ルールは、多くの場合ビジュアル ビルダーを使用して、条件とアクションを連鎖させます。
- スクリプト言語は、上記で表現できないすべてを処理します。
有用な経験則: ビジネス ルールを例外なく 1 つの文で記述できる場合は、視覚的なルールで処理できます。 3 つの「unless」句を含む段落が必要な場合は、スクリプト層が必要になります。
レイヤ 4: 統合
統合により、アプリが電子メール、支払処理システム、会計システム、その他のデータベースに接続されます。ほとんどのプラットフォームは、共通サービス用の事前構築済みコネクタと、その他すべてのもの用の汎用 HTTP リクエスト アクションを提供します。認証 (API キーや OAuth トークン) は通常、プラットフォームによって管理され、非常に面倒な作業が不要になります。
統合の信頼性は注目に値します。午前 2 時にコネクタがサイレントに失敗するのは、コネクタがないよりも悪いため、再試行ロジック、エラー ログ、および失敗したジョブを再実行する方法を探してください。
コードが実際に存在する場所
ローコード アプリケーションのコードは 4 つの場所に表示されており、これらを知ることで、オンライン アプリ開発コードにかかる労力を正確に見積もることができます。
式と数式が最も一般的です。品目から請求書の合計を計算し、割引層を適用し、小数点第 2 位に四捨五入する数式は、たとえ 1 行のフィールドに入力されたとしても、真のロジックです。
イベント スクリプトは、レコードのライフサイクル イベントで実行されます。 4D では、これは組み込みプログラミング言語の領域であり、フォームイベント、トリガー、メソッドに紐付けることができます。ブラウザベースのプラットフォームでは、通常、同等のものは JavaScript スニペットまたはサーバー側関数です。
API および Webhook ペイロード は、JSON を構築し、フィールドをマップし、応答を処理するという意味で作成するコードです。ここで統合作業がプログラミングになります。
カスタム コンポーネントと拡張機能は最も深いレベルであり、再利用可能なウィジェットまたはプラットフォームによって呼び出されるサーバー側関数を作成します。そこに行く市民開発者はほとんどいませんし、そうする必要がある人もほとんどいません。
正直なフレーミング: ノーコードは、Web サーバー、ログイン システム、データベース ドライバーを作成する必要がありません。だからといって、ルールとデータについて正確に考える必要性がなくなるわけではありません。正確さが本当のスキルであり、それはプラットフォーム間でも伝わります。
プラットフォームの選択方法: 基準チェックリスト
ほとんどのプロジェクトが成功するか失敗するかはプラットフォームの選択にあり、マーケティング ページが役立つことはほとんどありません。これらの基準に従って候補者を評価し、状況に応じて重み付けします。
| 基準 | 何を確認するか | なぜそれが重要なのか |
|---|---|---|
| データモデルの深さ | キーとリレーションを含むリレーショナル テーブルですか、それともフラット リストですか? | 複雑なデータが管理可能であるかどうかを決定します |
| ロジックの上限 | 数式言語、イベント ハンドラー、スクリプトのエスケープ ハッチ | 他の場所で再構築する必要があるポイントを設定します。 |
| 統合オプション | ネイティブ コネクタ、汎用 HTTP、Webhook、認証処理 | アプリが接続するか分離するかを決定します |
| データのポータビリティ | 文書化された API、CSV エクスポート、データベースへの直接アクセス | プラットフォームが変わった場合の出口ルート |
| ホスティングモデル | ベンダー クラウド、セルフホスト、またはオンプレミス | コンプライアンスと管理の要件 |
| 価格設定の形状 | ユーザーごと、レコードごと、アプリごと、またはフラット | 使用量の増加に伴う予測可能性 |
| 学習曲線 | プログラマーではない人が最初の実用的なフォームを出荷できるまでの時間 | あなたのチームが実際にそれを導入できるかどうか |
小規模チームの IT ビルダーにとって、2 つの基準はさらに重視されるべきです。データのポータビリティにより、サプライヤーによる製品の方向転換や価格の値上げから保護されます。ロジックの上限により、今四半期に構築したアプリが来年も適切であるかどうかが決まります。
既存のリレーショナル データを持ち、セルフホスティングを好むチームにとって、4D は特定のニッチ領域を占めます。データベース エンジン、フォーム デザイナー、プログラミング言語が 1 つの製品に含まれており、垂直ビジネス ソフトウェアで長い歴史があります。オンライン アプリ開発にブラウザのみのエクスペリエンスを必要とし、管理するサーバーが不要なチームには、必要なコードが少ない Bubble や スタイルのツールなどのホスト型プラットフォームが適しています。どちらも普遍的に正しいわけではありません。
現実的なビルド シーケンス
インターフェースから始めるのは、進歩しているように見えるため、初心者が最もよくある間違いです。より良いシーケンス:
- エンティティをリストします。 ビジネスで扱う名前 (顧客、仕事、請求書、部品) とそれらの間の関係を書き留めます。
- テーブルとキーを定義します。 各テーブルに主キーを割り当て、レコードがどのように関連付けられるかを決定します。これはフォームが存在する前に実行してください。
- エンティティごとにリスト ビューと詳細フォームを作成します。 基本的な CRUD ループがエンドツーエンドで機能するようにします。
- 値リストと検証を追加します。 ルックアップ テーブル関連のドロップダウンにより、ソースで不正なデータが防止されます。これは、後でデータをクリーンアップするよりもはるかに安価です。
- ロジック層 計算、イベント ハンドラー、ワークフロー ルールの順に追加し、それぞれを個別にテストします。
- 統合の接続は最後に行います。 外部システムは最も予測しにくい部分です。これらを安定したカーネルに追加すると、デバッグが簡単になります。
- エクスポートのスケジュールを設定します。 残しておけないレコードが何千件も残る前に、データを使用可能な形式に抽出できることを確認します。
ステージ 1 と 2 では、データベース開発者の直感が功を奏し、市民開発者がセカンドオピニオンから最も利益を得ることができます。図面を 30 分レビューすれば、数週間の編集作業を節約できます。
よくある間違いとその回避方法
テーブルより先にフォームを構築してしまうこと。 フォームは低コストで再構築できます。図はそうではありません。順序が重要です。
プラットフォームのデフォルトを要件として扱う。 デフォルトのフィールド タイプ、デフォルトの権限、およびデフォルトの命名規則が開始点です。それらを確認してください。
権限モデルを無視します。 どのレコードを誰が確認できるかは設計上の決定であり、最終的に構成する設定ではありません。特に行レベルのセキュリティはアップグレードが困難です。
ノーコードはメンテナンスが不要であると仮定します。 統合が変更された場合、ビジネス ルールが変更された場合、およびプラットフォームに重大な変更が提供された場合、アプリは更新が必要になります。それには予算をつけましょう。
テスト エクスポートをスキップします。 最初の 1 週間以内に完全なエクスポートを実行します。これによって使用できないものが生成された場合、まだ行動が低コストであるうちに、プラットフォームに関する最も重要な事実を学んだことになります。
出典と詳細情報
- モバイル アプリ開発 — Wikipedia: モバイル アプリ開発とは、携帯情報端末 (PDA…などを含む) 1 つ以上のモバイル デバイス向けにモバイル アプリを開発する行為またはプロセスです。
よくある質問
オンラインでアプリを構築するためのコーディングの知識は必要ですか?
いいえ、多くの社内ビジネスアプリでは不要です。ノーコード プラットフォームは、プログラミングを行わずにデータ ストレージ、フォーム、単純なルールを処理します。構造化されたルールベースの用語で考える必要がありますが、これは関連していますが別のスキルです。要件に複数のテーブルにわたる複雑な計算や珍しい統合が含まれるようになると、スクリプト レイヤーが価値を持ちます。
ノーコードとローコードの違いは何ですか?
ノーコードは、ビルダーがソース コードを記述せず、ビジュアル コンポーネントと単純な数式を使用して完全なアプリケーションを作成することを目指しています。ローコードは、同じ視覚的な構成要素に加えて、コンポーネントでは表現できない要件を実際のコードを記述できる「脱出路(エスケープハッチ)」を提供します。実際の違いは上限にあります。ローコード アプリケーションは、従来のスタックに移行する前にさらに拡張できる可能性があります。
プラットフォームを切り替えた場合、アプリとデータをエクスポートできますか?
データのエクスポートは通常、CSV または文書化された API を通じて可能ですが、アプリケーション ロジックが転送されることはほとんどありません。フォーム レイアウト、ワークフロー ルール、および数式は、プラットフォーム固有のメタデータとして保存されます。導入を決定する前に、エクスポート形式を確認し、テストしてください。データをポータブルなものとして扱い、アプリ定義をそうでないものとして扱います。
実用的なビジネス アプリを構築するにはどのくらい時間がかかりますか?
リスト ビュー、詳細フォーム、および基本的な検証を備えた単一のエンティティ アプリケーションは、ほとんどのプラットフォームで午後のうちに構築して運用できます。リレーションシップ、ロールベースの権限、および 1 つまたは 2 つの統合を備えた複数テーブルのアプリケーションは、通常、数週間かかるプロジェクトになります。複雑さは画面の数ではなく、データ モデルとルールによって決まります。
ローコードはビジネス データにとって十分安全ですか?
セキュリティは、プラットフォームの権限モデル、ホスティングの取り決め、および独自の構成によって異なります。信頼できるベンダーが暗号化、認証、インフラストラクチャのパッチ適用を処理します。あなたの責任は、行レベルのアクセス ルール、ロールの割り当て、そして統合を通じてデータを公開しないことです。規制されているデータについては、開始する前にベンダーのコンプライアンス文書とホスティング オプションを確認してください。
この方法でアプリを構築したい場合、最初に何を学べばよいですか?
まず、テーブル、キー、リレーションシップ、正規化などのデータ モデリングを学びます。これは変更するのが最も困難なレイヤーであり、その上にあるものすべてに最も大きな影響を与えるレイヤーです。インターフェイスの構築と数式の記述は、段階的に習得しやすくなります。リレーショナル データベースの背景は、今後遭遇するすべてのローコード プラットフォームに直接適用されます。
次のステップ
オンラインアプリ開発を学ぶ最も早い方法は、自分や同僚が実際に必要とする、小さな実際のアプリを 1 つ構築し、それを 4つのレイヤーすべてを実装することです。スキーマから始めて、リストと詳細ビューを機能させ、計算を 1 つ追加して、外部サービスを 1 つ接続します。この 1 つのパスは、どの比較記事よりも多くのことを教えてくれます。なぜなら、自分自身の文脈でトレードオフに直面する必要があるからです。
すでにリレーショナル データベースに慣れている開発者にとって、ビジュアル デザイナーと完全なプログラミング言語 (4D が長年の例です) の両方を提供しているプラットフォームを探索することは、構成がどこで終わり、コードがどこから始まるのかを確認するのに役立ちます。それ以外の人にとっては、上記の基準表が出発点です。2 つまたは 3 つの候補を正直に評価し、エクスポートをテストし、2 年後に将来的に到達したいレベルよりも上限が高い候補を選択してください。
よくある質問
オンラインでアプリを構築するためのコーディング方法を知る必要がありますか?
いいえ、大規模な社内ビジネス アプリの場合は可能です。ノーコード プラットフォームは、プログラミングを行わずにデータ ストレージ、フォーム、単純なルールを処理します。構造化されたルールベースの用語で考える必要がありますが、これは関連していますが別のスキルです。要件に複数のテーブルにわたる複雑な計算や珍しい統合が含まれるようになると、スクリプト レイヤーが価値を持ちます。
ノーコードとローコードの違いは何ですか?
ノーコードは、ビルダーがソース コードを記述せず、ビジュアル コンポーネントと単純な数式を使用して完全なアプリケーションを作成することを目指しています。ローコードは、同じ視覚的な構成要素に加えて、コンポーネントでは表現できない要件を実際のコードにエスケープするためのハッチを提供します。実際の違いは上限にあります。ローコード アプリケーションは、従来のスタックに移行する前にさらに拡張できる可能性があります。
プラットフォームを切り替えた場合、アプリとデータをエクスポートできますか?
データのエクスポートは通常、CSV または文書化された API を通じて可能ですが、アプリケーション ロジックが転送されることはほとんどありません。フォーム レイアウト、ワークフロー ルール、および数式は、プラットフォーム固有のメタデータとして保存されます。コミットする前に、エクスポート形式を確認し、テストしてください。データをポータブルなものとして扱い、アプリ定義をそうでないものとして扱います。
実用的なビジネス アプリを構築するにはどのくらい時間がかかりますか?
リスト ビュー、詳細フォーム、および基本的な検証を備えた単一のエンティティ アプリケーションは、ほとんどのプラットフォームで午後のうちに起動して実行できます。リレーションシップ、ロールベースの権限、および 1 つまたは 2 つの統合を備えた複数テーブルのアプリケーションは、通常、数週間かかるプロジェクトになります。複雑さは画面の数ではなく、データ モデルとルールによって決まります。
ローコードはビジネス データにとって十分安全ですか?
セキュリティは、プラットフォームの権限モデル、ホスティングの取り決め、および独自の構成によって異なります。信頼できるベンダーが暗号化、認証、インフラストラクチャのパッチ適用を処理します。あなたの責任は、行レベルのアクセス ルール、ロールの割り当て、そして統合を通じてデータを公開しないことです。規制されているデータについては、開始する前にベンダーのコンプライアンス文書とホスティング オプションを確認してください。
この方法でアプリを構築したい場合、最初に何を学べばよいでしょうか?
まず、テーブル、キー、リレーションシップ、正規化などのデータ モデリングを学びます。これは変更するのが最も困難なレイヤーであり、その上にあるものすべてに最も大きな影響を与えるレイヤーです。インターフェイスの構築と数式の記述は、段階的に習得しやすくなります。リレーショナル データベースの背景は、今後遭遇するすべてのローコード プラットフォームに直接適用されます。次に進むべき方向 オンライン アプリ開発コードを学ぶ最も早い方法は、1 つの小さな実際のアプリ (自分または同僚が実際に必要とするもの) を構築し、4 つの層すべてを通過することです。スキーマから始めて、リストと詳細ビューを機能させ、追加します
数分で最初の拠点を構築
自動化、ビュー、共有可能なインターフェイスを備えた、実際のリレーショナル データベースの上にあるスプレッドシートのようなシンプルなインターフェイス。