paint-brush
ローコードの力を解き放つ: 自由とロックインの橋渡し@wavemaker
462 測定値
462 測定値

ローコードの力を解き放つ: 自由とロックインの橋渡し

WaveMaker Inc10m2023/09/18
Read on Terminal Reader

長すぎる; 読むには

ローコードによって開発者がコードにアクセスできるようになり、カスタマイズに柔軟性が与えられ、パフォーマンスが向上してアプリケーション開発環境がどのように変革されるのかをお読みください。
featured image - ローコードの力を解き放つ: 自由とロックインの橋渡し
WaveMaker Inc HackerNoon profile picture
0-item

近年、 ローコード開発プラットフォームの人気が急増しており、アプリケーションの作成方法に革命をもたらすことが期待されています。これらのプラットフォームは、最小限のコーディング知識や経験でアプリケーションを設計および展開できるという魅力的な展望を提供します。従来コーディングに伴う複雑さの多くを抽象化することで、個人や組織がソフトウェアのアイデアを迅速に実現できるようにします。


ただし、ローコード開発の魅力には、特にカスタム ロジック、複雑な統合、優れたパフォーマンスを必要とする複雑なアプリケーションに取り組む場合、一連の課題も伴います。このような洗練されたシステムは、多くの場合、ローコード プラットフォームの機能の限界を押し広げ、機能の豊富さ、セキュリティ、スケーラビリティ、適応性の深さを探ります。


では、なぜ開発者は今でもキーボードに手を伸ばしてコードを書いているのでしょうか?このローコード開発の探索では、開発者がコーディング スキルを駆使してローコード プラットフォームの機能を補完し、現代のソフトウェア開発の複雑なニーズに対処するシナリオを詳しく掘り下げていきます。


コードとローコードの交差点

ローコード開発の中核には、事前に構築されたコンポーネントとビジュアル インターフェイスを提供することでソフトウェア作成プロセスを簡素化するという考えがあります。これらのコンポーネントは構成要素として機能し、ユーザーが最小限の手動コーディングでアプリケーションを構築できるようにします。ただし、複雑なユースケース、カスタム統合、最高のパフォーマンスの追求に関しては、開発者が開発プロセスの最前線に立つことがよくあります。


  1. カスタムロジックと統合


    複雑なアプリケーションでは、多くの場合、独自の機能に合わせたカスタム ロジックが必要になります。複雑な認証メカニズムの実装、データ検証の実施、データの前処理または後処理の実行、カスタマイズされたユーザー インタラクションの作成、または完璧なユーザー インターフェイスを実現するための特定のブランド ガイドラインの遵守など、開発者はこれらの特殊な要素のコード化に介入します。これらのシナリオは、ローコード プラットフォームがすぐに処理できる範囲の限界を押し広げます。


  2. 外部システムとの統合

    今日の相互接続されたデジタル環境では、最新のアプリケーションのほとんどは外部データベース、API、またはサービスと対話します。ローコード プラットフォームは、すぐに使用できる一連のコネクタと一般的なシステムとの統合を提供しますが、開発者がローコード プラットフォームと外部システムの間のシームレスなデータ交換を促進するコードを記述する必要がある状況もあります。特に、レガシーソフトウェアで。


  3. パフォーマンスの最適化

    パフォーマンスの最適化は、依然としてソフトウェア開発における最大の関心事です。アプリケーションのパフォーマンスがミッションクリティカルである場合、開発者は基礎となるコードを深く掘り下げて微調整します。これらは、アプリケーションの特定の側面を最適化して、効率を高め、遅延を削減し、大量のデータを適切に管理します。最高のパフォーマンスを追求するには、多くの場合、コードの直接介入が必要になります。


  4. 高度な顧客対応アプリ

    ローコード プラットフォームは、社内プロセスの合理化とビジネス ワークフローの自動化には優れていますが、顧客向けの複雑なアプリケーションの構築となると不十分になる可能性があります。これらのアプリには、複雑なユーザー ジャーニー、外部システムとの統合、および一般的なローコード機能の範囲を超えた特殊な機能が含まれることがよくあります。開発者は、これらの高度な機能またはニッチな機能をコーディングする際に重要な役割を果たします。


オープンスタンダードの探求

