GitHub の通知をちゃんと使えるように設定する


はじめに

今回初めて仕事で GitHub (GitHub Enterpsise Cloude) を使うことになりました。

始める前は少しアコガレなんかも有ったりしたのですが、いざやってみると、思ったほど素敵では無いですね…​ これまでプライベートスペースだったところに仕事が入り込んでくる居心地の悪さよ。 後日、他の人に聞いてみたり見てみたりした感じ、(規約的にはまずそうですが)アカウントを使い分けている人もそれなりに居そうで、自分もそうすりゃ良かったかも、と思う始末です。

Read more ⟶

Elixir 開発環境をセットアップする


はじめに

改訂新版 Elixir/Phoenix 初級①: はじめの一歩 という書籍で Phoenix というウェブフレームワークの勉強をはじめました。

Elixir という言語で実装していくことになりますが、本書籍は Elixir 言語入門としても優れているので、少なくとも本書を読み進めていくに当たって、言語仕様のことで困ることは無さそうです。

Read more ⟶

自分の作成したGitブランチを表示する


リモートブランチに一時的なブランチ、テスト的に作ったブランチなどをpushしていたのを掃除したくなりました。

複数人で共同作業するために利用しているので、どれが自分のブランチなのかをまずリスト化したかったので、どうすれば出力できるか調べました。

Read more ⟶

WSL2上のGUIアプリケーションを動かす


Tauri の開発環境を Windows10 の WSL2 に移行するために、 WSL2 上の GUI アプリを Windows で表示するようにセットアップしました。

とは言いつつ、既に次の手順でセットアップしたことがあるので、今回はこれが動くかどうかを確認しただけですが。

Read more ⟶

WSL2上にDockerをインストールする


現在、 Windows で Docker を利用するには大きく2つ方策があるのかなと思います。

自分は元々 Ubuntu 上で Docker を利用してきたので、馴染みのある後者を選択することにしました。 (ちなみにこだわりが無いのなら前者の方が良いと思います)

Read more ⟶

Kotlin で JPA エンティティクラスを定義する


Kotlin で JPA エンティティを実装しようと思って調べた結果をまとめた記事です。

まとめ:

  • プロジェクト構成について

    • kotlin-jpa compiler plugin を適用する

    • all-open compiler plugin を適用し、 @Entity, @Embeddable, @MappedSuperclass を対象に設定する

Read more ⟶

Jacksonでコンストラクタを利用してデシリアライズ


Jackson は引数なしコンストラクタが必要、というblogを目にしましたが、正しくありません。

  • @JsonCreator を付与することでそのコンストラクタを使ってデシリアライズするように指示できます。

    • コンストラクタが1つしか無い場合は省略できます。

Read more ⟶

git worktree を利用していると git-commit-id-maven-plugin でエラー


…​になりました。

コマンドライン引数でスキップさせるには、 #278 で導入された maven.gitcommitid.skip オプション(現時点最新版の該当コードリンク)を利用して、

mvn -Dmaven.gitcommitid.skip package

などとすれば良さそうです。

Read more ⟶

JUnit + Mockito テストケースを Kotest + MockK に書き換える


Kotest + MockK の組み合わせは Kotlin ではメジャー…​かと思いきや検索してみても公式の

にあるような例しか見つかりませんでした。 Mockito で言うところの @Mock@InjectMocks を使ってモックを差し込みたいんじゃい! ということでサンプルです。

Read more ⟶

Kotlin で JUnit4 のテストケースを書く


  • JUnit4 / Parameterized

  • Mockito 利用

  • テスト対象が Lombok, MapStruct 使用

な状況で Kotlin でテストコードを書きます。

先にまとめを書いておきます。

  • (IntelliJ で Java のコードを .kt にペーストすると Kotlin コードに変換してくれるが、コレジャナイ感溢れるコードになったのであまり自動変換コードを信用するのは危険かも)

  • @Mock@InjectMocks を付与したフィールドは lateinit var

  • static メソッドを書きたい場合は companion object で囲って @JvmStatic アノテーションを付与する

    • 今回の場合は JUnit4 のパラメータ供給メソッド(@Parameters)が該当

Read more ⟶

Kotolin のプロジェクトを Maven で作成する


入門書を一通り読み終えたのでサンプルプロジェクトを作成しようと思いました。

JetBrains がメンテナンスしている archetype が利用できそうです。

mvn archetype:generate -DarchetypeGroupId=org.jetbrains.kotlin -DarchetypeArtifactId=kotlin-archetype-jvm

IntelliJ IDEA から作成した場合も似た感じの pom.xml が作成されるかなと思います。

Read more ⟶

IntelliJ 最新版(2021.3) で Kotlin と Lombok が共存できない


[追記 2022-01-17] 今回リリースされた 213-1.6.10-release-944-IJ6461.79 で修正されたようです(ただし .idea ディレクトリを削除してからインポートし直す必要がありました)。

Kotlin 1.5.20 から Lombok compiler plugin というものが提供されるようになり、 Kotlin から自動生成される getter などにアクセスできるようになりました(※実験的機能なようですが)。

Read more ⟶

Kotlin in Action (Kotlin イン・アクション) 読書メモ


Kotlin 関連書籍について

書籍 Kotlinイン・アクション を読んでいます。

2022 年 1 月現在の Kotlin 最新バージョン1.6.10 であるのに対し、本書が解説しているのは 1.0 のようなので、役に立つのかな…と当初は考えていましたが、今のところ、これは駄目だ、というところは無さそうです。 (気になる人はドキュメントの "Earlier versions" (このあたり) で新機能について説明があります)

Read more ⟶