設計

Docker

Docker環境で立てたデータベースのER図を自動生成する(MySQL)

この記事では、データベースのER図を自動生成する手順を解説する。 やりたいこと ローカル環境で、Docker Composeを使ってAPIやMySQLを立てている状態 既存のプロダクトコードやCI/CDに影響がないようにER図を自動生成した...
設計

【良いコードを書く】変数は上書きしない

この記事では、より良いコードを書くためのテクニックについて解説する。 結論 変数は上書きしない。変数を使う際は、不変な状態(上書き不可能な状態)で使う。 なぜ不変にすることが望ましいのか? これに対する答えとしては「値が変わってる=意味が変...
Java

【Java】Enumの機能を最大限に活かし、可読性を上げる(同時にswitch文も減らす)

Enumは「種類分け」の観点でよく利用されることがある。プログラミングの教科書にも、以下のようにswitch文との併用が記載されていることが多い。 public enum CreditCard { VISA, MASTER, JCB, } ...
Java

クラスA→クラスBの変換メソッドをどこに書くか

Webサービスを開発しているとき、ほぼ必ず書くことになる処理がオブジェクトの変換メソッドだ。 外部のAPIから受け取ったデータをクラスAにマッピングし、その後クラスBに変換してアプリケーション内部でロジックを組み立てるということはよくある。...
HTTP

初心者がAPIの例外処理を行う場合の考え方

webエンジニアになりたての頃、例外についてどう考えたら良いか分からなかったのでそういう人のための記事。 サービスの機能要件、非機能要件に応じて対応を変える必要があるため、一概に「これが正解」とは言えないが、良い実装に至るための考え方を紹介...
設計

【やさしいDDD入門 第2章】エンティティとは

エンティティとは 値オブジェクトと同じく、ざっくり言うと現実世界の物をクラスで表したもの。 他の用語であるエンティティ データベースやJavaでもこの単語を利用するが、DDDにおいては意味合いが異なる。 上記ではデータベースの値をマッピング...
設計

【やさしいDDD入門 第1章】値オブジェクトとは

値オブジェクトとは ざっくり言うと、現実世界の物をクラスで表現したもの。 エンティティと似ているが、その違いについてはエンティティの章で解説する。 例:ユーザー名 例えば、ユーザー名について考えてみる。 特に何も考えなければ、ユーザー名は以...