第5世代のプログラミング言語の概念。 パート3

みなさんこんにちは。 前の2つの出版物には、「すべてが既にあった」というコメントが付いていました。 私はいくつかの調査を行い、別のビデオに注意を促しました。 最初の4分 20秒 他のフレームワークでは見つけられなかった新しいものだけが含まれています。 ビデオの残りの部分はすでにどこかにあるものですが、私はそれをより良くしました(より簡単で便利です)。



このビデオは概念であり、すぐに使用できるソフトウェアではありません。 改善するためにここに公開されています。







カットの下の転写。



みなさん、こんにちは!

今日は、G5についての短いプレゼンテーションをお見せします。 最初のステップは、アスペクト指向プログラミングです。

G5ではクラシカルではありません。見てみましょう。

以下は、いくつかのビジネスロジックを使用した簡単な方法です。 短くて理解しやすいです。

しかし、プログラムには通常、他の側面が含まれています

たとえば、ビジネス上の制限。

別の側面は、システムエラーのチェックです。

エラーハンドラーを忘れないでください。

デバッグのためにロガーが必要になる場合があります。

ドキュメントの側面も非常に重要です。

最適化の観点から、ソースコードがうんざりする可能性がありますが、本当に必要です。

また、ビジネスエラーの側面と単体テストのメタデータを追加しましょう。

そして今、あなたはアスペクトで少なくとも2つのことをすることができます。

まず、このボタンを使用して画面からアスペクトを非表示にできます。

次に、デバッグや最適化など、あらゆる側面のコンパイルを無効にすることができます。

セキュリティの側面など、独自の側面を定義できます。

ソースコードのテンプレートを使用して、1つまたは複数のメソッドまたは特別な構造の注釈を使用できます。

仕様言語:分散アプリケーション用に設計されています。

最初の部分は「エンティティ」です。 データコントラクトのようなものですが、より優れています。

これらを使用してビジネス構造を定義し、それを複数のアプリケーションのソースコードで使用できます。

TheraはG5のデータ型ではないため、あらゆるプログラミング言語で使用できます。

仕様言語はソースコードの一部ではありません。 それはコンパイラのメタデータに過ぎず、継承の代わりに注釈を使用しています。

クラスでパブリックまたはプライベートのフィールドとメソッドを定義できます。

メインフィールドのタイプを変更できますが、エンティティのタイプと互換性がなければなりません。

必要に応じて、メインフィールドをパブリックまたはプライベートに設定できます。

フィールドの名前を変更することもできます。

メインフィールドは削除できませんが、無視できます。

そしてもちろん、ビジネスの制限を変更することはできません。

エンティティは、共通の基本クラスなしで分散アプリケーションのデータ構造を制御するのに役立ちます。

アプリケーションはもはや関連しておらず、これはエンタープライズソリューションを作成するためのより信頼性の高い方法です。

仕様言語は設計の側面です。 非表示にしてコンパイルを無効にすることができます。

仕様言語の2番目の部分はAPIです。

WSDLまたは他の言語を使用してAPIを記述できます。 USDSの例を次に示します。

2つの構造と関数を定義し、このAPIのサーバーを作成します。

この場合、コンパイラはアノテーションを使用して、クラス「MyServer」の追加メソッドを作成します。

これは、サーバーアプリケーションを作成する非常に高速で簡単な方法です。

次の部分はライブラリの仕様です。

仕様言語を使用してアプリケーションのプラグインを作成する方法の例を紹介します。

ライブラリの説明、2つのクラスを定義しました。

これで、この仕様の実装を作成できます。

コンパイラは注釈を使用して、関数名をライブラリファイルに保存します。

注釈のないメソッドはライブラリに表示されません。

プラグインを動的にインポートします。

コンパイラは再びアノテーションを使用して、追加のメソッド(ビジネスクラスとファーストクラスのファブリック)を作成します。

同じ方法を使用して、標準のWindowsまたはLinuxの動的ライブラリをインポートできます。

第3章-ウィジェットを使用した宣言型プログラミング。

G5には多くのウィジェットがありますが、そのうち4つを紹介します。

最初のものはテキストウィジェットです。

内部で任意のシンボルを使用できます。

このテキストフィールドを翻訳可能として定義し、任意のテキストエンコードを設定できます。

次はソースコードウィジェットです。

テキストウィジェットに非常に似ていますが、構文の強調表示とマクロがあります。

マクロを使用してウィジェットのソースコードを変更し、実行時にコードをコンパイルして実行できます。

3番目の例は、ユーザーインターフェイス用のウィジェットです。

必要に応じてウィンドウを描画するだけで、ソースコードでその要素を使用できます。

G5には他の多くのウィジェットが含まれています:データベース用、正規表現用など。 G5用の新しいウィジェットを作成することもできます。

最後の例は、ウィジェット「レポート」です。

このウィジェットにはソースコードを含めることができます。

また、ファイル「main.code」の一部であるため、ウィジェットはファイルのローカル変数と関数を使用できます。

ウィジェットはそれ自体のデータを要求し、レポートのフォーマットを変更できます。

レポートは、PDF、HTML、またはその他の形式で保存できます。

そして、これが結果です。

第4章、言語指向プログラミング。

G5を使用して、独自のドメイン固有のプログラミング言語を作成できます。

Theraは、G5でのDSLの少なくとも2つの可能性です。

1つ目は、新しい言語セマンティクスを定義できることです。 それを見てみましょう。

これは内部に配列を持つクラスです。 このメソッドを使用して要素の値を設定できます。

しかし、それは良くありません。 打者の方法は、アクセス演算子を使用しています。

キーワード「Semantics」を使用して、この狭窄を定義します。

最初の部分はコードテンプレートで、2番目の部分は実装です。

私は行のみのために書いた、それは今動作します。

もっと複雑な構造はどうですか?

たとえば、このスタイルのサイクル。

また、テンプレートとその実装を定義しています。 7行で動作します。

もう1つの便利なことは、物理変数です。

定義して、関数やメソッドで使用できます。

複数の変数とそれらの間の関係を定義することもできます。

その後、値は正しく変換されます。

物理変数とG5タイプ間の変換も可能です。

コンパイラは、すべての誤った変換を制御します。

さて、新しいセマンティクスとウィジェットを作成し、物理変数を使用すると、ドメイン固有の強力な言語が得られます。

今日は以上です。

このプレゼンテーションが気に入ったら、ビデオを友達と共有してください。

質問に答える準備ができています。このメールアドレスでご連絡ください。

ご清聴ありがとうございました。



All Articles