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
wrongwrong
April 27, 2023
Technology
0
380
jackson-module-kotlin 2.15 リリースノート解説
4/24にリリースされたjackson-module-kotlin 2.15のリリースノートに関するざっくり解説です。
wrongwrong
April 27, 2023
Tweet
Share
More Decks by wrongwrong
See All by wrongwrong
スター1.1kリポジトリのメンテナやってたら確定申告が確定した話
k163377
1
90
jackson-module-kotlin 2.19の新機能とJackson 3.0に向けた取組
k163377
1
61
jackson-module-kogeraの紹介
k163377
0
370
Kotlin向けOSSに貢献してきて感じたアレコレ
k163377
0
280
jackson-module-kotlinを読もう!
k163377
0
1.6k
Java Reflectionから見たvalue class
k163377
0
620
Other Decks in Technology
See All in Technology
AIエージェント入門
minorun365
PRO
32
18k
RayでPHPのデバッグをちょっと快適にする
muno92
PRO
0
190
Fraxinus00tw assembly manual
fukumay
0
120
Ruby on Railsで持続可能な開発を行うために取り組んでいること
am1157154
3
160
AWS Well-Architected Frameworkで学ぶAmazon ECSのセキュリティ対策
umekou
2
150
AIエージェント元年@日本生成AIユーザ会
shukob
1
230
OPENLOGI Company Profile for engineer
hr01
1
20k
Snowflakeの開発・運用コストをApache Icebergで効率化しよう!~機能と活用例のご紹介~
sagara
1
490
サイト信頼性エンジニアリングとAmazon Web Services / SRE and AWS
ymotongpoo
7
1.7k
LINEギフトにおけるバックエンド開発
lycorptech_jp
PRO
0
340
大規模アジャイルフレームワークから学ぶエンジニアマネジメントの本質
staka121
PRO
3
1.3k
LINE NEWSにおけるバックエンド開発
lycorptech_jp
PRO
0
300
Featured
See All Featured
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Scaling GitHub
holman
459
140k
Documentation Writing (for coders)
carmenintech
67
4.6k
Navigating Team Friction
lara
183
15k
Code Review Best Practice
trishagee
67
18k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
How GitHub (no longer) Works
holman
314
140k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
40
2k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
The Pragmatic Product Professional
lauravandoore
32
6.4k
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