> Какой статус у продукта (Go)

Уровень: middle · Роль: backend · Язык: Go · Категория: Технические вопросы

Компании: YADRO

Стек: Go

> Пример ответа

Статус продукта в Go-проекте обычно реализуется через структуру с полями состояния и временными метками. Например, можно определить enum-тип с использованием iota для основных состояний: Active, Inactive, Archived, Deleted. Для хранения статуса в базе данных часто используют целочисленные значения или строковые константы. Пример:

GO
type ProductStatus int
const (
ProductStatusActive ProductStatus = iota + 1
ProductStatusInactive
ProductStatusArchived
ProductStatusDeleted
)
type Product struct {
ID int64 `json:"id"`
Name string `json:"name"`
Status ProductStatus `json:"status"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}

При работе с REST API статус можно передавать как число или строку, а в бизнес-логике проверять через switch или методы-хелперы (например, IsActive()). Для миграций БД используйте тип SMALLINT или VARCHAR с ограничением. Важно также предусмотреть валидацию при обновлении статуса, чтобы избежать недопустимых переходов (например, из Deleted обратно в Active).

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью