A
Подскажите плз,
если у структуры есть много полей такого формата:
users map[string]model.User
orders map[string]model.Order
сами мапы можно только таким образом инициализировать:
make (map[string]model.User)
A
?
A
есть ли способы короче ? или можно как-то не инициализировать ?
Anton
map[type]type{}
Юра (Юрий Александрович)
можете model импортировать с псевдонимом. Например m, тогда ваши типы будут m.User, m.Order и т.д.
A
A
{
...
Users: map[type]type{},
...
}
проблема в том, что очень много словно получается, особенно если это не просто map[string]model.User{}
а какие-нибудь map[StorageIndex]model.OrderProductItem
A
т.е. вообще не понятно зачем второй раз писать полный тип, если он и так уже написан в структуре...
A
понял, спасибо!
kostyaBro
A
простите, еще один вопрос)
есть структура User, которая должна взаимодействовать с разными хранилищами, которые реализуют интерфейс StorageInterface
type User struct {
storage StorageInterface
}
правильно ли понимаю, что мне не обязательно указывать, что storage должен быть указателем?
При инициализации, я могу сделать так:
user := User{storage: &MemoryStorage{}}
?
я так попробовал и у меня работает.
но если в структуре User указать, что storage - указатель:
storage *StorageInterface
то выше описанный пример инициализации выдаст ошибку..
A
не совсем понятно, почему так происходит
kostyaBro
kostyaBro
Но засовывать репозиторий в модель странно
Melbourne Channel
does anyone know how to write a faceted search engine from scratch? i know how to write inverted index text search engine but how does faceted search engine work? at least in an optimal implementation sense.
cant seem to find references for writing one online
A
kostyaBro
Не могу подсказать может где-то в доках го про это есть
kostyaBro
Хз просто что писать про это
kostyaBro
И не искал, поищи
kostyaBro
спасибо! а где можно про это прочитать?
Неправильно выразился. Интерфейс может у тебя хранить как pointer так и значение структуры. Указатель на интерфейс тебе практически никогда не нужен
Alexey
A
Florian Geyer von Giebelstadt
Alexey
Viktoria
Всем привет) есть ли тут ребята которые начинают обучение завтра на skillbox?
Илья
Уверен, что есть
Илья
Я тоже писал
Юра (Юрий Александрович)
Я долго думал о том, чтобы написать бота. Это считается?
Илья
так и запишем
Юра (Юрий Александрович)
Отлично. Тогда Алексей какой у тебя вопрос?
Юра (Юрий Александрович)
Yegor
Юрий
Yegor
С выяснения часового пояса
Юра (Юрий Александрович)
Во-первых, нам нужно хранить список подписанных пользователей. Для этого нам потребуется БД. По наступлению какого-то события (отправки боту особой команды, или произвольного сообщения), мы проверяем этого юзера, если он у нас еще не в списке подписанных - добавляем. Важно, что мы не можем послать сообщение просто юзеру, мы можем послать его только в "чат", т.е. уже имеющуюся с юзером беседу. Если, например, юзер удалин свой разговор с ботом, то беседа "закончится", и в эту беседу, а следовательно и этому юзеру мы больше ничего не напишем.
Ботам запрещено инициировать беседы с юзерами, потому что понятно почему.
Илья
А можно просто человека взять, чтобы он сообщения отправлял
Юра (Юрий Александрович)
теперь к вопросу о "6 утра". Вариантов у нас несколько: простой - это держать сервис вечно запущенным, но со спящей рутиной. Конечно, спать по несколько часов - это плохая практика. Спать можно по несколько секунд-минут, проверять, не наступило ли уже время отправки, если наступило - отправлять, если не наступило (зевает) ложиться спать дальше.
Юра (Юрий Александрович)
Либо можно прицепить Cron, который сам будет запускать гошную приложужу незадолго до времени отправки сообщения. С одной стороны, это более сложный путь, но с другой стороны, он гарантирует, что к моменту отправки сообщения приложение будет "свеженьким", а не зависшим напрочь от багов, которые в нем накопились за прошлые сутки работы.
Юрий
Приложение:ПРОСНИСЬ, 6 УТРА
Тем временем человек в 2 ночи: …
Юра (Юрий Александрович)
Зачем сходу усложнять задачу: нет никаких часовых поясов, Земля плоская.
Юрий
😂
Илья
Приложение:ПРОСНИСЬ, 6 УТРА
Тем временем бэк, который отправил 100 запросов в апи телеги в 2 часа ночи
Илья
😎
Илья
да мы шутим
Юрий
Шутка юмора)
Юрий
Привяжешь когда появится необходимость
Юрий
Сделай пока что просто так
Илья
Верните мой golang go в час ночи
Юра (Юрий Александрович)
ну все, теперь бот напишется намного позже, чем мог бы.
(я ж чего ботов-то так долго продумываю)
Илья
Юрий
Получается так
Юрий
У меня таких «хайлоад» проектов на гите вагон. Все закончились на пустом read me файле
Юрий
Ну максимум соединении с базой
Илья
Yegor
Gocron
Юрий
В смысле спасибо
Юрий
Бери теперь в долю
Илья
Бери в стартап
Юрий
Эх, ладно, тоже сойдёт. У меня тут картошка есть с курицей, угощайся тоже
Илья
Илья
тебе тоже
Юрий
Илья
Можно просто жахнуть
Илья
без пет-проекта
Юра (Юрий Александрович)
> если есть у кого-то желание
желание чего?
Юрий
Настоящему программисту чтобы закончить любой проект нужно две недели и ящик водки. Все остальное - обман заказчика и работодателя
Илья
Я бы хотел попробовать микросервисную архитектуру сделать с кем-то
Илья
условно определить эндпоинты/методы и делать
Илья
Потом MVP -> стартап -> инвестиции -> криптовалюты
Мечта....
Юрий
Не, друг. Процентов 80 проектов заканчиваются на этапе когда уже надо что-то начать делать)