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
460
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
150
jackson-module-kotlin 2.19の新機能とJackson 3.0に向けた取組
k163377
1
130
jackson-module-kogeraの紹介
k163377
0
440
Kotlin向けOSSに貢献してきて感じたアレコレ
k163377
0
410
jackson-module-kotlinを読もう!
k163377
0
1.9k
Java Reflectionから見たvalue class
k163377
0
730
Other Decks in Technology
See All in Technology
Oracle Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
1.5k
Agent Skills 入門
puku0x
0
870
技術キャッチアップ効率化を実現する記事推薦システムの構築
yudai00
2
130
GitHub Copilot CLI 現状確認会議(2026年2月のすがた)
torumakabe
4
570
バイブコーディングで作ったものを紹介
tatsuya1970
0
170
Claude Codeはレガシー移行でどこまで使えるのか?
ak2ie
0
230
Getting started with Google Antigravity
meteatamel
0
330
AIで「ふとした疑問」を即座に検証する 〜定量で圧倒するN1理解〜
kakehashi
PRO
3
720
AWSが推進するAI駆動開発ライフサイクル入門 〜 AI駆動開発時代に必要な人材とは 〜/ introduction_to_aidlc_and_skills
fatsushi
7
4.6k
LINEアプリ開発のための Claude Code活用基盤の構築
lycorptech_jp
PRO
1
780
欲しいを叶える個人開発の進め方 / How to Run an Indie Project That Brings Your Ideas to Life
endohizumi
0
320
Goで実現する堅牢なアーキテクチャ:DDD、gRPC-connect、そしてAI協調開発の実践
fujidomoe
3
610
Featured
See All Featured
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
We Are The Robots
honzajavorek
0
180
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
400
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
110
The Cost Of JavaScript in 2023
addyosmani
55
9.7k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
620
Context Engineering - Making Every Token Count
addyosmani
9
680
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Google's AI Overviews - The New Search
badams
0
920
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
63
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