SlideShare a Scribd company logo
Seasar2で作った俺たちのサービスの今
阪田 浩一 (さかた こういち)
@jyukutyo じゅくちょー
フリュー株式会社
元塾講師アルバイト
関西Javaエンジニアの会(関ジャバ) 会長!?
2009年秋 発足
2014年11月 JUG入り
SI(客先常駐) 9年 / 自社サービス 5年目
blog : Fight the Future http://jyukutyo.hatenablog.com
昨年(2015年)のJJUG CCC 2015 Springでも話しました
http://www.slideshare.net/jyukutyo/jjug-ccc-2015ab4
2016/9/26にSeasar2は
サポートを終了する!
DBFlute DBFlute.NET Doma
Emecha Mayaa S2Container.NE
T
S2Dao.NET
以下を除いた全プロダクトが
EOLとなります!
つまりJavaでの
Seasar2関連は
ほとんどが対象
このセッションは、
それを受けて
プロジェクトで
移行を始めた
事例の紹介です
今日のゴール
対象 S2で開発/運用している人
提供したい
こと
対象の人たちがS2から
移行する際の参考事例
注意事項
“ベスト”プラクティスでは
ないこと
まずは結論から
結果:Springに移行
2016年2月にリリース
移行前 移行後
プレゼンテー
ション層 Cubby 2.0
Spring MVC
2.4.3
永続化層 S2Dao 1.0.51 Doma 2.6.0
コンポーネント
フレームワーク S2 2.4.43 Spring 2.4.3
ただし、2月に
リリースしたのは
あくまで1機能のみ
リリース内容は
同一機能の
リプレース
その後
さらにいくつか
リプレースした
2016年5月現在
3機能がSpringで
動作している
そんな状況です
今日
お話しすること
結果に至るまでのこと
“なぜ”Spring/Domaなのか?
“どのようにして”移行したのか?
“何に”詰まった/困ったのか?
なぜSpring/Doma
なのか?
WebSocketやSSEを(楽に)使いたい
Java 8に移行したので、
それに対応するFWにしたい
長期間、同じ運用開発をしているので、
メンバーの飽きを防ぎたい
ただし移行の緊急性は高くない
(ように思う)
そもそもS2から移行する
必要があるのか?
こうした理由に至った
僕らの背景を
簡単にご紹介します
(あくまで理解の
補助として)
対象アプリケーション
サービス名 ピクトリンク
サービス
イン
2011年
(前身サービスはもっと以前から)
利用者数
1,000万人
女子高生の70%は会員
(有料会員数は秘密)
主な機能
プリントシール機で撮影した画像を
取得できる
提供
Webサイト
iOSアプリ/Androidアプリ
課金
携帯電話キャリア課金 / 楽天ID決済
iOS課金 / Android課金
PageView 月間約1億PV
備考:プリントシール機とは
ゲームセンターや
ショッピングモールにある
写真を撮影をする機械。
女性の利用が多い。
開発チーム構成
サイトチーム 6名
• 私がリーダを担当
アプリチーム 7名
• iOS
• Android
• Web API
インフラチーム 5名
• サーバ
• ネットワーク
• Ansible
• Elasticsearch/Ki
bana
• Oracle RAC
ログチーム 3名
• Tableau
• BigQuery
HTML/CSS 2名
• デザインをHTML
に
合計23名
私はサービスインの
半年後に
参画しました
23名という人数と
開発開始から
5年以上経過している、
そういう状況
10年くらい標準だったよう
S2、S2Struts、Cubby、S2Daoなど
ただし、ここ5年ほど私の部署以外では
新規プロジェクトでScalaを採用
全社的に標準が
S2ファミリーだった
言語はJavaとする
運用開発チームの特性上、FWだけでなく
言語も変わると、メンバーが対応できない
日々の工数すべてを移行に避けない
機能改善/追加と並行に作業する
アプリケーションを作り直さない
テスト手順が煩雑なキャリア課金がメインのため
移行先FWの前提条件
All or Nothingの移行は
やっぱり
リスクが高すぎる!
(ように思う)
まずは移行先となる
フレームワーク(FW)
を調査する
移行先FWで調査した候補
Spring
Spring MVC
Spring Boot
Java EE
JSF
JAX-RS
Jersey MVC
Play Framework
Spark Framework
Jodd
Ninja
Doma
JOOQ
JDBI
Bootiful SQL Template
A simple SQL template
engine for Spring Boot
考えたこと:
もうトレードオフで
判断するしかない
S2、Cubby、S2Daoとそれほど
考え方が離れていないFWとする
学習にかけられる期間、工数を最小限に
今あるサービスクラスを
(少なくとも多少コードを書けば)
利用できるFWとする
トレードオフで重視したこと
Servletで動作するFWとする
既存のWebアプリと同一のWARファイルに
監視会社へ監視依頼する数が増えない
コストが増えない
同一のアプリケーションとなりシンプル
アプリケーション間で連携するのは複雑そう
トレードオフで重視したこと
みなさんの
プロジェクトでは、
どんな前提条件や
どんなことを
重視しますか?
そして、
僕らの判断理由は
決定:Spring MVC + Doma!
プレゼンテー
ション層
Spring MVC
2.4.3
Cubbyのアノテーションの
使い方と似てる感じ。
WebSocketに対応。
永続化層
Doma
2.6.0
S2Daoと同じく2-Way SQL。
Java 8に対応。
新規DaoはDomaで、既存
Daoは少しずつ置き換え。
コンポーネント
フレームワーク
Spring
2.4.3
S2Daoを含んだ既存資産は
DIコンテナがある方が
利用しやすいと判断。
ちょっと詳細
Cubby ->
Spring MVC
CubbyとSpring MVC似てる?
Cubby
@Accept(RequestMethod.GET)
@Path("index")
public ActionResult index() {
return new Forward("/index.vm");
}
Spring MVC
@RequestMapping(path = "/index",
method = RequestMethod.GET)
public String index() {
return "/index.vm";
}
Cubbyから移る
前提なら、
読めば内容が
理解できる近さ
S2Dao ->
Doma 2
S2DaoとDomaのDaoクラス
S2Dao
@S2Dao(bean = Employee.class)
public interface EmployeeDao {
@SqlFile
@Arguments({ ”employeeId” })
Employee findById(Integer employeeId);
}
S2DaoとDomaのDaoクラス
Doma
@Dao
@AnnotateWith(annotations = {
// 生成されたDAO実装クラスに@Componentを付与する
@Annotation(target = AnnotationTarget.CLASS,
type = Component.class),
// 生成されたDAO実装クラスのコンストラクタに
// @Autowiredを付与する
@Annotation(target = AnnotationTarget.CONSTRUCTOR,
type = Autowired.class)})
public interface EmployeeDao {
@Select
Employee selectById(Integer employeeId);
}
S2DaoとDomaの
SQLテンプレート
S2Dao
select
*
from
employee
where
/*IF employeeId != null */
employee_id = /*employeeId*/9999
-- ELSE department_id is null
/*end*/
S2DaoとDomaの
SQLテンプレート
Doma
select
*
from
employee
where
/*%if employeeId != null */
employee_id = /* employeeId */9999
/*%else*/
department_id is null
/*%end*/
差異は少ない
Domaの
公式ドキュメントに
DIコンテナとの
連携方法も
書いてある
どのようにして
移行したのか?
まず
2014〜15年で
Javaを 6 -> 8
Tomcatを 6 -> 8
へ移行しておいた
基盤のバージョンアップは
すでにクリアしている
ただし、Java 8の機能を
駆使したコードは
まだなかった
同時に当時から
少しずつ時間を取り、
メンバーに
Java 8の機能をレクチャー
新FWの学習だけを
進めればよい状態
としていた
さて、
移行後
アプリケーションは
こういう構造に
Application (WAR)
S2Servlet DispatcherServlet
DIコンテナ DIコンテナ
Cubby Action
Service / Logic
S2Dao DAO
Interceptor
MVC Controller
Service / Logic
S2Dao DAO
Interceptor
Doma2 DAO
同一のJS/CSS/テンプレートファイル
1つのアプリケーション
2つのDIコンテナ
DIコンテナそれぞれで
重複して
オブジェクトを
管理することになる
なお、サーバ起動時間、
ヒープ使用量に
大きな差は出ていない
(だいたい
シングルトンなので)
新旧FWの振り分け
Servlet Mapping / Filter
/*
/2/* 左記以外
Cubby ActionMVC Controller
web.xmlで設定
続いて
既存資産の利用
S2Daoを利用している
Service / Logicを
既存資産として
Springでも利用する
つまり、S2Daoの
Daoオブジェクトを
SpringのBeanとして
管理できればよい!
SpringでS2Daoを使う -その1-
n-ichimuraの日記
2006年!
http://d.hatena.ne.jp/n-ichimura/20061119/1163944881
過去にSpring + S2Daoを
検証した方が!
そのコードを参考に
現在の状況に合わせて
実装した
これで無事
SpringでS2Daoが
利用できた!
続いて
Spring MVCでの
課題
Cubby Actionから
Spring MVC Controller
へ書き換えるのは
いいとして
リクエストパラメータ
のバリデーションは
どうしよう?
Cubby標準のバリデーションから
Spring MVCでBean Validation利用へ
JSR-349 Bean Validation 1.1
Method Validationを使う
コントローラのメソッドを対象に
リクエストパラメータの
バリデーション
なぜ
Method Validation
を選んだのか?
Cubbyからの移行なので、
リクエストパラメータ
をModelに入れる
方式に慣れていない
(メンバーが多い)
サービスの性質上、
複雑なバリデーション
はない
メソッドの引数に
アノテーションを
つけるだけの
Method Validation
でよさそう
という判断です
Cubbyでのバリデーション
アクションクラス
@RequestParameter(name = ”hoge”)
public String hoge;
protected ValidationRules rule =
new DefaultValidationRules() {
@Override
protected void initialize() {
add(”hoge”, new RequiredValidator());
}
};
@Validation(rules = ”rule”,
errorPage = ”/error.vm”)
public ActionResult index() {
リクエストパラメータ
を1つずつ
インスタンス変数で
受け取っていた
メソッドバリデーション
コントローラクラス
@Controller
@Validated
public class HogeController {
@RequestMapping(path = “validate",
method = RequestMethod.POST)
public ModelAndView validate(@NotEmpty String s) {
..
}
Spring MVCでは
リクエストパラメータを
コントローラメソッドの
引数で受け取れる
この引数に対して
アノテーションで
バリデーションを
設定する
メソッドバリデーション
コントローラクラス
@Controller
@Validated
public class HogeController {
@RequestMapping(path = “validate",
method = RequestMethod.POST)
public ModelAndView validate(@NotEmpty String s) {
..
}
Bean Validation仕様と
その実装Hibernate
Validator独自の
バリデーションの
アノテーションは
そこそこ用意されている
バリデーション用
アノテーション
@AssertFalse/True
@DecimalMax/Min
@Digits
@Future/Past
@Max/Min
@Null/NotNull
@Pattern
@Size
@CreditCardNumber
@Email
@NotBlank
@NotEmpty
@Range
@URL
@ScriptAssert
etc.
独自のアノテーションも
もちろん作れる
で、
バリデーションエラーに
なったときは?
例外
javax.validation.
ConstraintViolationException
が発生する
この例外を
Springの
ExceptionHandlerで
処理することにする
ExceptionHandler
@ExceptionHandler(value=ConstraintViolationException.class)
public ModelAndView handleValidationFailure(
ConstraintViolationException e) {
Set<ConstraintViolation<?>> v = e.getConstraintViolations();
...
// Cubbyにおけるバリデーション失敗時のJSON構造と合わせる.
// バリデーション対象の変数名をキー、メッセージのリストを値としたMapに
Map<String, List<String>> f = v.stream()
.collect(
toMap(
c ->
((PathImpl)c.getPropertyPath()).getLeafNode().asString(),
c -> {
List<String> l = new ArrayList<>(1);
l.add(c.getMessage());
return l;
}
これでほぼOKなんだけど
困ったことが…
最初SpringでMethod Validationが
動作せずちょっとハマった
Bean Validationはメッセージリソース
を利用できるが、”{0}は必須です”の
{数字}の置換が使えない
困ったこと
SpringでMethod
Validationを使う時は
MethodValidationPostProcessor
をBean登録する、
のだけど…
MethodValidationPostProcessor
インスタンスの生成時に
LocalValidatorFactoryBean
インスタンスをvalidatorとして
セットしましょう
公式リファレンスには
はっきりそうと書いていない感じ
SpringでMethod Validation
が動作せずちょっとハマった
MethodValidationの
Bean設定
@Bean public LocalValidatorFactoryBean l() {
LocalValidatorFactoryBean l = new LocalValidatorFactoryBe...
ReloadableResourceBundleMessageSource r =
new ReloadableResourceBundleMessageSource ();
r.setBasename("classpath:/messages");
l.setValidationMessageSource(r);
return l;
}
@Bean public MethodValidationPostProcessor
m(LocalValidatorFactoryBean l) {
MethodValidationPostProcessor m =
new MethodValidationPostProcessor();
m.setValidator(l);
return m;
}
Bean Validatorでメッセージに
リソースバンドルの値は設定できる
@NotEmpty(message=“{valid.required}”)
Validationのアノテーションの属性値
はリソースバンドルから読める
@Size(min = 2, message = ”{size.min}”)
size.min={min}桁未満は入力できません
Bean Validationでの
リソースバンドルの利用
今使っているこういうのができなさそう
required={0}は必須です
password=パスワード
name=名前
組み合わせて...
“パスワードは必須です”、“名前は必須です”
Bean Validationでの
リソースバンドルの利用
org.hibernate.validator.messageinterpolation.
ResourceBundleMessageInterpolator
を継承して実装した
length={0}は{1}文字以下です
password=パスワード
five=5
@Size(message = ”{length}{0:password}{1:five}”)
出力:パスワードは5文字以下です
組み合わせられる実装を
作った
難点:プロパティのキーを
複数使ったり、キー文字列
が長いと読みづらい
message = "{valid.maxLength}
{0:hoge.fuga.example.title}{1:max}"
よりよい方法があれば
ぜひ教えてください〜
メッセージリソースは
そのままSpring MVCでも
使えるようになった
ここでまったく
別の観点で課題が
既存のユニットテスト
が動かない!
全クラスにユニットテストがある
S2TigerTestCaseクラスを継承
EasyMock + djUnit + JUnit3
ユニットテスト
ラムダ式を書いたら
djUnitの部分で
エラーが発生!
java.lang.Error: djUnit class load error
(Class : com.example.ExampleClass)
at jp.co.dgic.testing.common.DJUnitClassLoader.findClass
(ClassLoader.java:424)
at jp.co.dgic.testing.common.DJUnitClassLoader.loadClass
(DJUnitClassLoader.java:45)
at java.lang.ClassLoader.loadClass
(ClassLoader.java:357)
at com.example.ExampleClassTest.setUp
(ExampleClassTest.java:79)
djUnitでエラーが発生
djUnitはもう
更新がないため、
Java 8に対応していない
内部で利用している
ASM/BCELの
メジャーバージョンアップ
に対応していない
逆に言うと、
djUnitを使っていない
ユニットテストなら
動作する
新規/変更したクラスのユニットテスト
は、クラス単位ですべて書き換えた
JMockit + JUnit4
ユニットテストの書き換え
モックライブラリ
機能が豊富
APIの呼び出し方が少し変わっている
JMockitとは
JMockit or Mockito + PowerMockで検討
JMockitの方が、djUnitを使ったテストコー
ドを単純に書き換えやすそうに感じた
JMockitにした理由
JMockitへの書き換え
S2TigerTestCase + EasyMock + djUnit
public class ExampleActionTest
extends S2TigerTestCase {
private ExampleAction tester;
@EasyMock(register = true)
private ExampleService service;
public void setUp() { ... }
public void recordIndex() {
...
EasyMock.expect(service.something())
.andReturn(serviceResult);
}
public void testIndex() throws Exception {
Forward actual = tester.index();
assertEquals("/hoge/fuga.vm”, ...);
}
JMockitへの書き換え
JMockit
public class ExampleControllerTest {
@Tested
private ExampleController tester;
@Injectable
private ExampleService service;
@Test
public void testIndex() throws Exception {
...
new Expectations(tester) {
{
service.something();
result = serviceResult;
}
};
String actual = tester.index();
assertThat(actual, is("/hoge/fuga.vm"));
}
JMockitでの書き方が
見慣れない感じですね
しかし
チームへの導入で
とくに抵抗はなく、
みな書き換えができた
ちなみに、
移行した機能の
いわゆる結合テストは
すべて手で再実施…
後の方で
発覚したこと
「あ、S2Velocityの
機能も移行しないと
いけないのか」
S2Velocityを使い、Veloctityツールの
インスタンスをS2Containerで
管理していた
Velocityツールとは
テンプレートファイルで利用する
ユーティリティクラス
Velocityの利用
同一のテンプレートファイルを
Springのときでも動作させるためには
同様の仕組みが必要となる
ToolboxManager/VelocityToolboxView
を実装
SpringのコンテナからVelocityContextに
Velocityツールのインスタンスを渡す仕組み
を実装した
Velocityの利用
これで既存の
テンプレートファイルを
そのままSpring MVCから
利用できるようになった
Tipsを2点
Tips(1)
既存クラス
@Component(name = ”example”,
instance = InstanceType.REQUEST)
public class ExampleClass {
スコープの設定
@Componentアノテーションを読み取って
スコープ設定をするSpringのResolverを
作成
Tips(2)
既存クラス
@Component(name = ”example”,
instance = InstanceType.REQUEST)
public class ExampleClass {
Bean名の設定
@Componentアノテーションを
読み取ってBean名を生成する
SpringのBeanNameGeneratorを作成
その他
2時間のミーティング
主に以前との差分、新しい書き方や
意味を説明
ほぼ抵抗なく習得へ進んだ
メンバーへのレクチャー
Springで動作させる機能を増やす
2016年5月現在で3機能なので
機能単位での独立したサービスにする
マイクロサービス化?
企画要件へ利用できるようになった
技術を適用する
WebSocketを使うとユーザにどんな体験を
提供できるか
今後の展望
S2からの移行、
怖くないよ!
ご清聴
ありがとうございました!
Q&A

More Related Content

What's hot (20)

Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Ryosuke Uchitate
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
shigeki_ohtsu
 
Keycloakの最近のトピック
Keycloakの最近のトピックKeycloakの最近のトピック
Keycloakの最近のトピック
Hitachi, Ltd. OSS Solution Center.
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
 
100%Kotlin ORM Ktormを試してみた
100%Kotlin ORM Ktormを試してみた100%Kotlin ORM Ktormを試してみた
100%Kotlin ORM Ktormを試してみた
Keita Tsukamoto
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
 
Black Belt Online Seminar AWS Amazon S3
Black Belt Online Seminar AWS Amazon S3Black Belt Online Seminar AWS Amazon S3
Black Belt Online Seminar AWS Amazon S3
Amazon Web Services Japan
 
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada
 
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けてJava によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けて
Shigeru Tatsuta
 
GCを発生させないJVMとコーディングスタイル
GCを発生させないJVMとコーディングスタイルGCを発生させないJVMとコーディングスタイル
GCを発生させないJVMとコーディングスタイル
Kenji Kazumura
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Takahiro YAMADA
 
負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう
iRidge, Inc.
 
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Amazon Cognito使って認証したい?それならSpring Security使いましょう!
Ryosuke Uchitate
 
さくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組みさくっと理解するSpring bootの仕組み
さくっと理解するSpring bootの仕組み
Takeshi Ogawa
 
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
【BS13】チーム開発がこんなにも快適に!コーディングもデバッグも GitHub 上で。 GitHub Codespaces で叶えられるシームレスな開発
日本マイクロソフト株式会社
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
NTT DATA Technology & Innovation
 
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #1320210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
20210127 今日から始めるイベントドリブンアーキテクチャ AWS Expert Online #13
Amazon Web Services Japan
 
100%Kotlin ORM Ktormを試してみた
100%Kotlin ORM Ktormを試してみた100%Kotlin ORM Ktormを試してみた
100%Kotlin ORM Ktormを試してみた
Keita Tsukamoto
 
Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版Dockerfileを改善するためのBest Practice 2019年版
Dockerfileを改善するためのBest Practice 2019年版
Masahito Zembutsu
 
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
最近のKeycloakのご紹介 ~クライアントポリシーとFAPI~
Hitachi, Ltd. OSS Solution Center.
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
Amazon Web Services Japan
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
mosa siru
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
NTT DATA Technology & Innovation
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
Takuto Wada
 
Java によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けてJava によるクラウドネイティブ の実現に向けて
Java によるクラウドネイティブ の実現に向けて
Shigeru Tatsuta
 
GCを発生させないJVMとコーディングスタイル
GCを発生させないJVMとコーディングスタイルGCを発生させないJVMとコーディングスタイル
GCを発生させないJVMとコーディングスタイル
Kenji Kazumura
 
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
最適なOpenJDKディストリビューションの選び方 #codetokyo19B3 #ccc_l5
Takahiro YAMADA
 
負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう
iRidge, Inc.
 

Viewers also liked (8)

Introduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUGIntroduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUG
Toshiaki Maki
 
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
Toshiaki Maki
 
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
NTT DATA OSS Professional Services
 
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
 
将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤 将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤
Yoshio Kajikuri
 
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
masakazu matsubara
 
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
Takuya Okada
 
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Kohei Saito
 
Introduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUGIntroduction to Cloud Foundry #JJUG
Introduction to Cloud Foundry #JJUG
Toshiaki Maki
 
Spring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsugSpring Bootで変わる Javaアプリ開発! #jsug
Spring Bootで変わる Javaアプリ開発! #jsug
Toshiaki Maki
 
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
OpenJDKは使い物になるか?OpenJDKの実際と今後 (NTTデータ オープンソースDAY 2015 Autumn 講演資料)
NTT DATA OSS Professional Services
 
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3
日本Javaユーザーグループ
 
将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤 将来 自分で サービスを持ちたいエンジニアの葛藤
将来 自分で サービスを持ちたいエンジニアの葛藤
Yoshio Kajikuri
 
高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!高速なソートアルゴリズムを書こう!!
高速なソートアルゴリズムを書こう!!
masakazu matsubara
 
Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門Java9を迎えた今こそ!Java本格(再)入門
Java9を迎えた今こそ!Java本格(再)入門
Takuya Okada
 
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Kohei Saito
 

Similar to Seasar2で作った俺たちのサービスの今 (20)

DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustSystems Corporation
 
Ignite UI 2012 最新情報 jQuery Mobile 編
Ignite UI 2012 最新情報 jQuery Mobile 編Ignite UI 2012 最新情報 jQuery Mobile 編
Ignite UI 2012 最新情報 jQuery Mobile 編
インフラジスティックス・ジャパン株式会社
 
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティスJsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
 
Visual studio online and Agile
Visual studio online and AgileVisual studio online and Agile
Visual studio online and Agile
Kazushi Kamegawa
 
20130316 mix cpp-yuo
20130316 mix cpp-yuo20130316 mix cpp-yuo
20130316 mix cpp-yuo
OKUBO_Yusuke
 
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 springSwagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
kounan13
 
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsサイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOps
Shuhei Eda
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Shuji Watanabe
 
Qc astah 連携について012
Qc astah 連携について012Qc astah 連携について012
Qc astah 連携について012
Kei Nakahara
 
XPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_HasegawaXPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_Hasegawa
Tokyo, Japan
 
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewAngular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overview
Mitsuru Ogawa
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれ
Yasuaki Matsuda
 
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
 
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
慎一 古賀
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
lalha
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
 
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfkSpring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
学 松崎
 
日本で DevOps を ロケットスタートする方法
日本で DevOps を  ロケットスタートする方法日本で DevOps を  ロケットスタートする方法
日本で DevOps を ロケットスタートする方法
Puppet
 
20170710 hifive-test-meetup
20170710 hifive-test-meetup20170710 hifive-test-meetup
20170710 hifive-test-meetup
Naoya Kojima
 
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
Yoshiharu Hashimoto
 
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
JustSystems Corporation
 
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティスJsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Jsug2015 summer spring適用におけるバッドノウハウとベタープラクティス
Yoichi KIKUCHI
 
Visual studio online and Agile
Visual studio online and AgileVisual studio online and Agile
Visual studio online and Agile
Kazushi Kamegawa
 
20130316 mix cpp-yuo
20130316 mix cpp-yuo20130316 mix cpp-yuo
20130316 mix cpp-yuo
OKUBO_Yusuke
 
Swagger jjug ccc 2018 spring
Swagger jjug ccc 2018 springSwagger jjug ccc 2018 spring
Swagger jjug ccc 2018 spring
kounan13
 
サイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOpsサイドプロジェクトで使う Azure DevOps
サイドプロジェクトで使う Azure DevOps
Shuhei Eda
 
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Javaアプリケーション開発におけるユニットテストとTDDの実践 Java Day Tokyo 2014
Shuji Watanabe
 
Qc astah 連携について012
Qc astah 連携について012Qc astah 連携について012
Qc astah 連携について012
Kei Nakahara
 
XPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_HasegawaXPFes2023_DevOps business-briefing_Hasegawa
XPFes2023_DevOps business-briefing_Hasegawa
Tokyo, Japan
 
Angular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overviewAngular2 rc.1 unit testing overview
Angular2 rc.1 unit testing overview
Mitsuru Ogawa
 
Azure Functions あれこれ
Azure Functions あれこれAzure Functions あれこれ
Azure Functions あれこれ
Yasuaki Matsuda
 
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
JavaでWebサービスを作り続けるための戦略と戦術 JJUG-CCC-2018-Spring-g1
Y Watanabe
 
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
Team Foundation Server / Visual Studio Online を利用したチーム開発の実践
慎一 古賀
 
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
【17-C-2】 クラウド上でのエンタープライズアプリケーション開発
lalha
 
企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624企業におけるSpring@日本springユーザー会20090624
企業におけるSpring@日本springユーザー会20090624
Yusuke Suzuki
 
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfkSpring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
Spring Boot + Doma + AngularJSで作るERP 〜JavaQneバージョン〜 #jqfk
学 松崎
 
日本で DevOps を ロケットスタートする方法
日本で DevOps を  ロケットスタートする方法日本で DevOps を  ロケットスタートする方法
日本で DevOps を ロケットスタートする方法
Puppet
 
20170710 hifive-test-meetup
20170710 hifive-test-meetup20170710 hifive-test-meetup
20170710 hifive-test-meetup
Naoya Kojima
 
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
JRoRの力をJava EE技術を使ってさらに高める10の方法(発動編)
Yoshiharu Hashimoto
 

More from Koichi Sakata (20)

Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVM
Koichi Sakata
 
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Koichi Sakata
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
Koichi Sakata
 
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageIntroduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
Koichi Sakata
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVM
Koichi Sakata
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
Koichi Sakata
 
Bytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte BuddyBytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte Buddy
Koichi Sakata
 
Great Ideas in GraalVM
Great Ideas in GraalVMGreat Ideas in GraalVM
Great Ideas in GraalVM
Koichi Sakata
 
Graal in GraalVM - A New JIT Compiler
Graal in GraalVM - A New JIT CompilerGraal in GraalVM - A New JIT Compiler
Graal in GraalVM - A New JIT Compiler
Koichi Sakata
 
Kanjava 201804 Java News
Kanjava 201804 Java NewsKanjava 201804 Java News
Kanjava 201804 Java News
Koichi Sakata
 
KanJava 201804 Career 思い込みから逃れた先には、可能性がある
KanJava 201804 Career 思い込みから逃れた先には、可能性があるKanJava 201804 Career 思い込みから逃れた先には、可能性がある
KanJava 201804 Career 思い込みから逃れた先には、可能性がある
Koichi Sakata
 
from Java EE to Jakarta EE
from Java EE to Jakarta EEfrom Java EE to Jakarta EE
from Java EE to Jakarta EE
Koichi Sakata
 
Java release cadence has been changed and about Project Amber
Java release cadence has been changed and about Project AmberJava release cadence has been changed and about Project Amber
Java release cadence has been changed and about Project Amber
Koichi Sakata
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
 
KANJAVA PARTY 2017 前説
KANJAVA PARTY 2017 前説KANJAVA PARTY 2017 前説
KANJAVA PARTY 2017 前説
Koichi Sakata
 
“Purikura” culturein Japan andour web application architecture
“Purikura” culturein Japan andour web application architecture“Purikura” culturein Japan andour web application architecture
“Purikura” culturein Japan andour web application architecture
Koichi Sakata
 
デブサミ2017 Javaコミュニティ作ったら人生変わった
デブサミ2017 Javaコミュニティ作ったら人生変わったデブサミ2017 Javaコミュニティ作ったら人生変わった
デブサミ2017 Javaコミュニティ作ったら人生変わった
Koichi Sakata
 
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっているJJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
Koichi Sakata
 
日本からJavaOneに行こう!
日本からJavaOneに行こう!日本からJavaOneに行こう!
日本からJavaOneに行こう!
Koichi Sakata
 
How Scala code is expressed in the JVM
How Scala code is expressed in the JVMHow Scala code is expressed in the JVM
How Scala code is expressed in the JVM
Koichi Sakata
 
Introduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVMIntroduction to JIT Compiler in JVM
Introduction to JIT Compiler in JVM
Koichi Sakata
 
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo)
Koichi Sakata
 
Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)Guide to GraalVM (JJUG CCC 2019 Fall)
Guide to GraalVM (JJUG CCC 2019 Fall)
Koichi Sakata
 
Introduction to GraalVM and Native Image
Introduction to GraalVM and Native ImageIntroduction to GraalVM and Native Image
Introduction to GraalVM and Native Image
Koichi Sakata
 
Introduction to GraalVM
Introduction to GraalVMIntroduction to GraalVM
Introduction to GraalVM
Koichi Sakata
 
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼうGraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
GraalVMで使われている、他言語をJVM上に実装する仕組みを学ぼう
Koichi Sakata
 
Bytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte BuddyBytecode Manipulation with a Java Agent and Byte Buddy
Bytecode Manipulation with a Java Agent and Byte Buddy
Koichi Sakata
 
Great Ideas in GraalVM
Great Ideas in GraalVMGreat Ideas in GraalVM
Great Ideas in GraalVM
Koichi Sakata
 
Graal in GraalVM - A New JIT Compiler
Graal in GraalVM - A New JIT CompilerGraal in GraalVM - A New JIT Compiler
Graal in GraalVM - A New JIT Compiler
Koichi Sakata
 
Kanjava 201804 Java News
Kanjava 201804 Java NewsKanjava 201804 Java News
Kanjava 201804 Java News
Koichi Sakata
 
KanJava 201804 Career 思い込みから逃れた先には、可能性がある
KanJava 201804 Career 思い込みから逃れた先には、可能性があるKanJava 201804 Career 思い込みから逃れた先には、可能性がある
KanJava 201804 Career 思い込みから逃れた先には、可能性がある
Koichi Sakata
 
from Java EE to Jakarta EE
from Java EE to Jakarta EEfrom Java EE to Jakarta EE
from Java EE to Jakarta EE
Koichi Sakata
 
Java release cadence has been changed and about Project Amber
Java release cadence has been changed and about Project AmberJava release cadence has been changed and about Project Amber
Java release cadence has been changed and about Project Amber
Koichi Sakata
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata
 
KANJAVA PARTY 2017 前説
KANJAVA PARTY 2017 前説KANJAVA PARTY 2017 前説
KANJAVA PARTY 2017 前説
Koichi Sakata
 
“Purikura” culturein Japan andour web application architecture
“Purikura” culturein Japan andour web application architecture“Purikura” culturein Japan andour web application architecture
“Purikura” culturein Japan andour web application architecture
Koichi Sakata
 
デブサミ2017 Javaコミュニティ作ったら人生変わった
デブサミ2017 Javaコミュニティ作ったら人生変わったデブサミ2017 Javaコミュニティ作ったら人生変わった
デブサミ2017 Javaコミュニティ作ったら人生変わった
Koichi Sakata
 
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっているJJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
JJUG CCC 2016 fall バイトコードが君のトモダチになりたがっている
Koichi Sakata
 
日本からJavaOneに行こう!
日本からJavaOneに行こう!日本からJavaOneに行こう!
日本からJavaOneに行こう!
Koichi Sakata
 
How Scala code is expressed in the JVM
How Scala code is expressed in the JVMHow Scala code is expressed in the JVM
How Scala code is expressed in the JVM
Koichi Sakata
 

Recently uploaded (8)

学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
Toyo University
 
永島 陸, 徳丸 晴天, 畑 玲音, 松下 光範. イベントにおける地図の情報量がユーザ行動へ与える影響に関する分析, 情報処理学会研究報告, Vol.2...
永島 陸, 徳丸 晴天, 畑 玲音, 松下 光範. イベントにおける地図の情報量がユーザ行動へ与える影響に関する分析, 情報処理学会研究報告, Vol.2...永島 陸, 徳丸 晴天, 畑 玲音, 松下 光範. イベントにおける地図の情報量がユーザ行動へ与える影響に関する分析, 情報処理学会研究報告, Vol.2...
永島 陸, 徳丸 晴天, 畑 玲音, 松下 光範. イベントにおける地図の情報量がユーザ行動へ与える影響に関する分析, 情報処理学会研究報告, Vol.2...
Matsushita Laboratory
 
林 沙也加, 畑 玲音, 松下 光範. 既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討, 第17回データ工学と情報マネジメン...
林 沙也加, 畑 玲音, 松下 光範. 既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討, 第17回データ工学と情報マネジメン...林 沙也加, 畑 玲音, 松下 光範. 既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討, 第17回データ工学と情報マネジメン...
林 沙也加, 畑 玲音, 松下 光範. 既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討, 第17回データ工学と情報マネジメン...
Matsushita Laboratory
 
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアルLoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
CRI Japan, Inc.
 
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptxダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ssuserfcafd1
 
LoRa/LoRaWAN 5インチタッチスクリーン LTS5 日本語ユーザーマニュアル
LoRa/LoRaWAN 5インチタッチスクリーン LTS5 日本語ユーザーマニュアルLoRa/LoRaWAN 5インチタッチスクリーン LTS5 日本語ユーザーマニュアル
LoRa/LoRaWAN 5インチタッチスクリーン LTS5 日本語ユーザーマニュアル
CRI Japan, Inc.
 
2025 04 Dayne
2025 04 Dayne2025 04 Dayne
2025 04 Dayne
arts yokohama
 
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdfJaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
MaiKaneko4
 
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
学会発表資料(2025/3/3):LLMを利用したSNSの投稿内容のインタラクティブマップ表示
Toyo University
 
永島 陸, 徳丸 晴天, 畑 玲音, 松下 光範. イベントにおける地図の情報量がユーザ行動へ与える影響に関する分析, 情報処理学会研究報告, Vol.2...
永島 陸, 徳丸 晴天, 畑 玲音, 松下 光範. イベントにおける地図の情報量がユーザ行動へ与える影響に関する分析, 情報処理学会研究報告, Vol.2...永島 陸, 徳丸 晴天, 畑 玲音, 松下 光範. イベントにおける地図の情報量がユーザ行動へ与える影響に関する分析, 情報処理学会研究報告, Vol.2...
永島 陸, 徳丸 晴天, 畑 玲音, 松下 光範. イベントにおける地図の情報量がユーザ行動へ与える影響に関する分析, 情報処理学会研究報告, Vol.2...
Matsushita Laboratory
 
林 沙也加, 畑 玲音, 松下 光範. 既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討, 第17回データ工学と情報マネジメン...
林 沙也加, 畑 玲音, 松下 光範. 既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討, 第17回データ工学と情報マネジメン...林 沙也加, 畑 玲音, 松下 光範. 既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討, 第17回データ工学と情報マネジメン...
林 沙也加, 畑 玲音, 松下 光範. 既存データセットの活用事例に基づく新規データセットの活用方法推薦に関する検討, 第17回データ工学と情報マネジメン...
Matsushita Laboratory
 
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアルLoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
LoRaWAN 5個マルチプッシュボタン – PB05-L  日本語ユーザーマニュアル
CRI Japan, Inc.
 
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptxダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ダイアグラム思考_Yumemi.grow_読書シェア会2025_3_26.pptx
ssuserfcafd1
 
LoRa/LoRaWAN 5インチタッチスクリーン LTS5 日本語ユーザーマニュアル
LoRa/LoRaWAN 5インチタッチスクリーン LTS5 日本語ユーザーマニュアルLoRa/LoRaWAN 5インチタッチスクリーン LTS5 日本語ユーザーマニュアル
LoRa/LoRaWAN 5インチタッチスクリーン LTS5 日本語ユーザーマニュアル
CRI Japan, Inc.
 
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdfJaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
JaSST2025-D5-1開発者手動の自動テスト導入によるバグ早期発見.pdf
MaiKaneko4
 

Seasar2で作った俺たちのサービスの今