2022年04月04日TIL
Build Tool
Build
Maven
なぜ使いますか。
Maven coordinates
Mavenプロジェクト識別子
Multiple Module
1つのプロジェクトで複数のプロジェクトを管理できます.
build lifecycle
lifecycle
validate, compile, test, package, verify, install, deploy
How to use
mvn < lifecycle >
mvn < lifecycle1 > < lifecycle2 >
Transitive Dependencies
if (A -> B, B -> C) then (A -> C)
バージョンまたはライブラリの間で競合が発生する可能性があります!!
依存関係のデバッグ
依存関係ツリーは、
mvn dependency:tree
を使用して描画できます.依存範囲
<scope></scope>
を使用して設定します.gradle
GroovyとCortlinベースの構築ツール
Task
buildの操作
plugin
Spring Frameworkの起動
Spring
複数の項目(Spring Boot、Spring Securityなど)の集合.
Spring Framework
複数のモジュールの組合せ
Spring Boot
プロジェクトの設定時間を短縮します.
Domain Driven Design(DDD)
Entity
Value Object(VO)
依存性管理
コンパイル時間依存性
FixedAmountVoucher fixedAmountVoucher = new FixedAmountVoucher()
// 구상체가 완전히 정해져 있다. 변경될 여지가 없다!
var order = new Order(UUID.randomUUID(), customerId, orderItems, fixedAmountVoucher);
...
// FixedAmountVoucher의 변경에 영향을 받습니다.
public class Order {
public Order(UUID orderId, UUID customerId, List<OrderItem> orderItems, FixedAmountVoucher fixedAmountVoucher) {
...
this.fixedAmountVoucher = fixedAmountVoucher;
}
}
ランタイム依存性
var fixedAmountVoucher = new FixedAmountVoucher(UUID.randomUUID(), 10L);
// 런타임 시점에 구상체 결정
var order = new Order(UUID.randomUUID(), customerId, orderItems, fixedAmountVoucher);
...
public class Order {
public Order(UUID orderId, UUID customerId, List<OrderItem> orderItems, Voucher voucher) {
...
this.voucher = voucher;
}
}
けつごうど
変更が発生した場合、関係内の他のオブジェクトが変更する必要がある程度.
Record
public record SampleRecord {
String name,
Integer age,
Address address
} {}
var
var str = “Hello World”;
var list = new ArrayList<String>();
でもvars
Reference
この問題について(2022年04月04日TIL), 我々は、より多くの情報をここで見つけました https://velog.io/@yshjft/2022년-04월-04일-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol