🏁Александр
скорость
🏁Александр
ибо фреймворки не работают без рефлексии, рефлект же тормозит все в 2-3 раза
andrew
не все фремвоки используют рефликсию
Васильев Виктор
Действительно. Почему это фреймворки не работают без нее?
🏁Александр
потому что надо обеспечить универсальность
Васильев Виктор
И?
Dmitrii
Есть функция
func generateGroupKey(n int) string {
letterBytes := "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"
b := make([]byte, n)
for i := range b {
b[i] = letterBytes[rand.Intn(16)]
}
return string(b)
}
Ожидаемое поведение - Каждый раз уникальная стринга длинной 16 символов.
В реальности, через запуск - повторения.
🏁Александр
посолите генератор
Васильев Виктор
В чем соль брат?
Васильев Виктор
Генери соль от времени или чего-то меняющегося
Вольти
например время )
Васильев Виктор
И то верно)
andrew
rand.Seed(time.Now().UTC().UnixNano())
🏁Александр
чорд!
🏁Александр
не успел написать строчку :)
Вольти
время можно в base64 и добавлять к строке )))
Dmitrii
Ох, точно.
Спасибо :)
🏁Александр
Alexander
Вольти
в программе анализаторе делал нечто похожее - время преобразовывалось в символы для уникальности и строка в приборе была ограниченной длиной и без различия регистра
было похоже как то так ZDXTTETVC
🏁Александр
это не добавить энтропии
andrew
https://github.com/mailru/easyjson
Je
Юзать меньше рефлексию можно будет как завезут дженерики в 2.0
Вольти
а я боюсь дженериков
andrew
кодогенерация же )
andrew
не надо женериков
🏁Александр
https://github.com/sgade/randomorg
🏁Александр
для любителей посолить по крупному :)
🏁Александр
в гоу принято использовать другой путь
🏁Александр
кодогенераторы
🏁Александр
получам большой объем копипаста, но скорость не падает
Igor
Кто сколько кодогенераторов уже успел написать?
Васильев Виктор
Непринято. А есть возможность) Редко кто генерирует целые различные структуры и функции для разных вещей
Васильев Виктор
я парочку
Васильев Виктор
но и то редкие задачи
Васильев Виктор
я бы даже сказал специфические
🏁Александр
Igor
Юзать - не значит написать
Васильев Виктор
т.е. они редко вообще нужны генераторы эти
Igor
Кодогенерация в текущем виде - банальный костыль
Васильев Виктор
Так и есть
Васильев Виктор
чисто припудренный вызов утилиты и все
Vladislav
Daniel
🏁Александр
Daniel
Ага
🏁Александр
вообще без либ? O_o
Alexey
Kirill
Народ, я опять available for hire за >= 3k. Подробности в личку
Ivan
Добрый день, подскажите как реализовать паттерн
я наполняю массив данными
хочу при достижении 10 000 записей или раз в секунду (что наступит раньше) отправить данные в функцию для дальнейшей работы
сейчас реализован только через временной промежуток
накопление идет через канал, что мне в гугле ввести что бы найти решение
спасибо
Andrei 🦉
Andrei 🦉
слушаешь канал из тикера и канал с данными в select
Dmitry
похоже на задание на собеседование)
Daniel
хорошее, кстати
Andrei 🦉
ну у меня похожие задачи возникали на практике
Daniel
много чего можно узнать за 15 строк
Ivan
эм, но мне это реализовать на проекте щас надо)
тикер уже реализован
я не понимаю как мне еще длину контролировать
Daniel
и что вы нагуглить хотите?
Daniel
SO для кописасты?
Ivan
в канал просто отправлять длину при добавлении?
Andrey
проще всего буферизованный канал с размером в 10000 сделать. Хотя не, костыльная идея
Daniel
Zver
Zver
Накопили сколько надо сбросили.
Ivan
понял, интересный вариант, немного не как я хотел, но должно получиться, спасибо
Andrey
for
select
case ticker:
сброс буфера
case elem<-ch:
буфер = append(буфер, elem)
если длина буфера >= 10000
cброс буфера
🏁Александр
это канал ̶о̶б̶ ̶а̶н̶и̶м̶е̶ 1С?
🏁Александр
:)
Zver
Еще нет. 😏
Anonymous
Как по мне все верно написано:
https://bluxte.net/musings/2018/04/10/go-good-bad-ugly/
🏁Александр
народ, неед хелп по сваггеру
🏁Александр
там есть опция - --exclude-spec
🏁Александр
не пойму про какую спеку он говорит O_o
🏁Александр
(при генерации сервера, goswagger)
🏁Александр
и зачем оно надо
Имя
Я новичег в Го, подскажите какой нужен хостинг для моих приложений?