IDをLongやStrnigで宣言した場合の問題点 Kotlinに限らない話ですが、アプリケーション内でIDを扱うとき、Long型、String型のようなGeneralな型を使うと、実装ミスで恐ろしいセキュリティバグにつながる可能性があります。 例えば以下のようなケースを考えます。 ※ 以降のコードはすべてKotlinで書かれていますが、Kotlinに限らない別のプログラム言語に通じる一般的な話だと思っています。 data class User(val id: Long) data class Company(val id: Long) val userId = 1L val companyId = 100L //userIdとcompanyIdを間違えて指定!!別ユーザのデータが取得されてしまうセキュリティ事故に! val user = User(companyId) 普通にテストしてい
関数型プログラミングの手助けをするKotlin製のライブラリであるArrowを使うためには、基本的な用語を知っている必要があります。 今回は主にArrowに記載の内容を元に、型コンストラクタと高カインド型の概要をまとめます。 Arrowにおける型コンストラクタについて 型コンストラクタとは少なくとも1つのジェネリックパラメータを持つクラス(インタフェース)である(例えば、 ListK<A>、Option<A>(※1)のAがジェネリックパラメータに相当) ListK<A>のAに対して、Int型を割り当てた場合、ListKはListK<Int>となる。このとき、ListKにはジェネリックパラメータではなく、Intと言う具体的な型が指定されているため、型コンストラクタとは見なされなくなり、通常の「型」と見なされるようになる。 複数のパラメータを持つ型コンストラクタ(例:Either<L, R>)
Ukraine has the right to return to all occupied territories and be reimbursed for all harm done by the invader. Help Ukraine to build fleet of Naval and Aerial drone with official President of Ukraine initiative ⇢ Ukraine has the right to return to all occupied territories and be reimbursed for all harm done by the invader. Help Ukraine to build fleet of Naval and Aerial drone with official Presid
MockK is skyrocketing in Kotlin world during the last year. Users actively help to improve it by submitting issues and suggesting improvements. Last months, MockK introduced many powerful features and I am pleased to share them with you. This article is not short, because I want to share a lot about new possibilities you can use to improve your tests. Hierarchical mockingSince a very recent versio
第10章では、アノテーションプロセッサーを使用して、Kotlin のクラスからJavaとKotlinのコードを⾃動⽣成する⽅法について紹介します。 全章を一括して購入されたい方はこちらの記事をご購入ください。https://note.mu/nikkei_staff/n/n44623c9b9ab4 ⽇経電⼦版のアプリチームでAndroidアプリを開発しているやまんだ/@ymndです。 本稿では、Kotlin のクラスから、Java とKotlin のコードを⾃動⽣成する⽅法について紹介します。ここでいうコードの⾃動⽣成とは、対象となるクラスに⽬印を付けるだけで、コンパイルのタイミングで⾃動的にコードが⽣成される機能のことです。 まずアノテーションプロセッサーを動作させるための環境構築を⾏い、実装作業の全体像を掴みます。次にKotlin でアノテーションプロセッサーを使う際に対⾯する型の問題に
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く