본문으로 건너뛰기
cccskills
무료GitHub에 공개

java-21

Java 21 language and runtime patterns for modern, safe code. Trigger: When writing Java 21 code using records, sealed types, or virtual threads.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills스타 660(GitHub 660 + cccskills 0)

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md2.7 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

When to Use

Load this skill when:

  • Writing Java 21 application or library code
  • Designing immutable DTOs or value objects
  • Modeling closed hierarchies with sealed types
  • Using virtual threads for blocking I/O

Critical Patterns

Pattern 1: Records for immutable data

Use records for DTOs and value objects, validate in compact constructors.

Pattern 2: Sealed types + pattern matching

Use sealed interfaces/classes and switch pattern matching for exhaustiveness.

Pattern 3: Virtual threads for I/O

Use virtual threads to handle blocking I/O without large thread pools.

Code Examples

Example 1: Record with validation

package com.acme.user;

public record Email(String value) {
  public Email {
    if (value == null || !value.contains("@")) {
      throw new IllegalArgumentException("Invalid email");
    }
  }
}

Example 2: Sealed hierarchy + switch pattern matching

package com.acme.payment;

public sealed interface Payment permits Card, BankTransfer { }

public record Card(String last4) implements Payment { }
public record BankTransfer(String iban) implements Payment { }

public final class PaymentPrinter {
  public String describe(Payment payment) {
    return switch (payment) {
      case Card card -> "card-" + card.last4();
      case BankTransfer bank -> "iban-" + bank.iban();
    };
  }
}

Example 3: Virtual threads for blocking calls

package com.acme.io;

import java.util.concurrent.Executors;

public final class Fetcher {
  public void fetchAll(java.util.List<String> urls) throws Exception {
    try (var executor = Executors.newVirtualThreadPerTaskExecutor()) {
      for (String url : urls) {
        executor.submit(() -> blockingFetch(url));
      }
    }
  }

  private void blockingFetch(String url) {
    // perform blocking I/O here
  }
}

Anti-Patterns

Don't: Use mutable data carriers

// BAD: mutable DTO
public class UserDto {
  public String name;
  public String email;
}

Don't: Spin up raw platform threads per request

// BAD: expensive and unbounded
new Thread(() -> blockingFetch("https://api" )).start();

Quick Reference

TaskPattern
Immutable DTOsUse records with validation
Closed hierarchiesUse sealed interfaces + switch
Blocking I/O scaleUse virtual threads executor

Resources

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

ai-sdk-5

무료

Vercel AI SDK 5 patterns. Trigger: When building AI chat features - breaking changes from v4.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Angular architecture: Scope Rule, project structure, file naming, style guide. Trigger: When structuring Angular projects or deciding where to place components.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Angular core patterns: standalone components, signals, inject, control flow, zoneless. Trigger: When creating Angular components, using signals, or setting up zoneless.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Angular forms: Signal Forms (experimental) and Reactive Forms. Trigger: When working with forms, validation, or form state in Angular.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Angular performance: NgOptimizedImage, @defer, lazy loading, SSR. Trigger: When optimizing Angular app performance, images, or lazy loading.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Django REST Framework patterns. Trigger: When building REST APIs with Django - ViewSets, Serializers, Filters.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Gentleman-Programming/Gentleman-Skills6602026년 3월 28일 업데이트

Gentleman-Programming의 스킬 모두 보기

이 스킬의 문제 신고