WireMockとは
Web APIのモックとかするやつです。
とあるリクエストを投げると、とあるレスポンスを返すなど設定できる。
WireMockはリクエストの比較がすぐに破綻する
WireMockのツラミとしてmatcherが脆いというのがある。
意味的には等しいリクエストであっても、リクエストが完全一致とかしないと別ものと扱われてツラいなどあった。
Web APIのモックとかするやつです。
とあるリクエストを投げると、とあるレスポンスを返すなど設定できる。
WireMockのツラミとしてmatcherが脆いというのがある。
意味的には等しいリクエストであっても、リクエストが完全一致とかしないと別ものと扱われてツラいなどあった。
こんにちは、美味しんぼ はあんまりちゃんと読んだことがないyy_yankです。
社内で話題になってたので、気になり始めて調べて自分なりに整理したものを記事にしました。
間違ってたらご指摘ください
分配束縛、分割代入、分解宣言。
構文上はほぼ似たことを行っていそうなのに様々な名前が存在している。
こういうやつ
const [first, second] = [1, 2]
では、何がどうなっててどういう違いがあるか。
気になりますよね?
調べてみました!(いかがでしたか構文)
やるぞやるぞ#KotlinFest pic.twitter.com/tVmDFK1kg9
— やんく✌('ω')✌ (@yy_yank) December 9, 2022
Kotlin Fest2022、無事本番を終えることが出来て安心しています。
スピーカーの皆様、参加者の皆様、スポンサーの皆様、運営メンバーのみんな、デザイナーさん、お疲れ様でした!ありがとうございました!
特に自分としてはスピーカーの方、セッション応募を考えてくれた方。たくさんの方にご連絡させていただきお手数をおかけしました。本当に感謝しています。
こちらのイベントでLT発表させていただきました。
https://server-side-kotlin-meetup.connpass.com/event/252355/
改めて見ていてただいた方、運営の方ありがとうございました!
発表資料はこちらです。
こんにちは、こちらの記事はKotlin Advent Calendar 2021の16日目の穴埋め記事です。
え?もう2022年じゃないのって?
あけおめということでお許しください。
今回は、Kotlinの新しいコンパイラのご紹介です。
こんにちは、yy_yankです。
こちらは Kotln Advent Calendar 2021(https://qiita.com/advent-calendar/2021/kotlin)の18日目の記事です
最近(?)JDK17が出ましたね。
ちゃんとKotlinはJDK17で動くのでしょうか?
実際に確かめてみました!
どうも、Kotlinウォッチャーです。
これは、Kotlin アドベントカレンダー (https://qiita.com/advent-calendar/2019/kotlin)の代理投稿になるかもしれないし、
ならないかもしれません、という記事です。
個人的に観測していたKotlinの2019年について振り返ってみようと思います。
Kotlin Fest 2019行ってきました。
https://kotlin.connpass.com/event/129860/
さて、Java is still freeなわけですが
https://medium.com/@javachampions/java-is-still-free-2-0-0-6b9aa8d6d244
https://www.sakatakoichi.com/entry/javaisstillfree
どのJDKをどのバージョンで使うかねぇという話がありますよね。
JDK 8を使い続けるという選択肢もあります。
いろんなベンダーがLTS(long term support)としているJDK 11を使うということも出来ます。
色々考えてみましょう。
Kotlin ver 1.3-M1が出ました。
See what’s coming in Kotlin 1.3-M1
https://blog.jetbrains.com/kotlin/2018/07/see-whats-coming-in-kotlin-1-3-m1/
毎回アップデートがあるたびに変更内容を眺めてはいるのだけど、
今回は久しぶりに面白いバージョンアップだなあと思いました!
など。
そして今回もshirajiさんみたいにKotlinへコミットしてる日本の方もいて良いですねー。
https://github.com/t-kameyama
多分日本の方?だと思う。
2018/06/27にJetBraninsのhadiさんがくるって言うことで、
Kotlin Developers Meetupに行って来ました!
Kotlin Developers Meetup
https://kotlin.connpass.com/event/90679/
準備は@satorufujiwaraさんに任せっぱなしで、
最後ゴミの片付け手伝ったレベルでした…!
すんません!
togetterでツイートまとめましたのでこちらで雰囲気はわかると思います。
https://togetter.com/li/1243940
(ツイート載せて欲しくない方は編集自由にしていますので削除お願いします!)
当日の映像が動画になっています!
@satorufujiwaraさん ありがとうございます!
https://www.youtube.com/watch?v=TGdAvY5i-sU&feature=youtu.be
DSLの話をしていました。
hadiさんはDSLの話をしていることが多い気がしますね。
今回もジョーク混じえつつの良いトークを聞けました!
FSM DSL in Kotlin
https://speakerdeck.com/tomoya0x00/fsm-dsl-in-kotlin
@tomoya0x00 さん
Kotlin Multiplatform(?)
https://speakerdeck.com/panini/kotlin-multiplatform
@callipanさん
Spring FuをGraalVMで
的なやつ
資料アップしてない?
ブログ記事
https://taro.hatenablog.jp/entry/2018/07/02/090458
@ngsw_taroさん
ビズリーチの方もLTされてましたが、、
みつけたらこの記事に追加します!
あと@yanzmさんが自分の子供にマイクラのmodをKotlinで書いてもらった?的なLTもありました!
せっかくなので、hadiさんに話しかけようと近づいて行ったのですが
英会話ほぼ出来ないので 「I like wasabi」とだけ伝えました。
https://github.com/wasabifx/wasabi
「wasabiはもうkillしたよ」的なこと言われましたw
https://kotlinlang.slack.com/のslackチャンネルとかから#wasabiが消えてたんで知ってたんですけど、直接言われるとなんとなく寂しいですね
wasabiじゃなくてもうktor使って!てことらしいですね。
https://github.com/ktorio/ktor
@shiraj_i さん とか @callipan さんが普通に英語で会話してるのでホォー羨ましいなと思いつつ、
どういう会話かはちょっとは聴き取れるので横で聴いたりしてすごしました。
hadiさんはエヴァンジェリストチームなので世界各国の色々なところを行脚してて、
そのエピソードトークとかがメインだったような気がします!
実際に中の人に会って話す機会はなかなか貴重なことだと思うので
良いイベントでした!
会場提供 & 準備ありがとうございました!
hadiさんまたきてください!
今回の記事は、ただのニューストピックです。
Kotlin Confが羨ましすぎてウォーッてなったので、
ca.kt(Kotlin Conf報告会)に行ってきました。
https://cyberagent.connpass.com/event/70423/
一応、レポートというかログというか思ったことというか。
残しておこうと思います。
夏のKotlin LT祭と題して、
日本Kotlinユーザーグループ(JKUG)主催でLTイベントを行いました。
会場を提供していただいたDeNAさん、ありがとうございました!!!!!!
つまりこういうめんどくささがあります。
val f1 : () -> Unit = {}
f1() f.invoke() // OK
val f2 : (() -> Unit)? = null
f2() //コンパイルエラー
f2?.invoke() // OK
f1()という関数呼び出しは、実は演算子オーバーロードという機能によって実現しています。
f1()とコードを書いた時 f.invoke() が呼び出されるというものです。
f1は () -> Unit 、つまり引数なしでUnitを返す関数型をlambdaで表現したものですが
実体の型はFunction0<Unit> というインターフェースです。
Function0の実装はこうなっています。
// kotlin.jvm.functions
// Functions.kt
public interface Function0 <out R > : Function<R> {
/* Invokes the function. */
public operator fun invoke(): R
}
f1はFunction0自身であり、invokeが実行されます。
これがf2のようにnullableとなった場合にKotlinの演算子オーバーロードはそれを許しません。
f2?.invokeという風に厳密にかけとコンパイルエラーになります。
つまり、nullableな変数の関数呼び出し(nullableな型をレシーバーとする関数呼び出し)をしにくいということです。
前述したコードのf2を、f2?()とかって実行出来れば良いのではという感じもしますが、
Kotlinはそういった言語設計を行っていないようです。
f2?()という呼び出しをサポートする代わりに明示的にf2?.invoke()と書きなさい、としています。
これはnull安全的観点で言うと良いような気もしますが、
突然普段は演算子オーバーロードによって隠蔽されているinvokeという謎関数が出てきた感じになるので、実装者としては混乱するかもしれません。
推測ですが、f2?()とかという書き方をサポートしなかったのは
単純に?を使った記法を利用できる箇所を限定的にしたかったのと、
コンパイラの字句解析とかを簡単にしたい(めんどい)というのがあったのではないかと思います。
nullableだと演算子オーバーロードが利用できないかというとそうではありません。
拡張関数を利用すれば良いのです。
たとえば次のように実装すればinvokeの呼び出しも演算子オーバーロードを介して利用可能です。
operator fun <R> Function0<R> ?.invoke() = this?.invoke()
val f2 : (() -> Unit)? = null
f2() // コンパイル通る
ただし、Kotlinの標準ライブラリとしてわざわざこういった機能を提供せず
f2?.invoke()と書かせているのは、関数を実行したつもりで関数を実行していないなどのバグの元になるのを防ぐといった意図がありそうですしあまりお勧め出来るソリューションではありません。
もう一つ、理由として考えるられるのは
nullableなものを実行した時の対処というのは大体においてコーディングしている側に委ねられるものだと思います。
たとえばBigDecimal + BigDecimal で返されるのは2つのインスタンスの値を加算したものであるのは自明という感じがしますが
BigDecimal? + BigDecimal
BigDecimal? + BigDecimal?
などは何を返すかはちょっと考える必要があります。
あと、単純に標準ライブラリが膨らみますね。
悪ふざけコードです。
https://gist.github.com/yyYank/02d6c7f64532bb30cd0e63563d90feb2