Lizさんに届け!�AWS Jr. ChampionとTop Engineerが�書籍コンテナセキュリティを読んで感じたこと

Red Hat で Solution Architect として OpenJDK を担当している伊藤ちひろ(@chiroito)です。 この記事は、Red Hat Developerのブログ記事、Get started with JDK Flight Recorder in OpenJDK 8u | Red Hat Developer の翻訳記事です。 OpenJDK 8u 262 releaseには、いくつかのセキュリティ関連のパッチと、新しい追加機能であるJDK Flight Recorder(JFR)が含まれています。この記事では、OpenJDKの開発者向けに、JDK Mission Controlや関連ユーティリティーを使ったJDK Flight Recorderの使い方を紹介します。また、コンテナJFRとして知られるProject Hamburgについても簡単に紹介します。 JD
Javaのモジュールシステムとは Javaのモジュールシステムに関する議論がスタートしたのは15年ほど前のことになる。Javaアプリケーションの多様化やJava言語仕様の巨大化によって,従来のパッケージの仕組みだけではクラスライブラリの適切な構造化や管理が難しくなったというのがその発端だ。さまざまなライブラリのJarファイルが複雑に依存し合っているこの状況は「Jar地獄」などと呼ばれ、Java 9のリリースに到るまで問題視され続けてきた。 Java 9に導入されたモジュールシステムは、「Project Jigsaw」というプロジェクト名で仕様策定と実装が進められた。Java Community Processにおける正式なJSRは「JSR 376: Java Platform Module System」で、OpenJDKプロジェクトではJEP 200を中心とした複数のJEPによって構成さ
A Kubernetes Native Java stack tailored for OpenJDK HotSpot and GraalVM, crafted from the best of breed Java libraries and standards. Now Available Quarkus 3.26.2 Read the release notes Developer Joy A cohesive platform for optimized developer joy with unified configuration and no hassle native executable generation. Zero config, live reload in the blink of an eye and streamlined code for the 80%
Java プログラミング速習テキスト 1. このテキストについて Java の入門あるいは再入門テキストは世の中に多数で回っていますが、最新の Java SE 8 に対応したものや、Java の思わぬ落とし穴についてきちんと触れているものは非常に少ないです。このテキストは Java SE 8 をターゲットとすることで最新の API を活用した生産性の高いアプリケーション開発ができるようになること、意外と知られていない Java の落とし穴について紹介することを主な柱として執筆したものです。 全くのプログラミング初心者に対する説明を行う余裕はないため、対象とする読者には構造化プログラミングに関する基本的な知識を前提としました。C/C++、JavaScript、Python、Visual Basic などの経験が多少なりともあれば読み進めることはできるでしょう。また、研修で Java を習った
vavr - turns java™ upside down Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners. A new powerful collection library saves us from source.stream().really("?").collect(sink()) pipelines. List<String> names = persons .filter(p -> p.age > 12) .map(Person::getName); The functional For is an expression that yields a value.
こんにちは、server-side kotlin や terraform を書くことが多い、エンジニアリングGの矢崎(id:Saiya)です。 タイムゾーンや日時の扱いについての話題がホットな昨今ですが、 そういった日時の扱いについて例えば以下のようなお話を受けることが少なからずありました: とりあえず日時は UTC からの時差情報付きで扱えばいいんでしょ? DB に保存するときもタイムゾーン情報付きで入れておけばいいんでしょ? こういったお話を振られた際に、思うところを一言でサッと説明できずもやもやする事もあり、 また web サービスにおいて日時・タイムゾーン・オフセットをどう扱うべきか?納得の行く説明をあまり見つけられなかったため、 筆者なりに考えをまとめてみました。 国家的祭典のために急にサマータイムが導入されるといった話に限らず、 クラウドサービスが UTC+0 の日時になってい
JavaのConcurrentフレームワークで非同期例外が発生した時に、非同期スレッド内のトレースに加えて呼び出し元のスタックトレースを返すFutureのデコレータを作ってみました。 例えば、次のようなコードを実行した場合、 // 非同期処理 Callable<Void> c = new Callable<Void>() { public Void call() throws Exception { throw new IOException(); // 例外をスロー } }; // 非同期処理を実行 Future<Void> future = Executors.newSingleThreadExecutor().submit(c); try { // 結果を取得 future.get(); } catch ( ExecutionException e ) { e.getCause().
Java9 も出た昨今でいまさらですが、Stream パイプラインが裏でどのように動いているのかをコードを交えて紹介します。 以下の単純な例を元に、内部処理を追っていきましょう。 Arrays.asList("a", "b", "c") .stream() // (1) Stream の生成 .filter(String::isEmpty) // (2) パイプライン .forEach(System.out::print); // (3) 終端処理 (1) Stream の生成 (2) パイプライン (3) 終端処理 まとめ (1) Stream の生成 最初はストリームを取得する stream() の中身から見ていきます。 stream() は Collection インターフェースのデフォルトメソッドとして以下のように定義されています。 public interface Collect
技術的な標準・規格 (TODO: IATA, Microsoft) tz database タイムゾーンに関する、ソフトウェア・エンジニアにとって最も標準的なデータが tz database (Wikipedia) でしょう。 "Asia/Tokyo" や "Europe/London" のようなタイムゾーンの名前は、この tz database のものです。 tz database のタイムゾーンは "/" の前の最初の部分に大陸名・海洋名を用い、続いて、典型的にはそのタイムゾーン内の著名な都市名・島名をその代表として名付けられています。21 国名は基本的に使われません。22 "America/Indiana/Indianapolis" のように3要素で構成されるタイムゾーンも少数ながら存在します。 tz database はボランティアによってメンテナンスされています。タイムゾーンの情
スレッドプールで実行されるすべてのタスクは、異常終了したことをアプリケーションに通知する仕組みを提供しなければならない。スレッドプールではスレッドは再利用されるので、タスクの異常終了が通知されなくてもリソースリークが発生することはない。しかし、タスクの異常終了の原因究明が非常に困難になったり、不可能になったりする。 アプリケーションレベルで例外を処理する最もよい方法は、例外ハンドラを使うことである。診断動作、クリーンアップ処理、JVMの終了、あるいは障害情報の記録などを例外ハンドラで行うことができる。 違反コード (タスクの異常終了) 以下の違反コードは、スレッドプールをカプセル化した PoolService クラスおよび Runnable を実装する Task クラスから構成されている。Task.run() メソッドは NullPointerException のような実行時例外をスロー
Date And Time APIのどの日時クラスを使えばいいのかわからなくなったら、参考にて下さい。
【Date and Time API】Java 8徹底再入門【ラムダ式ハンズオン】(大阪,7/11) - connpass で Date and Time API について学んだので復習。 ラムダはハンズオン形式で実際に手を動かせていたけれど、 Date and Time API の方は講義形式だったので、話を聞いて気になったところとかを実際に触ってみる。 要点整理 Date and Time API (JSR310)は ISO 8601 をモデリングして作られたもの。 ISO 8601 は、コンピュータ間でデータのやりとりをする際の、日付と時刻の書式に関する国際規格。 ISO 8601 について知らないと、 Date and Time API を正しく扱えないことがある。 といっても、 ISO 8601 について知っておくべきことは、そんなに多くない。 発表スライドに挙げられている表記法
いままでのJavaでは、日付時刻を扱おうとするとめんどくさい割に非常に低機能でした。 Java8では、新たに日付時刻APIが導入され、めんどくささが増しつつ非常に高機能になりました。 (以降、Java8で導入された日付時刻APIを単に「日付時刻API」と表します) もちろん、慣れてきて、ちょっとしたサポートメソッドを用意してやれば、結構使いやすいのですが、それは「このAPIは使いやすい」という評価にはなりません。 つまり日付時刻APIは、慣れないとぜんぜんわからないし、サポートメソッドがないと面倒なコードが必要ということです。 いろいろあってよくわからない 日付時刻では、時点を扱うInstantや期間を扱うPeriod、時間量をあらわすDurationなど多くのクラス・インタフェースが導入されています。 これらは、IDEの補完でAPIを探りながら機能を推測すれば、それなりにドキュメントなし
レイヤ化アーキテクチャ(LAYERED ARCHITECTURE) DDD でのレイヤ化アーキテクチャ アプリケーションの中では、ドメインのロジック以外にも様々な処理が行われる。 例えば、画面表示に関する処理・トランザクション制御・データベースアクセス・メール送信などがある。 もし、これら他の関心事の中にドメインロジックが紛れ込んでいると、コードは非常に読みづらくなり保守もしづらくなる。 この問題を回避するため、ドメインは他の感心事から分離しなければならない。 分離の手法は多々あるが、一般的に広く受け入れられている手法として、レイヤ化アーキテクチャがある。 レイヤ化アーキテクチャでは、アプリケーションが持つ関心事をいくつかの層に分離する。 各層に含まれる要素は、同じ層内の要素かもしくは下位の層にのみ依存し、上位の層には依存しないようにする。 上位の層と連携する場合は、コールバックやオブザー
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く