プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: BeginnerSpeaker
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Beginner
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Mothod / Community / Database / Others]: Java SE, Tools
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes
メディア取材可否 / Can you respond to the interview? [Yes or No]: Yes
概要 / Abstract:
私が働いてきた複数の職場で、古いコードの書き方のまま改善されていないシステムと出会ってきました。
「継承が多用されている」「1メソッドに1000行のコード」「副作用があるメソッド」などのレガシーコードを改善するためには、Junitが不可欠です。
今回はそんなレガシーコードと闘うための私が行ってきたJUnit活用方法について共有させていただきます。
プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: BeginnerSpeaker
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Mothod / Community / Database / Others]: Spring, Cloud
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes
メディア取材可否 / Can you respond to the interview? [Yes or No]:Yes
概要 / Abstract:
不動産(賃貸)業界の業務システムでは、様々な連携先から物件データを受信し、様々なポータルサイトへ物件データを送信しなければなりません。
AWS Batch と Spring Batch を組み合わせることで、柔軟かつリトライ・リラン容易なバッチシステムを設計・構築しています。
本セッションでは、クラウド環境で Spring Batch を 使ったバッチアーキテクチャを構成するにあたって、考慮したことや工夫したこと、苦労したことなどをお伝えできればと思います。
クラウド上にSpring Batch によるバッチシステムを構築する際の参考事例としてお聞きいただければと思います。
プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: BeginnerSpeaker
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Mothod / Community / Database / Others]: DevOps
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes
メディア取材可否 / Can you respond to the interview? [Yes or No]: Yes
概要 / Abstract:
機能検証とリリースの小回りが利かない、一部切り戻しも難しい、本番へのリリースが鈍重…
そんなブランチ・デプロイ運用を見直して、開発者にとってはシンプルに、運用者にとっては柔軟性、安全性を高くする施策を行いました。
従来の慣習に捉われず、「我々の今の開発スタイルで運用していくにはどのような形のCI/CDにするのがROIが高いか?」を突き詰めた結果、
ビルド、デプロイ時間が5分の1に、本番リリース時間が4分の1になり、また自動テストやバージョン管理の利便性なども向上しました。
このセッションでは、宿泊業のユーザー企業で実際に行なったCI/CD劇的ビフォーアフターについて、その施策と効果について紹介します。
プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: BeginnerSpeaker
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Beginner
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Mothod / Community / Database / Others]: Java SE, Spring
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes
メディア取材可否 / Can you respond to the interview? [Yes or No]: No
概要 / Abstract:
電子帳簿保存法の改正により急遽立ち上がった新規サービス開発。
久々の新規開発でテックリードの腕の見せ所とはりきる私。
新しい技術要素をモリモリ使って開発したい..ただ法改正がトリガーなので絶対に納期が延ばせないが考えなければいけないことは盛り沢山
・使用するJavaのバージョンとフレームワーク
・マルチテナントDB方式
・APIクライアント
・セキュリティ関連
・多言語、タイムゾーン対応
・フロントエンド
・クラス設計の方針
などなど
そのような状況の中でJavaを中心とした技術選定で妥協しなかったことや開発で苦労したことなど、開発事例をお話させていただきます。
プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: BeginnerSpeaker
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Beginner
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Mothod / Community / Database / Others]: Tools
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: No
メディア取材可否 / Can you respond to the interview? [Yes or No]:yes
概要 / Abstract:
TestcontainersはJUnitからDockerコンテナを簡単に使うことができるライブラリです。
・Junitのテストでデータベースを使いたいけど面倒くさそう
・データベースを使ったテストやってるけどパラレルで動かしたらよく失敗する。ツライ
そんな悩みをTestContainersは解決できると思います。
本セッションではTestContainersをSpringBootで使うサンプルコードをベースに簡単な機能を紹介したいと思います。
プレゼンタイプ / Presentation Type : BeginnerSpeaker
レベル / Level : Beginner
カテゴリー / Categories : Others
後日セッション動画の公開を希望する / Agree to publish your session video : Yes
メディア取材可否 / Can you respond to the interview? : Yes
概要 / Abstract:
WebRTC を活用した Web 会議システムを Spring Boot 2 を用いて開発しました。
なぜ Java を選んだかから、 WebRTC を使った会議システムの構成、WebRTC 配信サーバーと Spring Boot を用いた Web アプリケーション との連携など、開発で得た経験についてお話しできればと思います。
プレゼンタイプ / Presentation Type [BeginnerSpeaker]:
レベル / Level [Beginner]:
カテゴリー / Categories [DevOps / Tools]:
後日セッション動画の公開を希望する / Agree to publish your session video [Yes]:
メディア取材可否 / Can you respond to the interview? [Yes]:
概要 / Abstract:
ヌーラボ社の Backlog と GitHub 連携を行うためのインテグレーションツールを GitHub Actions 上で実行するカスタムアクションとして開発しました。実際のツールは次になります。
次の2つの機能があります。
汎用的な CLI ツールとして設計しているため、要望次第で他の機能を追加していくことも検討しています。
機能紹介 (英語)
一般論として Java はカスタムアクションを実装する言語としては不向きです。しかし、不可能ではありません。GitHub Actions が提供する3つのカスタムアクションの1つである Docker コンテナーアクションを用い、Java アプリケーションから Docker イメージをビルドして、GitHub Packages から提供することで簡単に任意の処理を Java で実装できます。本セッションでは、カスタムアクションを Java で開発する上で必要になる知識や要素技術について私の開発経験をお話しします。
カスタムアクションを作ったことがない開発者や GitHub Actions で何ができるかを知りたいといった開発者向けにも参考になると思います。
プレゼンタイプ / Presentation Type [Standard]:
レベル / Level [Intermediate]:
カテゴリー / Categories [Spring / Cloud / JVM]:
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]:
メディア取材可否 / Can you respond to the interview? [Yes or No]:
概要 / Abstract:
数カ月に一度開催される「超PayPay祭」では、事前にさまざまな負荷試験を実施することで
高負荷に耐えられることを確認している。
この講演では事前の負荷試験で問題が発生したJavaのWeb APIを取り扱い、
クラウドネイティブな環境で構築されたサービスにおける
負荷のボトルネックの見つけ方と対策について紹介する。
プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: BeginnerSpeaker
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Method / Community / Database / Others]: Java SE
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes
メディア取材可否 / Can you respond to the interview? [Yes or No]: No
概要 / Abstract:
オンライントランザクションを処理するシステムをJavaで構築して運用した経験を話します。
・24時間無停止のシステムを構築するために考慮したこと
・高負荷時の処理対処方法
・運用中に発生する不具合対処の考え方
・ログ出力へのこだわり
・10年間運用した過程で対応したこと
プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Method / Community / Database / Others]: Jakarta EE, Spring, Cloud
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes
メディア取材可否 / Can you respond to the interview? [Yes or No]: Yes
概要 / Abstract:
近年 IT 業界においてコンテナを活用したサービスの提供や、マイクロサービスの動作基盤として Kubernetes (k8s) が注目をあび様々な企業で活用されています。k8s はとても素晴らしい技術で、上手く活用すると、クラウド・ネィティブなシステムをより効果的に活用する事ができます。
一方で、k8s を正しく利用して活用していくのも難しく、幅広い技術的知見や高度な技術力も必要になります。こうした技術者不足で苦労している企業も少なからずあります。
こうした背景から、ここ数年で k8s のエコシステムに新しい潮流が生まれてきています。それは、k8s の便利な機能をより簡単に扱う事ができる、k8s 隠蔽化技術の登場です。
具体的には Microsoft では Azure Spring Cloud や Azure Container Apps といった k8s ベースのサービスを提供しています。これらは、難しく面倒な作業が不要です。例えば YAML を操作したり、ノードに対するパッチ適用などのインフラ・メンテナンスは利用者がしなくてもよくなります。そして開発者は、よりサービスの開発集中できるようになっています。
本セッションでは、Microsoft が昨年発表した新しい k8s ベースの技術 Azure Container Apps (プレビュー版) を紹介します。
このサービスは、マイクロサービスの開発基盤 Dapr (Distributed Application Runtime) を統合している他、GitHub Action を利用した CI/CD も簡単にできるようになっています。
こうした Azure Container Apps の魅力をデモを交えながらわかりやすく紹介します。
k8s の運用にお疲れの方もどうぞご覧ください。
プレゼンタイプ / Presentation Type [Standard]:
レベル / Level [Beginner]:
カテゴリー / Categories [Method / Others]:
後日セッション動画の公開を希望する / Agree to publish your session video [Yes]:
メディア取材可否 / Can you respond to the interview? [Yes]:
概要 / Abstract:
CData は世界で一番 JDBC Driver をたくさん作っている会社です。最近はどんどん採用にも力を入れているんですが、数多くの面接を行う中で応募者の方々から「そんなキャリア、選択肢があったのか」と驚かれることが多くあります。
確かに「Javaエンジニア キャリア」という感じでGoogle 検索すると、人気のプログラミング言語であるにも関わらず、キャリア像の狭さを感じる記事が多く存在しますね。
そこで「Javaエンジニア キャリア」、その中の選択肢の一つとして、実際に私が担当しているJDBCライブラリのテクニカルサポートの取り組みを紹介します。
おそらくサポートと聞くと受け身なイメージ、クレーム受付みたいなネガティブなイメージを持たれることもあるかもしれません。
しかしながら、スタートアップにとってのサポートとは、「製品開発の一要素」であり、製品以上の体験を顧客に提供し、他社との差別化要因として活用、さらには製品の改良にまでつなげます。
皆さんの中のサポートというイメージを壊しつつ、Java エンジニアのキャリアの選択肢・可能性を広げられるセッションを提供する予定です。
プレゼンタイプ / Presentation Type [Standard]:
レベル / Level [Intermediate]:
カテゴリー / Categories [Java SE]:
後日セッション動画の公開を希望する / Agree to publish your session video [Yes]:
メディア取材可否 / Can you respond to the interview? [Yes]:
概要 / Abstract:
これまでJavaで動くシステムではアプリケーションの情報とOSの情報は柔軟に取得できました。その間で動いているJava Virtual Machineに関する問題に備えるためにはMBeanとJVMログから取得するのが一般でした。しかしながら取れる情報が漠然としていたり、大量にログに出力されるために問題に気付けないなど、監視するのは非常に難しい物でした。
そこで登場したのが JDK Flight Recorder (JFR)です。
JFRはOpenJDK 11に導入され、その後 OpenJDK 8 にバックポートされました。そのため、多くのユーザがマイナーバージョンを上げるだけでも利用できます。
JFRは標準でも2%程度の負荷でJVMの様々な情報を記録します。また、JFRはさまざまなAPI提供しており、これらを使うことでアプリケーションの情報の記録も低負荷で行え、アプリケーション側ではJFRで記録された情報をもとにアクションすることもできます。
本セッションでは、JFRの全体像の紹介と実案件で使用したナレッジを紹介します。
プレゼンタイプ / Presentation Type : Standard
レベル / Level: Beginner
カテゴリー / Categories: JVM
後日セッション動画の公開を希望する / Agree to publish your session video: Yes
メディア取材可否 / Can you respond to the interview?: yes
概要 / Abstract:
KotlinはJVMで動作する静的型付けのオブジェクト指向プログラミング言語です。
モダンな記法が使えること・Javaプロジェクト内にJavaコードと混ぜて利用することができ移行コストが低いこと・Java/Scala等のJVM言語の文法と類似性が高く学習コストが低いことなどから、今やサーバーサイドでの開発においても利用される機会が増えています。
「Kotlinについて知りたい!」と思っている方の中でも、調べるのは時間がかかったり、何から調べていいかわからなかったり、個別の言語仕様を調べても言語としての全体像がよくわからなかったいるすことが多いかと思います。
このセッションでは、15分間ライブコーディングしている様子をお見せすることで、Kotlinの特徴についてざっくりと掴んでいただくことを目的としたセッションになります。
プレゼンタイプ / Presentation Type Standard
レベル / Level Beginner
カテゴリー / Categories Java SE / Spring / Database]
後日セッション動画の公開を希望する / Agree to publish your session video Yes
メディア取材可否 / Can you respond to the interview? Yes
山本ユースケさん、杉山貴章さんと共に書いた「プロになるJava」が3月19日に出版されました。
この本は、Javaに関する知識なしの状態から、Javaエンジニアとして就職するための知識と技能を得ることを目的にした本です。
今回のセッションでは、きしだが担当したJava言語パートから、プログラムの処理を書くのがなぜ難しいのか、オブジェクト指向がなぜ難しいのか、クラスをうまく使うためにどのようにオブジェクト指向と「お別れ」すればいいのかを解説します。
概要 / Abstract:
プレゼンタイプ / Presentation Type [Standard]:
レベル / Level [Advanced]:
カテゴリー / Categories [Others]:
後日セッション動画の公開を希望する / Agree to publish your session video [Yes]:
メディア取材可否 / Can you respond to the interview? [Yes]:
概要 / Abstract:
Launchable は Jenkins の作者の川口さんが友人とコロナが蔓延する前の 2019年8月に立ち上げた会社です。前の会社もリモートで運営していたので今回の会社も最初からリモートワーク前提で設計されています。その後、コロナ禍になり世間的にもリモートワークも特別な事ではなくなってきています。
少し前にGitLabが公開した「リモートワークマニフェスト」が話題になりさらにGitLab社のイベントでの発表も話題になりました。僕もそれを見させてもらって凄く学びになりつつも「あ、これ僕らもやってる事だな」って言うものも色々ありました。
せっかくなので僕らが会社の立ち上げからプロダクトを世に出すまで、リモートでどのように働いてきたのかを話したいと思います。
実際の開発はどう進めているのかを具体的な例を出しつつ説明していきます。 時差や言語の壁があることを最初から受け入れて設計された会社の仕事の仕方はみなさんのリモートワークの仕方にも参考になる部分が何かあると思いますので、是非楽しんで聞いていただければと思います。
プレゼンタイプ / Presentation Type [BeginnerSpeaker]:
レベル / Level [Beginner]:
カテゴリー / Categories [ Others]:
後日セッション動画の公開を希望する / Agree to publish your session video [Yes]:
メディア取材可否 / Can you respond to the interview? [No]:
概要 / Abstract:
Abstract:
<背景>
RabbitMQはスタートアップからエンタープライズまで幅広く導入されている
オープンソースのメッセージブローカーです。
マイクロサービスの普及とともに、イベント駆動アーキテクチャを実現するメッセージブローカーも重要な存在になっています。
また、イベント駆動アーキテクチャを実現する際にRabbitMQは一つの有力な技術選択肢になると発表者は考えています。
<発表内容>
本発表では、RabbitMQを用いたイベント駆動アーキテクチャの実装例を発表者のこれまでの経験をもとにポイントを絞って紹介します。
まず前提となるRabbitMQを利用するにあたって理解しておく必要がある各要素技術(queue、 exchange、 binding)を紹介します。
また、実際にイベント駆動アーキテクチャをRabbitMQで実装するイメージを深めてもらうために、
書籍「ソフトウェアアーキテクチャの基礎」で紹介されている実装例を中心に紹介します。
<発表の目標>
・イベント駆動アーキテクチャを用いた非同期通信を用いたシステム開発手法を知ってもらうこと
・非同期通信を実現する一つの手段であるRabbitMQについて情報を提供すること
プレゼンタイプ / [Standard]
レベル / [Beginner / Intermediate]
カテゴリー / [Categories Cloud / Tools / Method]:
後日セッション動画の公開を希望する / Agree to publish your session video [Yes]:
メディア取材可否 / [No]:
概要 / Abstract:
AWS には仮想マシン、コンテナ、サーバーレスなど、さまざまなアプリケーション実行方法の選択肢があります。また、皆さんがお気に入りのIDE から簡単にクラウドを使うための様々なツールや、開発を簡単にするためのCLI ツールなど、開発者の皆様のためのツールも多数用意しています。これらのツールを使いこなして、皆さんの開発したアプリケーションをクラウドにデプロイするための様々な方法をデモを交えてお見せしたいと思います。どんな時でもこれが一番、というものはありませんが、皆さんそれぞれにとって一番実行しやすい方法を見つけていただければと思います! また、合わせて、AI を使った静的コード解析など、開発者の皆さんをサポートするサービスも紹介します。
プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Method / Community / Database / Others]: Cloud, Database
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes
メディア取材可否 / Can you respond to the interview? [Yes or No]:Yes
概要 / Abstract:
スケールアウト可能な分散データベース TiDBがTiDB Cloudとして利用できるようになりました。
MySQLプロトコル互換である特徴を生かした、Spring Bootを利用したWebアプリケーションがTiDB Cloudでどのように構築できるのか、
また、TiDB 6.0の新機能や、無料でお使いいただけるTiDB Cloud Developer Tierもあわせてご紹介します。
プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Beginner
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Method / Community / Database / Others]: DevOps、Tools
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes
メディア取材可否 / Can you respond to the interview? [Yes or No]: Yes
概要 / Abstract:
開発側と運用側が連携・協力し合い、開発を効率良く進める考え方(DevOps)が浸透してく中で
DevOpsを実現するために、CI/CDに関するツールやサービスも数多く出てきています。
今回は、そのCI/CDの代表的なツール「Jenkins!」ではなく、
「Azure Pipelines」と「Javaへの静的解析等」を使用して、CI/CD環境の構築の流れと、
そこで私が学んだ気づき等をご紹介したいと思います。
これからAzure Pipelinesを利用する方や静的解析でJavaのバグ検出(品質向上)やその自動化等に
興味のある方は是非ご視聴ください。
少しでもAzure Pipelinesの理解に役立てていただければ幸いです。
プレゼンタイプ / Presentation Type [Choose either from Standard / BeginnerSpeaker / StepUp]: Standard
レベル / Level [Choose either from Beginner / Intermediate / Advanced]: Intermediate
カテゴリー / Categories [Choose at least one from Java SE / Jakarta EE / Spring / Cloud / JVM / DevOps / Tools / Method / Community / Database / Others]: Java SE / Spring / Others
後日セッション動画の公開を希望する / Agree to publish your session video [Yes or No]: Yes
メディア取材可否 / Can you respond to the interview? [Yes or No]: Yes
概要 / Abstract:
保険会社の基幹システムには、一般的な基幹システムとして求められる品質と安定性に加え、高い拡張性が求められます。
高い拡張性とは、保険会社の商品開発スピードを最大限に高めるために、新商品追加や商品改定の際のシステム対応コストを最小化することを意味します。
シンプレクスでは、OSSのワークフローエンジンであるCamunda、自社開発のルールエンジン、スキーマレスなアーキテクチャを用いて、高い拡張性を実現しています。
今回のセッションでは上記の技術を中心に、シンプレクスによる保険基幹システム開発の取り組みをご紹介します。