🏁Александр
да
Alexander
От рук зависит. Можно написать одинаково плохо
🏁Александр
hello world будет быстрее на go таки 🙂
aadz
а говорили, что Go намного хуже PHP, если плохо писать. На PHP работает, хоть и плохо, а на Go часто даже скомпилировать нельзя :(
aadz
это он и есть :)
aadz
А вопрос, что быстрей - не звучит, как троллинг? :)
Alexander
Кстати да, не написали скорость чего важна: программы или программиста
Alexander
Или скорость превращения кода в не поддерживаемое ̶г̶о̶в̶н̶о̶ легаси
aadz
Go выигрывает у php, если использовать в высоконагруженных сервисах?
В общем, все согласны, что на Go разрабатывается намного быстрей, чем на C, и работает обычно сильно быстрее, чем на любых интерпретируемых языках.
ceiling cat
У тебя тайм-аут три секунды 😅
Не влияет ровным счётом. Бекенды работают как надо, и руками всегда отвечают вовремя. Но проблема именно в кастомном HttpClient.
𝗠𝗮𝗿𝘂𝗳
как можно группировать роуты без сторонних фреймворков
𝗠𝗮𝗿𝘂𝗳
net/http
ceiling cat
Ты тестировал с таймаутом 6 секунд? Количество ошибок ровно такое же?
У дефолтного клиента таймауты вообще дикие. 30 секунд. Сейчас поставили параметры DefaultClient, ошибки всё равно присутсвуют. Будто бы голанг как-то отрубает сам по желанию dial и выбрасывает таймаут.
Pavel
Хватает ли пропускной способности для отправки запросов и получения ответов?
ceiling cat
А через клиент по умолчанию ошибки есть? 😅 Какой объём запросов в секунду исходящий?
Я же говорю, раньше мы использовали обычный http.Get, который вызывал DefaultClient.Do, который как бы был синглтоном для своего пакета (насколько я понял). Сейчас ошибок меньше, но они всё равно присутствуют. Наш графкуель сервер обращается к трём бекендам, это просто невозможно, чтобы у всех трёх был этот таймаут на dial. это подтверждает то, что раньше с http.Get всё работало стабильно. Нагрузка вообще слабая, около 10-20 запросов в секунду.
Pavel
Последняя от версия го?
ceiling cat
Последняя от версия го?
Да, тег latest в докерфайле.
Pavel
Не создавайте.
Pavel
Звучит так, что у вас с сетью не очень что-то и от большого количества установления подключений что-то тупит.
Pavel
Создайте клиент один раз и дайте ему кешировать подключения к этим трём бекам.
ceiling cat
Не создавайте.
А есть какой-то аргумент, почему нельзя создавать каждый раз клиента? Мы, к сожалению, не смогли продебажить этот момент, вот и мечемся от одного "решения" к другому.
Pavel
Keep Alive все дела.
ceiling cat
Keep Alive все дела.
🤔 Спасибо, попробуем покопать в этом направлении. Ещё у нас в одном методе делается resp, err := client.Do И в этом же методе return resp.Body. То есть, коллер не закрывает resp.Body, его закрывает другая функция, куда возвращается resp.Body.
Pavel
Это нормально закрывать боди в другом месте. Главное не забыть его закрывать.
ceiling cat
Могут из-за утечки быть таймауты ?
Pavel
Через defer например.
Pavel
Но это нагрузка на сетевой стек, да.
ceiling cat
Это нормально закрывать боди в другом месте. Главное не забыть его закрывать.
Он точно закрывается через defer, но закрывается не в коллере. Думал, может, в этом проблема.
Pavel
Ну вы всегда можете сделать netstat на хосте и посмотреть — может больше информации даст.
𝗠𝗮𝗿𝘂𝗳
ага
🏁Александр
посоветуйте mock для sql
🏁Александр
что-то библиотек опять наплодили
Aleksandr
Рефлексия обычно сильно медленнее, чем парсинг в заранее определенную структуру
че сказать хотел непонятно. json/encoding - это рефлексия и парсинг в определенную структуру. Но в данном случае это быстрее.
Alexey
У всех github мозги ебет?
Egor
У меня окич
Anton
Не знаю, гитхаб ли это, но у меня пакет с gopkg.in не устанавливается =(
Ilia
gopkg прилег
Ilia
Точнее не может до гитхаба достучаться
Alexey
Говорят, что гитхаб начал выкатывать новый интерфейс, мб дело в этом.
Anonymous
че сказать хотел непонятно. json/encoding - это рефлексия и парсинг в определенную структуру. Но в данном случае это быстрее.
Скажем так, парсить структуру по сгенеренному автомату быстрее, чем используя рефлексию в рантайме, так понятнее?
Anonymous
Привет всем. Может кто подсказать по пакету "go-dkim". Сгенерировал 2 ключа private/public.pem 1024 бит rsa, делаю подпись письма, на базе private.pem, вроде как в примере на github. На выходе, в почтовике пусто, такое впечатление что он даже ничего не делает. Сам ключ пропускаю через: private, _ := ioutil.ReadFile("private.pem") block, _ := pem.Decode(private) ну и в options.PrivateKey добавляю block.Bytes
🏳️ Phil
Смотрите. Есть xml: <root> <block> <items> <item>1</item> <item>2</item> </items> </block> <block> .... Можно для стандартного декодера сделать структуру, чтобы он пропускал вот этот сраный 'items'?
Daniel
Коллеги админы, я тут анонс хакатона разрешил
🏳️ Phil
type Root struct { /// ... Block []string `xml:"Items>item"` } ?
Точно. Спасибо. Я тупой. Это прямо вот написано же
Roman
https://azul3d.org/doc/faq.html#what-about-the-garbage-collector однако я до сих пор сомневаюсь что рендерить в Go это хорошая идея… скриптинг игры как они это описывают - да, могу себе представить, а вот рендеринг..
Анастасия
Всем привет! Админы, привет! Разрешите мне запостить одну вакансию?
Daniel
можно, если с вилкой
Kirill
Напоминаю: вилка — это от и до)
Анастасия
Хорошо) Вилка: 130 000 -180 000 на руки Территориально: #Москва м.Курская В компании есть две команды разработки на Go: одна занимается видео, другая - разработкой бизнес-логики. Вакансия открыта во второй команде. Про возможности: - участие в принятии архитектурных решений платформы - минимум бюрократии (уважаем трудовой кодекс, но сотрудник не должен страдать) - удобный рабочий график (к планеркам можно подключаться по скайпу, приезжать в офис не в часы пик, брать дни на удаленке и т.д) Про задачи: - Разрабатывать новый и поддерживать существующий микросервисный функционал серверной части, - Проектировать и реализовывать API для клиентских устройств и партнерских систем, - Разрабатывать инструменты управления и мониторинга платформы, сбора и анализа статистики, - Анализировать и оптимизировать производительность web-сервисов платформы, - Писать модульные, функциональные и интеграционные тесты. Мы ищем человека с - опытом коммерческой backend-разработки на Go или Python. - пониманиeм принципов конкурентного программирования, - уверенным знанием сетевых протоколов и HTTP транспорта, - пониманием принципов построения высоконагруженных систем. Будет здорово, если у вас уже есть навыки работы на nix-системах и вы легко разбираетесь в чужом коде. Почему пишу про python? Потому что готовы рассматривать Python разработчиков, которые хоть немного потрогали Go и хотят в него уйти.
Artem
А почему именно с питона на го? А не с рубинов на рельсах ?
Анастасия
А почему именно с питона на го? А не с рубинов на рельсах ?
Вот затрудняюсь ответить, но, наверное, правда питон ближе, чем руби
Subbotin
Потому что го ближе к python
Сильное утверждение.
p0rsche
не проверяй.
Andrei 🦉
руби со своим синтаксисом вообще живет в параллельной реальности
Andrei 🦉
а к го ближе всего си, просто потому что его разрабатывали матерые сишники
Subbotin
помирающей параллельной реальности*
Есть мнение, что рор все ещё популярнее го
Andrei 🦉
помирающей параллельной реальности*
язык, главной парадигмой которого было monkey patching всего и вся вообще не должен был существовать в какой либо вселенной
Subbotin