InfoQ Software Architects' Newsletter A monthly overview of things you need to know as an architect or aspiring architect. View an example
![Java Virtual Threads: a Case Study](https://cdn-ak-scissors.b.st-hatena.com/image/square/7a5cf57a4774e0c9e825029c1ef06c727ce06610/height=288;version=1;width=512/https%3A%2F%2Fres.infoq.com%2Farticles%2Fjava-virtual-threads-a-case-study%2Fen%2Fheaderimage%2Fjava-virtual-threads-header-logo-1720447061699.jpg)
ビルド時アプローチの利点は明らかです。コンパイル中により多くの計算を行うことにより、フレームワークはその時点で最適な方法で実行できるように準備されます。また、リフレクション、動的なクラスローディング、プロキシの実行時生成を排除することで、実行フェーズにおけるさらなる最適化の機会が得られます。この最適化は、JITと、非常に重要な点として、GraalVMのNative Imageツールの両方に対して得られます。このアプローチのおかげで、Native Imageでは、Micronautフレームワークアプリケーションのクローズドワールド静的分析を実行するために追加で設定することはありません。 MicronautフレームワークとGraalVMの間のこの相乗効果を生み出すため、Micronautフレームワークの共同創設者であるGraeme Rocher氏がOracle Labsに加わりました。Orac
これは、ネイティブJavaが本当に輝くところです... スイートスポットを見つける ネイティブJavaは、Kubernetes、マイクロサービス、サーバレスコンポーネントに最適です。また、新しいサービスを開発したり、より大きなモノリスアプリケーションをより小さなサービスに分解したりする場合にも理想的なタイミングです。 ネイティブJavaの採用に「ビッグバン」アプローチをとる必要はありません。一度に1つのサービスで実行できます。このアプローチによりリスクが最小限に抑えられます。そして、テクノロジーが時間の経過とともに成熟するにつれて信頼を築いていくでしょう。 行動を起こすことに最初は圧倒されるかもしれませんが、今行われている従来のJava開発とそれほど変わりません。 Logicdropは、ビジネス自動化とデータインテリジェンスのためのオールインワンプラットフォームを開発しています。このプラッ
原文(投稿日:2022/02/25)へのリンク Flixは多くのプログラミング言語にインスパイアされたオープンソースのプログラミング言語であり、開発者は関数型、命令型、論理型のスタイルでコードを書くことが可能である。FlixはScalaに似ており、Hindley-Milnerに基づく型システムとGoにインスパイアされた並行処理モデルを採用している。JVM言語はポリモーフィックエフェクトシステムやDatalog制約などのユニークな機能をサポートしている。 FlixのプログラムはJVMバイトコードにコンパイルされ、開発者はFlix Visual Studio Code拡張機能を使用するか、online playgroundを使用して言語を評価することができる。 コミュニティはいくつかの原則に基づいて言語を開発している。例えば、NULL値を使わない、デフォルトでprivate、リフレクションを使
次の問題は、CV駆動開発(CV-driven development)です。自分のCV(Curriculum Vitae、職務経歴書)を見ます。すると、"マイクロサービス"に関する部分が大きく空いていることに気付きます。これでは都合が悪いので、"自社のスタックを再構築して解決しよう"、と考えるのです — 読者の皆さんは、"Holly、それは皮肉が過ぎるよ"、と思うかも知れません。"自分の履歴書の都合でアーキテクチャを決めるやつがどこにいるんだ?" それが実は ... いるのです。 Red Hatは先日、コンテナベース開発を導入したおもな動機に関する調査を行いました。その結果、最も多かったものは"キャリアアップ"でした。"キャリアアップ"は、CV駆動開発の体のよい言い換えに過ぎません。 現在のマイクロサービスは"新正統派"と言ってもいいものですから、経歴書にマイクロサービスが欠けているのは大
マシンコードのレベルでメソッドを呼び出す場合には、C#のコードでは無視できた複数の問題を意識する必要があります。名称とパラメータをメソッドに提供するだけではなく、メソッドへの値の渡し方(レジスタ経由か、スタック経由か)を知っておかなくてはなりません。それだけではありません。メソッド終了時に誰がスタックをクリーンアップするか(呼び出される側か、呼び出す側か)、どうやって値を返すのか、パラメータの順番は(左から右、あるいは右から左)など、さまざまな詳細も知っておく必要があります。C#で書く場合には、.NETプラットフォームがこれらを処理してくれるので、詳細を無視することができるのですが、マシンコードのレベルでは、バイナリプロトコルに準拠するように注意しなければなりません。それを怠れば、セグメンテーション違反やアクセス違反などを受けることになるでしょう。 JITコンパイルは複数ステップからなるプ
2016年頃「サービスメッシュ」という用語は、マイクロサービス、クラウドコンピューティング、DevOpsの分野に登場しました。楽天的なあるチームは、2016年にこの用語を使用して彼らの製品である Linkerd を説明しました。コンピューティングの多くの概念と同様に、実際には、関連するパターンとテクノロジーの長い歴史があります。 サービスメッシュの登場は、主に IT ランドスケープの最悪の状況によるものでした。開発者は、複数言語 (ポリグロット) アプローチを使用して分散システムの構築を開始し、動的なサービスディスカバリーを必要としていました。運用は一時的なインフラストラクチャの使用を開始し、避けられない通信障害を適切に処理し、ネットワークポリシーを適用したいと考えていました。プラットフォームチームは、Kubernetes などのコンテナオーケストレーションシステムの採用を開始し、Envo
キーポイント The idea of "unbundling" the database and replacing it with an event log such as Apache Kafka is appealing, but in practice fails to realize its goals. Rather than replacing a fundamental component such as the database, a better approach is to complement the database with Apache Kafka through a connecting tissue such as Debezium. To future-proof your microservices, you have to design them w
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く