Value Object(値オブジェクト)についての覚え書き
2022年5月中旬から下旬にかけて Value Object(値オブジェクト) についての議論がさかんに行われていました。
そのときに書き起こされた文章へのリンクを、(分かる範囲で)時系列順に残しておきます。
…GitHub の通知をちゃんと使えるように設定する
はじめに
今回初めて仕事で GitHub (GitHub Enterpsise Cloude) を使うことになりました。
始める前は少しアコガレなんかも有ったりしたのですが、いざやってみると、思ったほど素敵では無いですね… これまでプライベートスペースだったところに仕事が入り込んでくる居心地の悪さよ。 後日、他の人に聞いてみたり見てみたりした感じ、(規約的にはまずそうですが)アカウントを使い分けている人もそれなりに居そうで、自分もそうすりゃ良かったかも、と思う始末です。
…Elixir 開発環境をセットアップする
はじめに
改訂新版 Elixir/Phoenix 初級①: はじめの一歩 という書籍で Phoenix というウェブフレームワークの勉強をはじめました。
Elixir という言語で実装していくことになりますが、本書籍は Elixir 言語入門としても優れているので、少なくとも本書を読み進めていくに当たって、言語仕様のことで困ることは無さそうです。
…自分の作成したGitブランチを表示する
リモートブランチに一時的なブランチ、テスト的に作ったブランチなどをpushしていたのを掃除したくなりました。
複数人で共同作業するために利用しているので、どれが自分のブランチなのかをまずリスト化したかったので、どうすれば出力できるか調べました。
…WSL2上のGUIアプリケーションを動かす
Tauri の開発環境を Windows10 の WSL2 に移行するために、 WSL2 上の GUI アプリを Windows で表示するようにセットアップしました。
とは言いつつ、既に次の手順でセットアップしたことがあるので、今回はこれが動くかどうかを確認しただけですが。
…WSL2上にDockerをインストールする
現在、 Windows で Docker を利用するには大きく2つ方策があるのかなと思います。
-
WSL2 上に Docker Engine をインストールする
自分は元々 Ubuntu 上で Docker を利用してきたので、馴染みのある後者を選択することにしました。 (ちなみにこだわりが無いのなら前者の方が良いと思います)
…Kotlin で JPA エンティティクラスを定義する
Kotlin で JPA エンティティを実装しようと思って調べた結果をまとめた記事です。
まとめ:
-
プロジェクト構成について
-
kotlin-jpacompiler plugin を適用する -
…all-opencompiler plugin を適用し、@Entity,@Embeddable,@MappedSuperclassを対象に設定する
-
Jacksonでコンストラクタを利用してデシリアライズ
Jackson は引数なしコンストラクタが必要、というblogを目にしましたが、正しくありません。
-
…@JsonCreatorを付与することでそのコンストラクタを使ってデシリアライズするように指示できます。
git worktree を利用していると git-commit-id-maven-plugin でエラー
…になりました。
コマンドライン引数でスキップさせるには、 #278 で導入された maven.gitcommitid.skip オプション(現時点最新版の該当コードリンク)を利用して、
mvn -Dmaven.gitcommitid.skip package
などとすれば良さそうです。
…JUnit + Mockito テストケースを Kotest + MockK に書き換える
Kotest + MockK の組み合わせは Kotlin ではメジャー…かと思いきや検索してみても公式の
にあるような例しか見つかりませんでした。 Mockito で言うところの @Mock や @InjectMocks を使ってモックを差し込みたいんじゃい! ということでサンプルです。
Kotlin で JUnit4 のテストケースを書く
-
JUnit4 / Parameterized
-
Mockito 利用
-
テスト対象が Lombok, MapStruct 使用
な状況で Kotlin でテストコードを書きます。
先にまとめを書いておきます。
-
(IntelliJ で Java のコードを
….ktにペーストすると Kotlin コードに変換してくれるが、コレジャナイ感溢れるコードになったのであまり自動変換コードを信用するのは危険かも)
Kotolin のプロジェクトを Maven で作成する
入門書を一通り読み終えたのでサンプルプロジェクトを作成しようと思いました。
JetBrains がメンテナンスしている archetype が利用できそうです。
mvn archetype:generate -DarchetypeGroupId=org.jetbrains.kotlin -DarchetypeArtifactId=kotlin-archetype-jvm
IntelliJ IDEA から作成した場合も似た感じの pom.xml が作成されるかなと思います。
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 などにアクセスできるようになりました(※実験的機能なようですが)。
…