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

services-and-interfaces

Define and implement services that encapsulate business logic with proper constructor-based dependency injection.

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

Authula/authula스타 273(GitHub 273 + cccskills 0)

실행 점수 미검증

설치 방법 보기

포함된 파일(2)

  • SKILL.md2.2 KB
  • examples/todo_service.go1.5 KB

SKILL.md(원문)

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

Services & Interface Design

When to use this skill

  • Create services that encapsulate business logic
  • Implement business operations that delegate to repositories for data access (Database)
  • Add authentication or domain-specific features as services

Key principles

  1. Concrete struct design: Services are defined as interfaces and implemented by concrete structs with the same name lowercase and with a constructor (e.g., TodoService and todoService with NewTodoService constructor)
  2. Constructor-based injection: Dependencies passed at construction
  3. Single responsibility: Each service handles one domain concern
  4. Repository delegation: Services delegate all data access to repositories
  5. Context-aware: All public methods accept context.Context
  6. Interface return types: Constructors return interfaces, not concrete types
  7. Single File Exports: Each service implementation is in its own file. However, all service interfaces are exported from interfaces.go under the services/ folder.

Pattern

Services handle business logic:

  • Define interface for service with methods representing business operations
  • Implement as concrete struct with repository dependencies
  • Constructor function injects all dependencies
  • Methods are thin wrappers that validate, transform, and delegate to repositories
  • Return interfaces from constructors

Example

See examples/todo_service.go for:

  • TodoService interface definition
  • todoService implementation with constructor
  • Validation and repository delegation patterns

Common mistakes

  1. Service-to-service direct calls without interfaces
  2. Putting queries in services (repositories own data access)
  3. Missing context parameter
  4. Exporting implementation struct instead of interface
  5. Not testing with mocks

References

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

Wire dependencies using constructor-based dependency injection throughout services, repositories, and handlers.

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

Authula/authula2732026년 10월 24일 업데이트

Use this skill when answering questions, explaining concepts, writing technical responses, reviewing code, or helping with development tasks. Communicate in clear, simple, standard English. Keep answers concise and focused, remove unnecessary filler and repetition, explain technical ideas in plain language, and structure information so it is easy to read and understand. When showing code, present it clearly with enough context for the developer to understand what it does and where it belongs.

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

Authula/authula2732026년 10월 24일 업데이트

grill-me

무료

A relentless interview to sharpen a plan or design.

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

Authula/authula2732026년 10월 24일 업데이트

grilling

무료

Grill the user relentlessly about a plan, decision, or idea. Use when the user wants to stress-test their thinking, or uses any 'grill' trigger phrases.

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

Authula/authula2732026년 10월 24일 업데이트

Implement HTTP handlers that parse requests, invoke use cases, and format responses following REST conventions.

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

Authula/authula2732026년 10월 24일 업데이트

handoff

무료

Compact the current conversation into a handoff document for another agent to pick up.

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

Authula/authula2732026년 10월 24일 업데이트

Authula의 스킬 모두 보기

이 스킬의 문제 신고