ローコード開発プラットフォーム間の顕著な違いの 1 つは、コード生成のアプローチです。一部のプラットフォームはコードビハインド戦略に従い、オープンスタンダードに基づいてコードを生成しますが、他のプラットフォームは独自のフレームワーク内で動作します。これら 2 つのアプローチのどちらを選択するかは、開発者のコーディングの自由とベンダー ロックインの可能性に大きな影響を与える可能性があります。


  1. コードビハインドのアプローチ

    コードビハインドアプローチを採用したローコードプラットフォームは、開発者に両方の長所を提供します。モデル、データベース、または API からバックエンド コードを生成しながら、フロントエンドとロジックの作成にビジュアル開発ツールを活用します。この生成されたコードはアクセス可能であり、必要に応じて変更できるため、開発者はアプリケーションをきめ細かく制御できます。


  2. コードのエクスポート機能特定のローコード プラットフォームでは、生成されたコードの一部または全体をエクスポートする機能が開発者に提供されています。この機能は、既存のシステムとの統合、高度なカスタマイズの実装、またはアプリケーションを別の環境に移行する場合に非常に貴重であることがわかります。コード エクスポート オプションが利用できるかどうかは、コードの自由度の範囲を決定する重要な要素です。


    期待と現実のバランスをとる開発者や企業がローコード プラットフォームを採用する場合、これらのツールの約束と可能性によって形成される一連の期待が伴います。これらの期待について詳しく見てみましょう。


    1. 迅速なアプリケーション開発

      ローコード プラットフォームは、アプリケーションのコーディング、テスト、展開を高速化する機能で知られています。市場投入までの時間が短縮されるという約束は、依然としてこれらのプラットフォームを採用する説得力のある理由です。

    2. ビジュアル開発ビジュアル インターフェイスとドラッグ アンド ドロップ機能により、ユーザーはアプリケーションを直感的に設計し、ユーザー インターフェイスを作成し、ワークフローを確立し、さまざまなコンポーネントを統合できます。視覚的な側面により、コーディング経験が限られている人でも開発プロセスが簡素化されます。

    3. カスタマイズと拡張性 柔軟性と拡張可能なフレームワークは、カスタム コードの対応、既存のシステムの統合、サードパーティのライブラリと API の活用に不可欠です。開発者は、このカスタマイズ機能を利用して、特定の要件を満たし、機能を拡張します。

    4. 統合機能 ローコード プラットフォームは、API とライブラリを介して外部データ ソース、クラウド サービス、レガシー システムとのシームレスな接続を提供します。この統合能力は、多数の外部サービスに依存する最新のアプリケーションにとって非常に重要です。

    5. スケーラビリティとパフォーマンス アプリケーションは成長するにつれて、スケーラビリティとパフォーマンスに対する要求の増大に対応する必要があります。ローコード プラットフォームは、パフォーマンスを最適化し、大量のデータを効率的に管理するためのツールとメカニズムを提供する必要があります。

    6. ソフトウェア開発ライフサイクル (SDLC) のサポート 開発者はチームで作業することが多いため、反復開発などの標準 SDLC プロセスをサポートするローコード プラットフォームが必要です。バージョン管理、コード共有、共同開発環境などの機能は、チーム コラボレーションを成功させるために不可欠です。

    7. エラー処理 堅牢なエラー処理メカニズムにより、アプリケーションの安定性と安全性が確保されます。ローコード プラットフォームでは、問題を迅速に特定して解決するためのデバッグ ツールとトラブルシューティング ツールを提供する必要があります。

    8. 導入の柔軟性 クラウド プラットフォーム、オンプレミス サーバー、モバイル デバイスなどのさまざまな環境にアプリケーションを導入する際の柔軟性は不可欠です。ローコード プラットフォームは、複数の展開オプションをサポートし、シームレスな展開プロセスを提供する必要があります。

    9. 広範なコンポーネント ライブラリ すぐに使用できる UI コンポーネント、一般的なサービス用のコネクタ、再利用可能なモジュールを含む、事前に構築されたコンポーネントとテンプレートの豊富なセットにより、アプリケーション開発が大幅に加速されます。


ベンダーロックインを理解する


