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
map[type]type{}
т.е. в структуре прямо так и писать?
A
{ ... Users: map[type]type{}, ... }
проблема в том, что очень много словно получается, особенно если это не просто map[string]model.User{} а какие-нибудь map[StorageIndex]model.OrderProductItem
A
т.е. вообще не понятно зачем второй раз писать полный тип, если он и так уже написан в структуре...
Vladislav
т.е. вообще не понятно зачем второй раз писать полный тип, если он и так уже написан в структуре...
в структуре прописан тип, но чтобы там получилось что-то отличное от nil и паники поле нужно инициализировать
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 так и значение структуры. Указатель на интерфейс тебе практически никогда не нужен
Florian Geyer von Giebelstadt
Это же SYN flood в чистом виде)
Не слышал.Почитаю.Спасибо
Юра (Юрий Александрович)
Это же SYN flood в чистом виде)
Т.е. задача человека оказалась зловредом?
Юра (Юрий Александрович)
Это ко мне вопрос?
Просто мысль вслух.
Viktoria
Всем привет) есть ли тут ребята которые начинают обучение завтра на skillbox?
Илья
Уверен, что есть
Илья
Я тоже писал
Юра (Юрий Александрович)
Я долго думал о том, чтобы написать бота. Это считается?
Илья
Я долго думал о том, чтобы написать бота. Это считается?
Это значит, что ты умеешь продумывать архитектуру ботов
Илья
так и запишем
Юра (Юрий Александрович)
Отлично. Тогда Алексей какой у тебя вопрос?
Юрий
Я долго думал о том, чтобы написать бота. Это считается?
Я долго думал о том чтобы стать сеньером. Дадите 400к?)
Юра (Юрий Александрович)
Yegor
Я долго думал о том чтобы стать сеньером. Дадите 400к?)
Сеньором можешь ты не быть а джунов тебе надают
Илья
Сеньором можешь ты не быть а джунов тебе надают
Сеньором можешь ты не быть, а джуны тебе надают
Yegor
С выяснения часового пояса
Юра (Юрий Александрович)
Во-первых, нам нужно хранить список подписанных пользователей. Для этого нам потребуется БД. По наступлению какого-то события (отправки боту особой команды, или произвольного сообщения), мы проверяем этого юзера, если он у нас еще не в списке подписанных - добавляем. Важно, что мы не можем послать сообщение просто юзеру, мы можем послать его только в "чат", т.е. уже имеющуюся с юзером беседу. Если, например, юзер удалин свой разговор с ботом, то беседа "закончится", и в эту беседу, а следовательно и этому юзеру мы больше ничего не напишем. Ботам запрещено инициировать беседы с юзерами, потому что понятно почему.
Илья
А можно просто человека взять, чтобы он сообщения отправлял
Юра (Юрий Александрович)
теперь к вопросу о "6 утра". Вариантов у нас несколько: простой - это держать сервис вечно запущенным, но со спящей рутиной. Конечно, спать по несколько часов - это плохая практика. Спать можно по несколько секунд-минут, проверять, не наступило ли уже время отправки, если наступило - отправлять, если не наступило (зевает) ложиться спать дальше.
Юра (Юрий Александрович)
Либо можно прицепить Cron, который сам будет запускать гошную приложужу незадолго до времени отправки сообщения. С одной стороны, это более сложный путь, но с другой стороны, он гарантирует, что к моменту отправки сообщения приложение будет "свеженьким", а не зависшим напрочь от багов, которые в нем накопились за прошлые сутки работы.
Юрий
Приложение:ПРОСНИСЬ, 6 УТРА Тем временем человек в 2 ночи: …
Юра (Юрий Александрович)
Зачем сходу усложнять задачу: нет никаких часовых поясов, Земля плоская.
Юрий
😂
Илья
Приложение:ПРОСНИСЬ, 6 УТРА Тем временем бэк, который отправил 100 запросов в апи телеги в 2 часа ночи
Илья
😎
Илья
да мы шутим
Юрий
Шутка юмора)
Юрий
Привяжешь когда появится необходимость
Юрий
Сделай пока что просто так
Илья
Верните мой golang go в час ночи
Юра (Юрий Александрович)
ну все, теперь бот напишется намного позже, чем мог бы. (я ж чего ботов-то так долго продумываю)
Юрий
ну все, теперь бот напишется намного позже, чем мог бы. (я ж чего ботов-то так долго продумываю)
(Ну или вообще не напишется, там же еще нужно многопоточно обрабатывать запросы на 100000 пользователей)
Юрий
Получается так
Юрий
У меня таких «хайлоад» проектов на гите вагон. Все закончились на пустом read me файле
Юрий
Ну максимум соединении с базой
Yegor
Gocron
Юрий
В смысле спасибо
Юрий
Бери теперь в долю
Илья
Бери в стартап
Юрий
Эх, ладно, тоже сойдёт. У меня тут картошка есть с курицей, угощайся тоже
Илья
тебе тоже
Юрий
Приятного
Спасибо
Илья
Можно просто жахнуть
Илья
без пет-проекта
Юра (Юрий Александрович)
> если есть у кого-то желание желание чего?
Юрий
Настоящему программисту чтобы закончить любой проект нужно две недели и ящик водки. Все остальное - обман заказчика и работодателя
Илья
Я бы хотел попробовать микросервисную архитектуру сделать с кем-то
Илья
условно определить эндпоинты/методы и делать
Илья
Потом MVP -> стартап -> инвестиции -> криптовалюты Мечта....
Юрий
Не, друг. Процентов 80 проектов заканчиваются на этапе когда уже надо что-то начать делать)