コードの怒り: ローコードのフロンティア
近年、ローコードはマスコミでよく取り上げられるようになりました。ローコードを使用して開発されたアプリケーションのブームが予想され、実際に起きています。しかし、開発コミュニティでは、ローコードに対する偏見がまだ残っています。その理由の一部は、ノーコード プラットフォームに関する混乱から来ており、一部は開発者をターゲットにした過去のマーケティングで、開発者はもう必要ないだろうと示唆していることから来ています。また、ハイコード言語を使用せずに複雑なシステムを実現できるかどうか疑問に思っている人もいます。
この記事では、私が初めてローコードに出会ったときに抱いた疑問と、それ以来学んだことについていくつか見ていきます。
もしできるなら、若い頃の自分に何と言うでしょうか?(「ビットコインを買ってください」以外に)
同化されちゃう…?
「ローコードが開発者に取って代わるだろうと人々は言い続けています」
それは私たちが目指しているものではありません。私たちが望んでいるのは、より多くの人がアプリケーションを開発できるようにすることですが、一部のプロジェクトでは開発者だけが持ち込める考え方やアプローチが必要であることも理解しています。それが、Studio と Studio Pro という 2 つの IDE を用意している理由の 1 つです。
Studio にはより使いやすいエントリ ポイントが用意されており、ユーザーはアプリケーション開発に簡単に取り組むことができ、標準ツールセットとマーケットプレイスの追加機能を使用して必要なものを作成できます。
一方、Studio Pro では、より熟練した開発者が Java コード拡張や SASS カスタマイズなどの高度な機能にアクセスできます。Studio Pro を使用すると、ローコードが開発の簡素化を意味するのではなく、アプリケーション開発の次の論理的進化であることがわかります。
コーディングの初期の頃は、開発者がすべての責任を負っていました。メモリ割り当て、ポインタ、あらゆる種類の低レベル機能を管理していました。その後、C や C++ などの言語が作成されました。これらの言語は低レベルの管理を抽象化し、アプリケーションの作成を大幅に容易にしました。次に、オブジェクト指向が登場し、Java や C# などの言語でコードの再利用性と保守性が向上しました。それでも、データベースの作成、接続の保守、フロントエンドの構築、サーバーの管理は依然として必要でした。
そこでローコードの登場です。最新のプログラミング言語の利点すべてに加えて、データベースの作成とメンテナンスの抽象化、フロントエンドの作成の簡素化、API の作成と使用の容易さ、管理されたサーバーが加わります。ローコードにより、退屈な作業、つまり、時間はかかるものの、実際の課題にはならない作業がすべてなくなります。さらに、ローコードでは、ドラッグ アンド ドロップ開発を使用して高度な機能を構築するためのツールが提供され、さらに Java 関数で拡張できるという利点もあります。React コンポーネントを作成してフロントエンドを拡張することもできます。
最も困難な要件を満たすツールがまだたくさんあり、さらに基本的なものをすばやく作成できるシンプルさも備えているため、興味深い開発に集中する時間が得られます。
私はノーコードではなくローコード プラットフォームです。
「ドラッグ アンド ドロップで使用できる既成の要素がニーズに合わなくなるときがあるはずです。その場合はどうすればいいでしょうか?」
これはローコードであり、ノーコードではありません。現時点ではこの 2 つは同義語のように見えますが、違いはあります。ローコードの目的は、コードをまったく書かないということではなく、記述するコードの量を減らすことです。実際には大幅に減らすことです。私たちは、必要に応じてコーディングや拡張機能を使用して、提供内容を拡張できるようにしたいと考えています。これがノーコードとローコードの大きな違いです。
ノーコード ツールは、ドラッグ アンド ドロップのみです。構築するものが何であれ、構築するためのツール セットが固定されています。この種のプラットフォームは、一般的にビジネス プロセス モデリング、ワークフロー、Web サイト ビルダーに関連付けられています。ニッチな分野や一般的なユース ケースに固執している場合は便利ですが、その領域から外れると状況は複雑になります。
ローコードプラットフォームはツールボックスだけではありません。ロジックに関しては、アプリケーションを作成するために使用できる多数のツールがあらかじめ用意されていますが、独自の関数を作成するオプションもあります。 Mendix JavaノードをMicroflowに追加するプロセスは簡単です(プログラミング用語ではメソッドや関数のようなものです)。その後、そのノードに独自のJavaコードを記述し、オブジェクトを渡したり、 Mendix Java SDK を使用するプラットフォーム。
フロントエンドでカスタム処理が必要な場合や、特定のJavaScriptウィジェットやライブラリを使用したい場合には、それをReactのプラグイン可能なウィジェットでラップすることができます。これにより、カスタムフロントエンドコントロールを作成でき、また、 Mendix プラットフォームと対話するための SDK。
これがローコードの力です。確かに、事前に構築されたドラッグ アンド ドロップ コントロールを使用してすばやく作業を行うことができますが、機能拡張もできます。つまり、ローコードであり、ノーコードではありません。
ローコード、最後のフロンティア…
「わかりました。あなたの言うことを信じるとしたら、どんなメリットが期待できますか?」
まず、簡素化されたデータベースの作成とメンテナンスから始めましょう。エンティティを作成し、属性を追加し、それらの間の関係をドラッグします。これにより、データベース テーブルが自動的に作成され、テーブル間の結合が管理され、組み込みのクエリ アクションを使用できるようになります。クエリ ステートメントを記述する必要はもうありません。アクションの 1 つを使用し、XPath で少しフィルタリングを追加するだけで、オブジェクトが取得されます。さらに、親オブジェクト (たとえば顧客) があり、関連するレコード (注文など) を取得したい場合は、顧客に関連付けられたレコードを要求するだけで済みます。追加のクエリを記述する必要はありません。さらに、すべてのインデックスが管理され、クエリが最適化されます。
アプリケーションの種類は複数あります。Web サイトが必要ですか? 問題ありません。それをプログレッシブ Web アプリにしたいですか? それもできます。Android と iOS で動作するネイティブ モバイル アプリケーションが必要ですか? もちろんです!
次はフロントエンドです。ブートストラップフレームワーク上に構築されています Mendix グラフィカルで反応性の高いウェブページビルダーが装備されています。これにより、高度な調整を必要とせずにアプリケーションをすばやく構築およびカスタマイズできます。また、多くの事前に構築され、メンテナンスされたカスタムコントロールも見つけることができます。 Mendix マーケットプレイス。SASS やカスタム React プラグイン可能なウィジェットを使用してさらに拡張することもできます。
セキュリティはどうでしょうか?アプリケーションとデータベースのセキュリティは、システム開発において最も重要なポイントの1つです。 Mendix システムのセキュリティ保護に伴うリスクをなくし、ローカル ログインやシングル サインオン プロバイダーで使用できる、標準化されたログイン コントロール セットを期待できます。また、ページへのアクセスだけでなく行レベルのデータベース セキュリティも制御できる組み込みのユーザー ロールもあります。つまり、アプリケーションを使用するすべてのユーザーは、許可されたデータのみにアクセスして変更することができます。データが、表示すべきでないユーザーに誤って公開されるリスクはありません。
これらすべてとプラットフォーム自体も、安全性を確保するために常にチェックおよび更新されています。
これらのツールをすべて組み合わせると、開発速度が最大 4 倍に向上することが期待できます。私は C# 開発からローコード開発に移行しましたが、場合によってはそれ以上の速度向上が見込めます。実際、ほとんどのプロジェクトで、アプリケーション作成のボトルネックは開発リソースではなくユーザー ストーリーであるという段階に達しました。
そういえば、プラットフォームにはプロジェクト管理とコラボレーションのツールもすべて組み込まれています。ビジネス全体の他の開発者とコラボレーションするためのツール。ストーリーを収集し、スプリントを管理するためのツール。ユーザーとテスターがスクリーンショットを撮って直接フィードバックを送信できるフィードバックウィジェット。その後、そのフィードバックはバグレポートや機能リクエストに変換されます。
奇妙な新しい世界を探検する…
「コード ジェネレーターやローコード/ノーコード システムは今やどこにでもありますが、あなたのシステムが特別なのはなぜですか?」
過去には、コード ジェネレーターを正しく動作させるための試みが何度か行われ、開発者の必要性をなくし、保守可能なコードを生成すると約束するアプリケーションも数多くありました。 Mendix はコード ジェネレーターではないため異なります。ユーザーが行った操作からコードを生成することはお約束できません。構築したものはすべてメタデータ モデルとして保存され、専用のプラットフォームによって実行されます。
プラットフォームとコードが分離されているということは、両方が独立して更新を受信できることを意味します。両方を同期させる必要はありません。コード生成アプリケーションでは、構築しているバージョンが環境の一致するバージョンにコンパイルされることを常に確認する必要があり、更新は両方に適用する必要があります。
インタプリタベースのシステムでは、ホストされている環境に広範囲な影響を与えることなく、開発者に改善を提供することがはるかに簡単です。また、実行するたびにコードを生成する必要がないため、アプリの構築とテストもはるかに迅速になります。
新しい生命と新しい文明を求めて…
「StackOverflow と仲間全員が私をサポートしてくれますが、あなたは何に貢献できますか?」
ローコードは今や本格的に普及しつつあり、その周りにコラボレーションと再利用の原則に基づいた活気あるコミュニティが成長しています。
マーケットプレイスには、多くのカスタムモジュールやプラグイン可能なウィジェットが用意されており、それらは Mendix 私たちのコミュニティでもあります。 Mendix メーカーは、自分が作ったものを共有したり、作ったものを披露したりするのが大好きです。
また、学習パス、ドキュメント、ブログ投稿、フォーラムなどから、考えられるほぼすべての質問に対する回答を見つけることができます。回答が見つからない場合は、フォーラムで質問すると、常に監視されているため、間違いなく回答が得られます。 Mendix
専門家がいつでも喜んでお手伝いします。(稼げるというのは悪いことではありません) Mendix コミュニティに積極的に参加することでポイントを獲得し、 Mendix Tシャツ、パーカー、ビーチサンダルなどの人気商品も!
ローコードがこれまで進んできた領域に大胆に進出します。
「私は何年もかけてコーディングを学んできたのに、それをあきらめてフローチャートを描けばいいのでしょうか?」
フローチャートを描いているように見えますね。フローチャートはわかりやすく、論理的なシステムを明確に表現できるため、よく使用されます。システムの論理的表現でなければ、コードとは何でしょうか?
ローコードプラットフォームが提供するツール Mendix 基本的には、変数、オブジェクト、IF ステートメント、ループなど、プログラミングで毎日使用するものと同じものの表現です。プログラミングで学んだすべての同じテクニックが、ローコードでも適用されます。問題を取り上げて論理ステートメントの表現を通じて解決するには、開発者の理解が必要です。
これまでに得た経験はすべて、視覚的なブロックを使用して、問題の核心に素早く到達することで問題を解決するために適用できます。基盤や周囲の余分な部分に費やす時間を減らし、システムの重要な核心と機能に多くの時間を費やすことができます。
その後、本当に行き詰まったり、何か追加のものが必要になったりした場合は、いつでもコードまたはプラグ可能なウィジェットを使用して拡張できます。
ローコードで繁栄を。
プロの開発者が抱くであろう基本的な疑問や懸念の一部にこれで答えられたと思いたいのですが、私たちが好奇心旺盛で懐疑的な集団であることは重々承知しています。ご質問やご不明な点がありましたら、LinkedIn でお気軽にお問い合わせください。
このブログ記事から何かを学ぶとしたら、ぜひ試してみてください。 Mendixこれを「うまく機能しない」ローコード/ノーコード製品としてすぐに却下しないでください。代わりに、試してみましょう。



