古典的なDDD/クリーンアーキテクチャを採用したJava Webアプリケーションで生じる「モデル増殖」「詰め替え過剰」「ドメインモデルの肥大化」という問題を診断し、Always-Valid LayerとRaohによるデコーダ合成で解消する設計を解説する。本書は無料です。内容が役に立ったと感じたら、本書で使用しているライブラリ Raoh(https://github.com/kawasima/raoh)にスターを付けたり、実際のプロジェクトで試してみたりしていただけると励みになります。
search infra teamのmrkm4ntrです。我々のチームではElasticsearchをKubernetes上で多数運用しています。歴史的経緯によりElasticsearchのクラスタは全てElasticsearchクラスタ専用のnode pool上で動作していました。ElasticsearchのPodは使用するリソースが大きいため、このnode poolのbin packingが難しくコストを最適化できないという問題がありました。そこで全てのElasticsearchクラスタを専用のnode poolから他のワークロードと共存可能なnode poolへ移行しました。ほとんどのクラスタが問題なく移行できたのですが、唯一移行後にlatencyのスパイクが多発してしまうものがありました。 この記事では、その原因を調査する方法と発見した解消方法について説明します。 発生した現象 共
A more than minimal JVM written in Go and capable of running Java 21 classes. View the Project on GitHub platypusguy/jacobin Welcome to Jacobin JVM Jacobin is an implementation of the JVM specification for Java 21. It is written entirely in Go with no non-Go dependencies. The goal is to provide a more-than-minimal implementation of the JVM that can run most class files and JARs and deliver the sam
2021年12月10日、Javaベースのログ出力ライブラリ「Apache Log4j」の2.x系バージョン(以降はLog4j2と記載)で確認された深刻な脆弱性を修正したバージョンが公開されました。セキュリティ関係組織では過去話題になったHeartbleedやShellshockと同レベルの脆弱性とも評価しています。ここでは関連する情報をまとめます。 1.何が起きたの? Javaベースのログ出力ライブラリLog4j2で深刻な脆弱性(CVE-2021-44228)を修正したバージョンが公開された。その後も修正が不完全であったことなどを理由に2件の脆弱性が修正された。 広く利用されているライブラリであるため影響を受ける対象が多く存在するとみられ、攻撃が容易であることから2014年のHeartbleed、Shellshock以来の危険性があるとみる向きもあり、The Apache Software
この記事について 事ある度に書いたり言ったりしている通り、2020年を迎えようとしている現在でも、信頼できるSpring関連書籍は下記の2冊しかありません。 Spring徹底入門 改訂新版Spring入門 2冊(以下「書籍」)とも超良書なのですが、どちらもリリースされたのが2016年で、対応しているSpringのバージョンが4.2と古くなっています。 2019年末時点での最新版はSpring 5.2です。この記事では、上記書籍を令和の今読む際、特に気をつけるべき点をいくつか紹介していきます。 4.x->5.xの差分すべてについては、GitHubのWikiを確認してください。 JDKは8以上を使うべし Spring 5.0以降から、JDKのベースラインが8になりました(Spring 4はJDK 6ベース)。今からSpringを使おうと言う人が、JDK 6とか7を使おうとはしないと思いますが・
Scalaプログラマの観点からGraalVMを紹介、使ってみる。 GraalVM? GraalVMは、思い切り雑に紹介するとScala(Java)プログラムを高速化することが出来る(ことがある)らしい。 このあたりを読むともう少し詳しく書いてある。 https://www.graalvm.org/docs/why-graal/#for-java-programs 簡単にまとめておくと、特徴としては Javaを高速化 JITコンパイルになにかしら改良がしてあるとのこと。 Javaコンテキスト内で別の言語(JSやPython)を実行 Ployglotなアプリケーションを開発可能 Nativeイメージを作成 JITではなくAOTコンパイル の3点が挙げられている。 この記事では1と3に触れてみる。 2についてはEmbed Languages with the Graal Polyglot API
世界的人気を誇るゲーム「Minecraft」の心臓部といえるソースコードのライブラリがオープンソース化され、順次リリースされることになりました。 Programmers: Play with Minecraft's Inner Workings! | Minecraft https://minecraft.net/en-us/article/programmers-play-minecrafts-inner-workings 公開の対象となるのはMinecraft Java Edtionのソースコードの一部で、GitHubでMITライセンスのもとで配布されます。再利用は完全に自由とのことで、クレジット表記さえきちんと行えば、より強力なModの開発やMinecraftには関係のないプロジェクトへの転用など、あらゆる用途に利用してOKとのこと。今回公開される「ライブラリ」とは、ゲームを構成する
WEB+DB PRESS の Vol.89 で、アプリケーションモニタリングの記事を書いたので是非読んでくださし。 2015/10/24 発売ですので、既に購入頂いてる方も多いと思います。 電子書籍版もありますので物理的な媒体に興味がない方は PDF を買って下さい。 https://gihyo.jp/dp/ebook/2015/978-4-7741-7713-7 今回の記事における対象読者について モニタリングの話をしてるんですけども、運用者向けでは無くて実装者とか方式設計的なことする人向けの記事です。ええ。 Java ではロギングライブラリにおけるカオスが非常に極まった状況にあります。それは、あらゆるアプリケーションにおいてとりあえずロギングは為されていると言う意味では非常に良い事であると言えます。 記事の内容について まずは、JMX はスバラシイけどアカン奴というその二面について
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く