❓Какие знаете бест практис по использованию интерфейсов
1. Чем меньше методов в интерфейсе — тем лучше. Классический пример — io.Reader и io.Writer. Один метод, зато супер универсально.
type Stringer interface { String() string }
2. Принимать интерфейсы, а возвращать конкретные типы.
Это удобно и для тестов, и для читаемости. Функция, которая что-то использует, пусть принимает интерфейс, а фабрика или конструктор возвращает конкретный тип.
3. Не создавать интерфейсы на будущее. Если абстракция сейчас не нужна — лучше оставить конкретный тип, иначе код будет сложнее без пользы.
4. Переиспользовать стандартные интерфейсы, если они подходят. В стандартной библиотеке уже много хороших примеров — error, fmt.Stringer, context.Context.
5. Осторожно с interface{}. Это, по сути, отключение типизации. Если нужен универсальный контейнер — ок, но в остальном лучше обойтись конкретными интерфейсами или дженериками.
❓Какие знаете бест практис по использованию интерфейсов
1. Чем меньше методов в интерфейсе — тем лучше. Классический пример — io.Reader и io.Writer. Один метод, зато супер универсально.
type Stringer interface { String() string }
2. Принимать интерфейсы, а возвращать конкретные типы.
Это удобно и для тестов, и для читаемости. Функция, которая что-то использует, пусть принимает интерфейс, а фабрика или конструктор возвращает конкретный тип.
3. Не создавать интерфейсы на будущее. Если абстракция сейчас не нужна — лучше оставить конкретный тип, иначе код будет сложнее без пользы.
4. Переиспользовать стандартные интерфейсы, если они подходят. В стандартной библиотеке уже много хороших примеров — error, fmt.Stringer, context.Context.
5. Осторожно с interface{}. Это, по сути, отключение типизации. Если нужен универсальный контейнер — ок, но в остальном лучше обойтись конкретными интерфейсами или дженериками.
Find your optimal posting schedule and stick to it. The peak posting times include 8 am, 6 pm, and 8 pm on social media. Try to publish serious stuff in the morning and leave less demanding content later in the day. A new window will come up. Enter your channel name and bio. (See the character limits above.) Click “Create.” Over 33,000 people sent out over 1,000 doxxing messages in the group. Although the administrators tried to delete all of the messages, the posting speed was far too much for them to keep up. There have been several contributions to the group with members posting voice notes of screaming, yelling, groaning, and wailing in different rhythms and pitches. Calling out the “degenerate” community or the crypto obsessives that engage in high-risk trading, Co-founder of NFT renting protocol Rentable World emiliano.eth shared this group on his Twitter. He wrote: “hey degen, are you stressed? Just let it out all out. Voice only tg channel for screaming”.
from us