Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
jackson-module-kotlin 2.15 リリースノート解説
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
wrongwrong
April 27, 2023
Technology
490
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
jackson-module-kotlin 2.15 リリースノート解説
4/24にリリースされたjackson-module-kotlin 2.15のリリースノートに関するざっくり解説です。
wrongwrong
April 27, 2023
More Decks by wrongwrong
See All by wrongwrong
関数呼び出しに対してコード生成したい!
k163377
1
120
スター1.1kリポジトリのメンテナやってたら確定申告が確定した話
k163377
1
180
jackson-module-kotlin 2.19の新機能とJackson 3.0に向けた取組
k163377
1
170
jackson-module-kogeraの紹介
k163377
0
460
Kotlin向けOSSに貢献してきて感じたアレコレ
k163377
0
430
jackson-module-kotlinを読もう!
k163377
0
2k
Java Reflectionから見たvalue class
k163377
0
760
Other Decks in Technology
See All in Technology
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
120
4人目のSREはAgent
tanimuyk
0
360
CVE-2026-20833_脆弱性対応とAES 化について
jukishiya
0
340
そのタスクオンスケですか?
poropinai1966
0
110
デジタル・デザイン構想 by Sayaka Ishizuka
y150saya
0
180
打造你的 AI 工作流:Agent Skill + MCP 實戰工作坊
appleboy
0
360
製造現場での生成AIの活用、およびエージェントAIの実装のあり方、AVEVAの取り組み
iotcomjpadmin
0
210
開発組織のAI活用レベルを可視化する「エンジニア版AI番付」の取り組み
fuzzy31u
0
100
Text-to-SQLをAgentCoreで実現し、生成されるSQLの精度を定量的に評価する
yakumo
2
390
『AIに負けない』より『AIと遊ぶ』」〜ワクワクが最強のテスト・QA学習戦略_公開用
odan611
1
350
Baseline対応のDOMの型定義を作った
uhyo
2
560
ループエンジニアリングでE2Eテストを実践
noriyukitakei
0
160
Featured
See All Featured
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
590
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
SEO for Brand Visibility & Recognition
aleyda
0
4.6k
Exploring anti-patterns in Rails
aemeredith
3
430
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
550
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
400
From π to Pie charts
rasagy
0
220
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
180
BBQ
matthewcrist
89
10k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Transcript
jackson-module-kotlin 2.15 リリースノート解説 1
自己紹介 宮田 木織 株式会社justInCaseTechnorogiesバックエンドエンジニア Kotlin で Spring WebFlux してます 2023年1月から
jackson-module-kotlin のメンテナになりました アウトプットしているアカウント Qiita: @wrongwrong GitHub: k163377 2
jackson-module-kotlin の状況について 去年1年ほどほぼメンテナ不在だった それまでもあまりアクティブにはメンテナンスはされていなかった 今年に入ってから自分がメンテナになった 権限が増えたので色々な変更を順次導入中 issue整理も頑張っており、100以上のcloseした 3
今日話すこと 4/24に jackson-module-kotlin 2.15 が正式リリース 沢山有る変更をそれぞれざっくり解説 影響の大きな変更も有ります! 皆様の持つテスト等を通じて動作確認にご協力頂けると嬉しいです 補足 特に重要度が高い内容は太字で表記します
#396 は関わる前で良く知らないので飛ばします 4
キャッシュ関係の改善 #627: コンストラクタとファクトリ関数のクリエイターキャッシュの統合 両者の利用が偏った際に非効率だったため #628: 不要なキャッシュの削除 KClass への変換キャッシュの削除( Kotlin 側でキャッシュされていたため)
コード内から利用が無くなっていたキャッシュの削除 #629: 一部リフレクションの結果をキャッシュしないように変更 SoftReference 内の値をキャッシュしたためメモリ消費が倍増? a. 同じ値への参照がキャッシュされる b. GC が走り、 kotlin-reflect 側の値がクリアされる c. kotlin-reflect 側で値が別途初期化(同一データ・別インスタンス) 5
MissingKotlinParameterException 関連 #647: MissingKotlinParameterException に廃止予定を追加 特にデシリアライズ時にパラメータが足りないと throw されるもの 今後は親クラスの MismatchedInputException
を throw 予定 廃止理由 このクラスを throw する強い理由が無い このクラスの持つプロパティが Serializable の規約に違反している このクラスの持つプロパティによって実装を阻害される機能が有る ( StrictNullChecks オプションの大幅な性能改善) #654: Serializable の規約に違反している問題への仮対応 6
value class のシリアライズサポートの改善関係 #659: value class のシリアライズ方式の変更 今までは Serializer を使っていたが、
Converter を使う形に変更した これによって以下の改善が行われた getter 等に付与した型が関わるアノテーションが機能するようになった JsonSerialize 等 null 非出力オプションが機能するようになった (合わせて一部バグの修正も行った) #666: JsonValue アノテーションのフラグを無視しないよう修正 #667: value class での JsonKey アノテーションのサポート 7
その他不具合の修正 #631: addSerializer / addDeserializer の拡張関数の軽微なバグ修正 普通に呼び出すと2重登録になっていた Integer 等のラッパー型で呼び出すと意図せぬ挙動になっていた #634:
ReflectionCache で Serializable を継承する形に修正 KotlinModule の Serializable 関係の規約に違反していたため #641: is から始まるプロパティ関連のバグ修正 特定の状況でアノテーションが機能しない isFoo と foo プロパティを同時に定義するとシリアライズでバグる (割と怖い変更なので、動作検証お願いしたいです) 8
その他改善 #554: addMixIn の便利な拡張関数の追加 addMixIn<Foo, FooMixIn>() みたいに書ける( ::class.java が不要になった) #580:
Unit の KType の by lazy 化 初期化負荷の高い値であり、特定のユースケースで負荷軽減が見込める 利用頻度は高く、多くのユースケースでは影響が小さそう #646: Kotlin 1.4 サポートの廃止 Deprecated な Kotlin バージョンだと KotlinModule 初期化時にエラーになる #652: 利用の無くなっていたメソッドの削除 #665: Sequence をシリアライズする際の挙動の改善 これまでは一度 List に変換することでメモリに値をロードしてしまっていた ( Server-Side Kotlin Meetup をきっかけに修正しました!) 9
改善点ざっくりまとめ 全体的にメモリ消費量が低減された(はず) 幾つかのバグが解消された value class のシリアライズサポートが改善された 幾つかの廃止・廃止予定の追加 便利な関数が増えた 10
宣伝 jackson-module-kotlin の実験的プロジェクトをやっています ProjectMapK/jackson-module-kogera jackson-module-kogera の紹介スライド 軽量・高機能・高性能がウリです ここで開発した内容が本家に反映されていきます スターなどよろしくお願いします! 11