предположим есть какой-то чудо-действенный способ ограничить работу кода, но как вы ограничите редактирование кода с целью удаления той самой зависимости в коде?
Ошибка в коде, писал на коленке, не проверял. Исправил код, теперь проверял, работает как задумано)
WaitGroup помогает нам дождаться завершения обработки всех входных данных в func worker <- done помогает дождаться финальной обработки всех результатов в func writer
p.s. когда вы комментируете свой ответ ниже или исправляете его, ко мне не приходят уведомления и я не смогу как-то вам помочь, рекомендую комментировать эту ветку ответов
есть мнение, что для подобных решений очень хорошо подходит MongoDB, так как количество и содержимое полей документа никак не регламентируется на уровне коллекции
какое-то довольно странное решение, плюс какая-то копипаста не верная, ваш код явно не должен запуститься, ибо sockAddr := HOST+":"+fmt.Sprintf("%v", hc.Port) hc в этом куске кода не определён
ну и как бы в довесок, вы же понимаете, что на момент выполнения go handleRequest(conn, c.Banner) значение c.Banner может быть уже не тем, которое вы ожидаете?
обновлять надо не каждые N минут или секунд, обновлять надо тогда, когда что-то обновилось на стороне сервера, то есть тогда, когда кто-то забронировал аудиторию
Если ваша религия не запрещает вам это делать, то можно. Вот тут можно посмотреть как работать с localStorage. При чём не имеет значения, реакт у вас или вью или ангулар, принцип работы с LS один и тот же. СОхранять надо строку, следовательно перед сохранением надо сделать JSON.stringify, а после чтения JSON.parse
Ничего сверхъестественного. У апи есть приватная часть и публичная. Для доступа к приватной части необходима авторизация. После авторизации в куку пишем айдишник(рандомная генерация), так же данный ID используем в качестве ключа в redis, в котором храним json с данными по пользователю: user_id, client_id, role. Срок жизни ключа в redis 10-60 минут(зависит от настроек клиента). При запросах к приватной части api вытаскиваем id из куки, ищем его в redis, достаём данные, проверяем возможность доступа к конкретному ресурсу с конкретным действием(получить, создать, обновить, удалить), если всё сходится, возвращаем результат запроса, а так же обновляем TTL в redis и обновляем куку в браузере.
PostgreSQL не потянет и пятой части от ожидаемой нагрузки. Вернее можно, конечно, организовать кластер из 4-5 машин и он потянет такую нагрузку, но оно того не стоит. Можете посмотреть ещё в сторону любой key/value базы, но более чем уверен, redis-а будет более чем достаточно. Сам для сессий использую схему, подобную той, что вы описали на базе Redis
Вызов эксепшена, при попытке задать свойство несуществующего объекта, это как-бы звоночек разработчику, что он делает что-то не так. То, что ты обращаешься к несуществующему свойству объекта - это нормально, свойство со временем может появиться, а вот то, что вы пытаетесь получить свойства несуществующего объекта - это уже не нормально