組織がローコードの取り組みに乗り出す際に、重要な考慮事項の 1 つは、ベンダー ロックインの可能性です。ベンダー ロックインの懸念は、ローコード プラットフォーム上に構築されたアプリケーションがどの程度独立したままであり、将来の変更やアップグレードのためにアクセスできるかという点に関係しています。これらの懸念には、次のようないくつかの側面が含まれます。


  1. 導入の独立性企業は、ランタイムの独立性に関するベンダー ロックインを評価することが多く、コンプライアンス上の理由から、選択したインフラストラクチャにアプリケーションを導入できるようになります。この要件により、組織はローコードで構築されたアプリケーションを優先クラウドまたはインフラストラクチャに展開する柔軟性を確保できます。

  2. カスタマイズと拡張ローコードを利用して自社の製品やソリューションを開発するソフトウェア製品ベンダーや独立系ソフトウェア ベンダー (ISV) にとって、プラットフォーム外のコードにアクセスして変更できる機能が重要になります。この自由度により、下流の製品ユーザーは必要に応じてアプリケーションをカスタマイズしたり拡張したりできます。

  3. アプリケーション生成コードの開発と変更ソフトウェア製品ベンダーと同様に、システム インテグレーター (SI) はローコード プラットフォームを活用して開発を促進し、顧客エクスペリエンスを向上させます。これらの SI は、コードのアクセシビリティと変更可能性に重点を置いてローコード プラットフォームを評価します。彼らは、アプリケーションで生成されたコードをプラットフォームの外で開発、変更、保守できる能力を求めています。

  4. 基盤となるテクノロジー スタックのアップグレード場合によっては、組織は、ローコード プラットフォームとは関係なく、基盤となるテクノロジー スタックをアップグレードする柔軟性を必要とする場合があります。この独立性により、テクノロジーの状況の変化に合わせてアプリケーションを進化させることができます。コード アクセシビリティ: 可能性の範囲 ローコード プラットフォームでは、コード アクセシビリティに対するアプローチが異なり、他のプラットフォームよりも自由度が高いプラットフォームもあります。ここでは、さまざまな可能性を詳しく見ていきます。

  5. コード アクセスを提供しないプラットフォーム多くのローコード プラットフォームは、コード アクセスが制限されているか、コード アクセスが存在しないクローズド エコシステムを採用しています。これらのプラットフォームは、事前定義されたコンポーネントとモデルに依存しており、多くの場合、プラットフォームのランタイムにロックされています。これらはアプリケーション開発を簡素化しますが、開発者がコードベースをカスタマイズまたは拡張する能力を制限する可能性もあります。フロントエンドの制限: このようなプラットフォームのフロントエンドは通常、最小限のカスタマイズ オプションを備えた事前に構築された UI コンポーネントに依存します。これらのコンポーネントを拡張または変更するのは困難な場合があります。バックエンド独自のフレームワーク: バックエンドは、カスタム ロジックやコードベースのカスタマイズを追加するための柔軟性に欠ける独自のランタイム フレームワークを使用する場合があります。これらのプラットフォームは通常、展開からカスタマイズに至るまで、あらゆる側面にわたってロックインを課します。

  6. コードビハインドを使用するプラットフォームコードビハインドアプローチを採用するローコードプラットフォームは、より透過的な開発プロセスを提供します。フロントエンドとロジックの作成にはビジュアル開発ツールを使用し、オープン スタンダード フレームワークに基づいてバックエンド コードを生成します。このようなプラットフォームでは、開発者は生成されたコードへのアクセスを維持できるため、プラットフォームの組み込み機能を超えたカスタマイズが可能になります。

  7. コードのエクスポートを提供するプラットフォーム特定のローコード プラットフォームは、開発者が生成されたコードを部分的または全体的にエクスポートできるようにすることでギャップを埋めます。このエクスポート機能により、既存のシステムとの統合、高度なカスタマイズ、さまざまな環境への移行が容易になります。開発者は基盤となる実装に直接アクセスできるため、より多くの制御と自由が得られます。


    ローコード プラットフォームの探索: プロバイダーの意見

    ローコード プラットフォームにおけるコード アクセシビリティの微妙な違いをさらに明らかにするために、いくつかの人気のあるプラットフォームが生成するコードについて何を述べているかを調べてみましょう。


    アウトシステムズ

    OutSystemsはハイブリッドアプローチを提供しており、生成されたコードの一部は開発者がアクセスして変更できますが、その他は独自のままです。これにより、開発者はプラットフォームからソース コードを切り離し、生成されたアプリケーション ソース コードとデータベース スキーマの最新バージョンを保持できます。この切り離されたコードは、コード生成に使用される .NET ランタイム上で構築して実行できますが、制限があります。ソース コードが切り離されると、展開、構成管理、バージョン管理、パッケージ化、監視、分析などのプラットフォーム サービスは利用できなくなります。切り離されたソース コードへの変更は Visual Studio または Eclipse を使用して行うことができますが、一度変更するとプラットフォームに再統合することはできません。


    メンディックス

    Mendix はモデル駆動型開発アプローチを採用しており、コードの直接カスタマイズではなく拡張機能に重点を置いています。開発者は、フロントエンド ウィジェットやバックエンド コネクタなどのコード拡張機能を作成することで、プラットフォームを拡張できます。フロントエンド拡張機能は React、Angular、D3 などの JavaScript ライブラリを利用し、バックエンド拡張機能は REST、SOAP、OData オブジェクトとの統合をサポートします。ただし、Mendix によって生成されたコードをカスタマイズすることは通常は不可能です。プラットフォームはモデルを解釈してランタイム機能を生成し、アプリケーション コードを効果的にロックインして、プラットフォーム外でのメンテナンス、変更、カスタマイズにアクセスできないようにします。 Mendix は、アプリケーション モデルにプログラムでアクセスするための API/SDK を提供しており、代替のローコード プラットフォームや Java や Hibernate などの従来のプログラミング言語への潜在的な移行を容易にします。


    リツール

    Retool はコンポーネントとアクションを定義するために独自の言語を採用し、バックエンド統合と API 呼び出し用のコードを生成します。ただし、この生成されたコードにユーザーは直接アクセスできません。基礎となるコードは隠されたままなので、プラットフォームの機能を超えてカスタマイズする機会が制限されます。


    アッピア

    Appian は、フロントエンド インターフェイスの作成に SAIL (Self-Assembling Interface Layer) として知られる独自の言語を使用し、バックエンド ロジックに Java と BPMN (Business Process Model and Notation) を組み合わせた独自のアプローチを採用しています。 SAIL は他のフロントエンド言語に似ていますが、依然として Appian プラットフォームに固有であり、外部からアクセスすることはできません。同様に、Appian によって生成された Java および BPMN コードは開発者から隠されたままになります。代わりに、Appian は、開発者がプラットフォームの機能を拡張するために活用できる、さまざまな事前構築されたコンポーネントと API を提供します。


    ウェーブメーカー

    WaveMaker は、プラットフォームによって生成されたフロントエンド コードとバックエンド コードの両方にアクセスできる独特のアプローチを提供します。このコードは、Angular、React Native、Java、Spring などの一般的なオープン標準スタックに基づいています。この生成されたコードは人間が判読可能で、各層で拡張機能が提供されているため、Eclipse や IntelliJ などの IDE を使用してコードをカスタマイズおよび編集できます。 WaveMaker はメタデータ主導のコード生成を使用しており、生成されたコードを編集することは可能ですが、プラットフォームまたはアプリケーション スタックのアップグレードが複雑になる可能性があります。生成されるバックエンド コードは純粋な Java であり、WaveMaker 固有の構文は含まれていないため、カスタマイズと拡張のための柔軟なキャンバスが提供されます。さらに、WaveMaker は、ウィジェットの状態、イベント、データ処理などを処理するためのフロントエンド拡張機能に加え、カスタム認証、データ インターセプト、API オーケストレーション、API 作成のためのバックエンド拡張機能も提供します。


コードで強化されたローコードの世界


ソフトウェア開発の動的な状況において、ローコード プラットフォームは、迅速なアプリケーションの作成と革新のための有望な手段を提供します。これらのプラットフォームは開発プロセスを簡素化し、より幅広いユーザーがアクセスできるようにすると同時に、プロの開発者が特定のニーズに合わせてアプリケーションを拡張およびカスタマイズできるようにします。ただし、ローコードの魅力には、潜在的なベンダー ロックインという課題が伴います。組織は、コードのアクセシビリティ、カスタマイズ機能、展開の独立性などの要素を考慮して、ローコード プラットフォームを慎重に評価する必要があります。最終的に、ローコード プラットフォーム内のコードの自由度は、変化し続けるデジタル環境に適応し、進化し、繁栄する組織の能力に大きな影響を与える可能性があります。ビジュアル開発とコードのアクセシビリティのバランスは、イノベーションと柔軟性が交わる交差点を表しており、ローコードによって開発者が創造的な可能性を最大限に発揮できる世界が生まれます。ローコードとコードのこの共生関係には、ソフトウェア開発の未来に刺激的な可能性が秘められています。