作記録

記憶代わり

オブジェクト指向

オブジェクトをまとめるオブジェクトについて

2021/08/05更新 この記事コンテキストでは、1個以上のオブジェクトをインスタンス変数に持つオブジェクトを便宜的に集約という表現をする。 集約の分類 下記のように分類すると良い気がしている。 ①プログラムがビジネスルールの計算・判断に利用するオブジ…

Spring Frameworkを利用したPOST HTTP Requestの実装例

本記事で利用する技術のVersion Open JDK 11.0.9 Spring Framework Boot 2.5.3 Spring Boot Starter Web 2.5.3 Spring Boot Starter Validation 2.5.3 Spring Boot Starter Thymeleaf 2.5.3 実装例 1. Controller @Controller @RequestMapping("/group") pub…

システムに変更を加える際に大変な事とその解決策

結論 僕はシステムに変更を加える際に大変な事として下記の2つを認識しています。 変更を加えるべき全ての実装箇所の特定 変更を加えた場合に発生する他の機能への影響の収縮 1番目の解決策 ビジネスルールをドメインオブジェクトに表現し、実装する システ…

クラスについて

定義 僕はクラスを下記のように定義しています。 クラスとは、データとそのデータを使った操作を閉じ込める機能。 僕の定義するクラスの機能とは外れた使い方が下記のような使い方です。 ●●TableRecord...テーブルのレコードの内容をクラスに羅列しただけの…

値オブジェクトについて

汎用的な値オブジェクトについて typeに属する汎用的な値オブジェクトはロジックを1箇所にまとめられて便利だと思いました。 (例)Date型やAmount型など typeに属する汎用的な値オブジェクトとして作るのは、おおよそロジックに変更がないと分かりきったも…

ValueObjectの実装サンプル

名前系 package com.jtn.springbootsample.domain.model.product import java.lang.IllegalArgumentException /** * 商品名 */ class ProductName( val value: String ) { companion object { private const val MIN_SIZE = 1 private const val MAX_SIZE = …