Skip to main content

java

Java programming language best practices and patterns

インストールへ移動

ソース情報

リポジトリ
NeuralBlitz/Agent-Gateway
ソースの最終更新活動
2026年4月9日 10:58
検出された SKILL.md の言語
英語
スター
1
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
java
description
Java programming language best practices and patterns
license
MIT
compatibility
opencode
metadata
{"audience":"developers","category":"programming"}
## What I do - Write idiomatic Java using modern features (Java 17+) - Use streams and Optional properly - Handle exceptions with specific exception types - Implement builder pattern for complex objects - Use records for immutable data - Follow SOLID principles - Use dependency injection - Write JUnit 5 tests ## When to use me When writing or reviewing Java code. ## Modern Java Patterns ```java import java.util.Optional; import java.util.stream.Stream; public record User( String id, String name, String email, LocalDateTime createdAt ) { public User { Objects.requireNonNull(id, "id cannot be null"); Objects.requireNonNull(name, "name cannot be null"); } } public class UserService { private final UserRepository repository; private final EmailService emailService; public UserService(UserRepository repository, EmailService emailService) { this.repository = repository; this.emailService = emailService; } public Optional<User> findById(String id) { return repository.findById(id); } public Stream<User> findActiveUsers() { return repository.findAll() .stream() .filter(u -> !u.isDeleted()); } public Result<User> createUser(CreateUserRequest request) { return Result.tryCatch(() -> { validateRequest(request); User user = new User( UUID.randomUUID().toString(), request.name(), request.email(), LocalDateTime.now() ); return repository.save(user); }); } private void validateRequest(CreateUserRequest request) { if (request.name() == null || request.name().isBlank()) { throw new ValidationException("Name is required"); } } } ``` ## Builder Pattern ```java public class EmailMessage { private final String to; private final String subject; private final String body; private final List<String> cc; private final boolean important; private final LocalDateTime scheduledAt; private EmailMessage(Builder builder) { this.to = builder.to; this.subject = builder.subject; this.body = builder.body; this.cc = List.copyOf(builder.cc); this.important = builder.important; this.scheduledAt = builder.scheduledAt; } public static Builder builder() { return new Builder(); } public static class Builder { private String to; private String subject; private String body; private List<String> cc = new ArrayList<>(); private boolean important; private LocalDateTime scheduledAt; public Builder to(String to) { this.to = to; return this; } public Builder subject(String subject) { this.subject = subject; return this; } public Builder body(String body) { this.body = body; return this; } public Builder cc(String... cc) { this.cc = Arrays.asList(cc); return this; } public Builder important(boolean important) { this.important = important; return this; } public Builder scheduledAt(LocalDateTime scheduledAt) { this.scheduledAt = scheduledAt; return this; } public EmailMessage build() { return new EmailMessage(this); } } } ``` ## Testing with JUnit 5 ```java @ExtendWith(MockitoExtension.class) class UserServiceTest { @Mock private UserRepository repository; @InjectMocks private UserService service; @Test void findById_whenUserExists_returnsUser() { User expected = new User("1", "John", "john@example.com", LocalDateTime.now()); when(repository.findById("1")).thenReturn(Optional.of(expected)); Optional<User> result = service.findById("1"); assertThat(result).isPresent() .get() .extracting(User::name) .isEqualTo("John"); } @ParameterizedTest @CsvSource({ "'', name is required", "null, name is required", " , name is required" }) void createUser_whenNameIsInvalid_throwsException(String name, String message) { CreateUserRequest request = new CreateUserRequest(name, "email@test.com"); assertThatThrownBy(() -> service.createUser(request)) .isInstanceOf(ValidationException.class) .hasMessage(message); } } ```
GitHubで見る