Gleyzer両氏によって共同開発されました。2019で、同言語の発表を行いました。InfoQはPurdy氏に言語と、氏らが解決を目指した問題について聞きました。設計/アーキテクチャアジャイルマニュフェスト:ソフトウェアアーキテクトの視点ソフトウェアアーキテクトの役割と責任はアジャイルソフトウェア開発のためのマニフェストの価値と矛盾していると見えますが、優れたアーキテクトはアジャイル開発チームをサポートするテクニックを見つけています。Streamingは、ストリーミングデータのためのSQLライクなインターフェースを提供します。Streamsによって、Redisがストリーミングデータを複数のプロデューサとコンシューマの間で消費、保持、配信することができるようになります。ソフトウェア開発のマニフェストたゆまず息もつかずに市場に突進することで、会社を静かに消滅の崖っぷちへと追い込みます。それは設計してコードを書く方法を再考する時です。簡単さへの投資は、速さへの投資です。簡単さは知的財産の主鉱脈でもあります。競争上の優位性は、一度失ったら、もう一度手に入れることはほとんど不可能です。Buytaerts氏が過去10年間にわたって、企業がDevOps採用のハイプサイクルをくぐり抜け、変革に対する誤解を解消する過程を支援してきた経験について語ります。多くの人に親しまれています。実際に使用したことがある人や、関連の記事や書籍を読んだことがある人も多いことでしょう。機能を説明し、単純なアプリケーションを移行してみたいと思います。背景を少し説明しておく必要があります。全体の概念を理解するのに役立つよう、コアアーキテクチャの違いをいくつか説明します。バックエンドの移行について説明します。アクションの違い、フレームワーク機能に関連したアクション、およびアクション設定について詳しく説明します。この記事の最終パートでは、ユーザーインターフェイスについて説明します。コンポーネント、およびテーマとタグを説明し、アプリケーションの新しいインターフェイスを作成します。概念、および使用可能な新機能を紹介することです。この知識さえ装備しておけば、どのようなスケールのアプリケーションでも容易に移行することができます。月にリリースされました。アプリケーションのビューと、ビジネスロジックやアプリケーションロジックとを明確に分離する、という考えから生まれました。ステートメントを使用して表示を行ったりするという選択肢が最も広く用いられていました。アプリケーションの事実上の業界標準になっています。このような浸透と同時に、機能拡張および変更も継続的に行われています。アプリケーションフレームワークに対する要件は変化が激しく、それに応えなければならならないというのはもちろん、次々と登場してくる競合フレームワークの機能に対応するという意図もあります。ついてはいくつかの提案がされてきました。プロジェクトのトップレベルプロジェクトとなりました。コントローラのパターンを継承しています。革命として始まったものです。コードとは互換性のなくなる可能性のある新しい概念および機能を採用しています。つのフレームワークとなっています。合体することが発表されました。プロジェクトがなくなっていくわけではありません。関心が高く、意欲的な開発者が存在する間は、バグ修正、機能拡張や新機能の追加などでどちらのプロジェクトも継続します。変換する詳細な方法を説明する前に、まずは要求が処理されるプロセスをたどりながら、新しいアーキテクチャがどのようなものなのかを説明します。してフロントコントローラを使用するフレームワークである、という重要な事実がわかってくることでしょう。今まで慣れてきたすべての概念は、今回も応用することができます。次のことを意味します。要求パラメータおよびフォームパラメータを経由してサーバに送られます。使用することができます。要求処理の概要を以下の図に示します。個のステップに分けることができます。フレームワークが要求と設定をマッチングして、使用するインターセプタ、アクションクラス、および結果を認識します。インターセプタは、横断的なアプリケーション機能だけでなく、要求の前処理も実行します。アクションクラスの新しいインスタンスが作成され、要求にロジックを提供するメソッドが呼び出されます。アクションの設定で、要求に対して呼び出されるアクションクラスのメソッドを指定することができます。アクションのメソッドの処理からの結果に一致する結果クラスが取得され、新しいインスタンスが作成され呼び出されます。(ただし、これが唯一の出力ではありません)。タグは、表示する値を取得するためにアクションにアクセスすることができます。要求は、インターセプタを逆の順序で進みます。この間に、クリーンアップや追加の処理が実行されます。最後のステップとして、制御がサーブレットエンジンに戻されます。表示するというものです。ヘッダーを戻したり、HTTPリダイレクトを呼び出したりすることも可能です。おわかりのとおり、いくつかの違いがあります。アーキテクチャであるという点です。これは、どういうことでしょうか。いうことを意味します。存在することが前提とされています。データを取得できる元としては、ほかにもいくつかの場所があるので、それらについてはそれぞれのシナリオのときに説明します。アプリケーションフレームワークを有効にすることです。設定としては、一般的に次のようなものが使用されています。大きな変更は、指示がサーブレットからサーブレットのフィルタに変更されていることです。設定は、サーブレットの場合と同じように簡単であり、以下のようになります。フィルタのクラスを定義します。パターンを関連付けています。あるというパターンです。プロパティとして定義されています。ファイルは、多くの設定オプションが定義されている場所です。含めることで、そのプロパティのさまざまな値でデフォルトの設定を上書きできます。そのような設定パラメータはありません。上にある必要があります。アプリケーションでそれらを共存させることに何の問題もありません。これは、移行プロセスを開始するときに非常に役立ちます。残りのアクションは、時間とリソースに余裕があるときに変換します。つのフレームワークを永続的に共存させることも可能です。既存のアクションを必ず移行しなければならないということはありません。変更することにより、アクションのみを更新する方法があります。そのまま残して再使用することが可能です。違いのいくつかを大まかに説明しました。ここでは、より詳しく説明します。各フレームワークのアクションの構造の違いを見ていきましょう。アクションの一般的な構造を確認します。アクションは、一般的には次のような構造になります。アクションを実装する際は、次のような事項を意識する必要があります。基本クラスを拡張する必要があります。すべてのアクションは、単一のアクションインスタンスが作成されるようにし、スレッドセーフにする必要があります。アクションはスレッドセーフである必要があるため、アクションの処理で必要となるすべてのオブジェクトはメソッドシグネチャで渡されます。アクションの処理に呼び出されるメソッドの名前は、executeである。クラスは、実行されるメソッドを同じアクションの別のメソッドに割り当て直すことができます。クラスのメソッドを使用して返されます。メソッド呼び出しです。アクションの実装は大幅に簡略化されています。}}まず、アクションがいずれのクラスまたはインターフェイスも拡張していないことに注意してください。実際には、拡張よりも高度な方法となっています。メソッドになっていますが、このようにする必要はありません。いうメソッドシグネチャに準拠したメソッドであれば、どのようなメソッドでも設定によって呼び出し可能にすることができます。