Прохожу я такой 8 кругов ада интервью, скрининги, тех, архитектура, алгоритмы, разбор моего гитхаба с пристрастиями, за жизнь поговорить с ceo, и тд, слушаю какая команда у них образцовая, и рост у них есть, и перспективы, и работа интересная, а потом сижу и занимаюсь перекладыванием json'чиков из одной кучки в другую да формочки шлепаю. Добро пожаловать на обратную сторону, сами виноваты.
Так а почему ни слова о том, чем эти хинты теперь проверять? Или все по дефолту вместе с IDE получают проверку типов? Инструментов много, статья без них не особо полезна.
Спасибо, посмотрю, я первый раз о нем слышу. Столько времени провел изучая рынок, думал, уж сколько-то популярные решения все видел, оказывается - нет! Низкий поклон! :)
У меня два кейса его работы в проде, в первом кейсе я храню помимо обычных логов, которые в коде писал сам, еще и сырые XML/JSON/HTML куски, каждый из которых иногда может быть по несколько мегабайт. Мне нужен полнотекстовый поиск именно внутри этих файлов. Retention стоит 30 дней, нагрузка небольшая, около 500K логов в день. Мой объем текущий укладывается в 3гб (это с учетом, что OpenObserve очень круто сжимает). Железо на fly.io машинка shared-cpu-1x@1024MB и к ней 10GB volume, занятый на треть. По нагрузке показывает среднюю 632 MB/1 GB, CPU почти всегда на нуле.
Второй кейс похожий по объему, около 300К логов в день, но retention 3 месяца и внутри тела лога очень часто большие (1-2мб) куску XML, по которым также нужен полнотекстовый поиск. Сжатый объем порядка 5гб. Полнотекстовый поиск на интервале в неделю работает < 1сек.
upd: по работе бэка openobserve без нареканий, на UI стороне иногда замечаю мелочи, но совсем небольшие
Ставим Openobserve и имеем полнотекстовый поиск по логам, otel трейсы, метрики, alert'ы если нужно, все в одном месте с Kibana-подобным, но (субьективно) более удобным интерфейсом. Мы с ним в проде уже два года и очень довольны.
upd: еще доступен real user monitoring (запись взаимодействия пользователя с интерфейсом), кому-то может быть полезно
Синглтон используется, например, когда нужно конфиг 1 раз тяжело проинициализировать (не спрашивайте, зачем, сам не знаю, у меня никогда не было тяжело инициализирующихся конфигов). Поскольку делается это 1 раз, паттерн имеет смысл:
type Config struct {}
var instance Config
var once sync.Once
func GetConfig() *Config {
once.Do(func() {
err := cleanenv.ReadEnv(&instance)
if err != nil {
// ...
}
// ...
})
return &instance
}
Вывод: нужно помнить, что подходы, принятые в Golang, чаще всего зависят от контекста. И когда вы слышите, что «тут так принято», лучше не верить на слово, а загуглить и разобраться в вопросе.
Принято что именно? Короткие имена переменных? Если человек придумал абсолютно тупейшее название toUniqueViolationError, тут как переменные не назови, лучше уже не станет. Ну а переменной m вообще нет нигде, я не знаю, что именно вы хотели этим примером показать.
Прохожу я такой 8 кругов
адаинтервью, скрининги, тех, архитектура, алгоритмы, разбор моего гитхаба с пристрастиями, за жизнь поговорить с ceo, и тд, слушаю какая команда у них образцовая, и рост у них есть, и перспективы, и работа интересная, а потом сижу и занимаюсь перекладыванием json'чиков из одной кучки в другую да формочки шлепаю. Добро пожаловать на обратную сторону, сами виноваты.Такие вещи HR делает так то
А как можно выявить утечку? Типа посмотрели вокруг, нигде зазипованный csv файлик с именами и карточками клиентов не лежит - все, утечки нет.
Внутри этого поста тоже ничего нет, но ведь он - не голограмма. Странно.
Так а почему ни слова о том, чем эти хинты теперь проверять? Или все по дефолту вместе с IDE получают проверку типов? Инструментов много, статья без них не особо полезна.
Можно и так, почему нет? Просто обычно получается что-то между, т.е. ниже зарплата и небольшая, при этом, доля.
Итого 6 или 7 компаний за 6 лет. Все верно? Если так, о каких повышениях идет речь?
"новый", ага :)
Вообще не за это
Начало, кстати, вполне ничего)
Спасибо, посмотрю, я первый раз о нем слышу. Столько времени провел изучая рынок, думал, уж сколько-то популярные решения все видел, оказывается - нет! Низкий поклон! :)
У меня два кейса его работы в проде, в первом кейсе я храню помимо обычных логов, которые в коде писал сам, еще и сырые XML/JSON/HTML куски, каждый из которых иногда может быть по несколько мегабайт. Мне нужен полнотекстовый поиск именно внутри этих файлов. Retention стоит 30 дней, нагрузка небольшая, около 500K логов в день. Мой объем текущий укладывается в 3гб (это с учетом, что OpenObserve очень круто сжимает). Железо на fly.io машинка shared-cpu-1x@1024MB и к ней 10GB volume, занятый на треть. По нагрузке показывает среднюю 632 MB/1 GB, CPU почти всегда на нуле.
Второй кейс похожий по объему, около 300К логов в день, но retention 3 месяца и внутри тела лога очень часто большие (1-2мб) куску XML, по которым также нужен полнотекстовый поиск. Сжатый объем порядка 5гб. Полнотекстовый поиск на интервале в неделю работает < 1сек.
upd: по работе бэка openobserve без нареканий, на UI стороне иногда замечаю мелочи, но совсем небольшие
Ставим Openobserve и имеем полнотекстовый поиск по логам, otel трейсы, метрики, alert'ы если нужно, все в одном месте с Kibana-подобным, но (субьективно) более удобным интерфейсом. Мы с ним в проде уже два года и очень довольны.
upd: еще доступен real user monitoring (запись взаимодействия пользователя с интерфейсом), кому-то может быть полезно
Не очень понятно откуда вы взяли про слив данных. Какую-то свою параллель с упоминанием LLM провели?
А потом удивляемся производительности нынешнего веба...
Синглтон используется, например, когда нужно конфиг 1 раз тяжело проинициализировать (не спрашивайте, зачем, сам не знаю, у меня никогда не было тяжело инициализирующихся конфигов). Поскольку делается это 1 раз, паттерн имеет смысл:
Dalle3 генерирует одно изображение 10 минут? Когда такое было?
Принято что именно? Короткие имена переменных? Если человек придумал абсолютно тупейшее название toUniqueViolationError, тут как переменные не назови, лучше уже не станет. Ну а переменной m вообще нет нигде, я не знаю, что именно вы хотели этим примером показать.
p.s. почему код в картинках то?
Ценный комментарий!
Т.е. имеете в виду, что сделали структуру раз и передали в разные, условно, билдеры? Да, окей, такую проблему не решает никак