Skip to content
cccskills
FreePublished on GitHub

services-and-interfaces

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

The English summary is being prepared. Showing the original description.

Authula/authula273 stars(GitHub 273 + cccskills 0)

Run score Not tested

See how to install

Files included (2)

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

SKILL.md (original)

Review the instructions the agent will receive before you install.

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

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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

The English summary is being prepared. Showing the original description.

Authula/authula273Updated Oct 24, 2026

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.

The English summary is being prepared. Showing the original description.

Authula/authula273Updated Oct 24, 2026

A relentless interview to sharpen a plan or design.

The English summary is being prepared. Showing the original description.

Authula/authula273Updated Oct 24, 2026

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.

The English summary is being prepared. Showing the original description.

Authula/authula273Updated Oct 24, 2026

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

The English summary is being prepared. Showing the original description.

Authula/authula273Updated Oct 24, 2026

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

The English summary is being prepared. Showing the original description.

Authula/authula273Updated Oct 24, 2026

See all skills by Authula

Report a problem with this skill