Sitemap
Feb 3, 2025

Don’t create interfaces for types that only have one implementation. Instead, export the concrete type directly. It lets users define their own interfaces if needed. Suppose, you have a FileLogger struct with a Log() method, don’t export a Logger interface for it. Just export FileLogger. Users who need an interface can define one themselves, like type CustomLogger interface { Log() }, and use FileLogger with it. It will keep your code simple and avoid forcing unnecessary abstractions on others.

Abu Bakar
Abu Bakar

Written by Abu Bakar

Multidisciplinary Software Engineer | Building end-to-end, turnkey solutions

No responses yet