荻原 利雄
株式会社 豆蔵 主幹ソフトウェアエンジニア
Actions
エンタープライズなJavaアプリを作りつづけて25年のアラフィフエンジニア。ここ数年は大規模基幹システムを支えるJakartaEEフルスタックなフレームワークやSpring Bootを使ったフロントシステムの開発を行っています
実践ArchUnit - 実例による検証パターンの紹介
JUnit拡張のArchUnitを使うことで、レイヤードアーキテクチャやオニオンアーキテクチャといったアーキテクチャスタイルやモジュール間の依存関係、クラスに対するネーミングといったソフトウェアの静的な側面を多岐にわたりコードで検証することができます。
また、ArchUnitはCheckstyleのようなコードの字面による解析ではなく、バイトコードレベルで解析されるため、複雑な継承関係や依存関係も検証できます。ArchUnitはそのようなモジュール間の複雑な関係を検証できる一方で、どのようなことをArchUnitで検証するのが効果的か、またどのように検証すればよいのか悩むことも少なくありません。
登壇者はそんなArchUnitをここ数年プロジェクトで使ってきましたが、その中で「これはArchUnitでチェックした方がいいな、便利だな」といったケースがある程度パターン化されてきました。そこで今回は、そんなArchUnitの適用例を、コードを多めに紹介しながら、時間の許す限り解説していきたいと思います。
セッションでは、ArchUnitの細かいAPI仕様や基本的な使い方、ArchUnitがベースとしているJUnitやレイヤードアーキテクチャ、オニオンアーキテクチャなどの個々のアーキテクチャスタイルに対する詳しい説明は行いません。その代わりに、コード例を多く示しながら説明することで、前提知識がなくても「ArchUnitでそんなことができるのか!そこまでできるのか!」と感じてもらえることを目標にしたいと思います!
MicroProfileのススメ – なぜぼくはコレをつかうのか
Javaによるエンタープライズ開発のフレームワークと言えばSpring Frameworkがデファクトで鉄板となっているこの昨今、唯一のメリットは標準と言う錦の御旗だけに見えるJava EEに起源を発するMicroProfileに注目し、敢えて世間の逆を本気で行き、結果「マイクロサービスのバックエンドならSpringよりもイケてる(カモ)ね!」の境地に達したSpring好き(だった)エンジニアがMicroProfileのステキさを説明したいと思います。
セッションでは主にモジュール観点におけるJakarta EEとMicroProfieの関係からMicroProfile仕様の全体像、特徴的な仕様や機能の紹介、そして講演者が考えるなぜMicroProfileなのか?などの説明をとおして、「MicroProfileって言葉は聞いたことはある」から「MicroProfileってそういうものなのね、結構ステキじゃん」と思っていただけるセッションを目指したいと思います。
Spring Boot vs MicroProfile - クラウドネイティブにおけるフレームワークの比較と選択
ページ生成をサーバーサイドで行う従来型のWebアプリケーションをJavaで作る場合、現実的なフレームワークの選択はSpring Boot(+Thymeleaf)の一択ですが、それがRESTを中心としたクラウドネイティブなアプリケーションである場合はどうでしょうか?Spring Bootも依然として有力な選択肢ですが、もう一つの有力な選択肢として現在ではMicroProfileがあります。
スピーカーはここ数年、主にJakarta EE+MicroProfileを使った開発を行っていましたが、近年はSpring Bootを使った共通機能の開発も行っています。その日々の開発を通してコレはMicroProfileの方がいいな、よくできているなと思ったり、反対にSpringでよかったなと思うところは結構あったりします。
今回のセッションでは、そんなSpring BootとMircoProfileの両方の開発者の視点から、まずは土台となるDIとAOPに対する双方の違いを簡単に説明した後、RESTリソース(@RestController vs JAX-RS)、RESTクライアント(RestClient+HttpInterface vs MicroProfile Rest Client)、コンフィグ(Environment & @ConfigurationProperties vs MicroProfile Config)といったクラウドネイティブでは必須かつ重要となる機能を中心に双方の違いを見ていくことで、それぞれに向くアプリや開発組織を筆者なりに考察したいと思います。
なお、説明はSpring Bootを使っている人には、MicroProfileにもそんな機能があるのねと思っていただけるレベルを、反対にMicroProfileを使っている人にはSpring Bootも同じ感じなのねと思っていただけるレベル感を目指します。
また、今回のセッションはテーマが発散しないよう以下の前提で説明を行います。
・AWSやAzure、Google Cloudなどクラウドサービスそのものや固有なテーマは扱いません
・MicroProfileの実装はQuarkusやHelidonなどアプリケーションサーバが不要なものを前提にしています
・Micronautも選択肢になるんじゃないの?というご意見はごもっともで、そのとおりかと思いますが、スミマセン、今回は割愛させてください
・そもそもJavaでクラウドネイティブってどうよ?という話はある気はしますが、怖いのでそういうことは言いません
荻原 利雄
株式会社 豆蔵 主幹ソフトウェアエンジニア
Actions
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top