
Pawel
11.09.2018
10:28:34

Phil
11.09.2018
10:28:50

Roman
11.09.2018
11:04:31
https://azul3d.org/doc/faq.html#what-about-the-garbage-collector
однако я до сих пор сомневаюсь что рендерить в Go это хорошая идея… скриптинг игры как они это описывают - да, могу себе представить, а вот рендеринг..

Настасья
11.09.2018
11:07:28
Всем привет! Админы, привет! Разрешите мне запостить одну вакансию?

Google

Daniel
11.09.2018
11:35:09
можно, если с вилкой

Kirill
11.09.2018
11:37:10
Напоминаю: вилка — это от и до)


Настасья
11.09.2018
11:50:43
Хорошо)
Вилка: 130 000 -180 000 на руки
Территориально: #Москва м.Курская
В компании есть две команды разработки на Go: одна занимается видео, другая - разработкой бизнес-логики. Вакансия открыта во второй команде.
Про возможности:
- участие в принятии архитектурных решений платформы
- минимум бюрократии (уважаем трудовой кодекс, но сотрудник не должен страдать)
- удобный рабочий график (к планеркам можно подключаться по скайпу, приезжать в офис не в часы пик, брать дни на удаленке и т.д)
Про задачи:
- Разрабатывать новый и поддерживать существующий микросервисный функционал серверной части,
- Проектировать и реализовывать API для клиентских устройств и партнерских систем,
- Разрабатывать инструменты управления и мониторинга платформы, сбора и анализа статистики,
- Анализировать и оптимизировать производительность web-сервисов платформы,
- Писать модульные, функциональные и интеграционные тесты.
Мы ищем человека с
- опытом коммерческой backend-разработки на Go или Python.
- пониманиeм принципов конкурентного программирования,
- уверенным знанием сетевых протоколов и HTTP транспорта,
- пониманием принципов построения высоконагруженных систем.
Будет здорово, если у вас уже есть навыки работы на nix-системах и вы легко разбираетесь в чужом коде.
Почему пишу про python? Потому что готовы рассматривать Python разработчиков, которые хоть немного потрогали Go и хотят в него уйти.


Artem
11.09.2018
11:52:37
А почему именно с питона на го? А не с рубинов на рельсах ?

Roman
11.09.2018
11:53:36

Настасья
11.09.2018
11:54:21

Subbotin
11.09.2018
11:57:04

Vladimir
11.09.2018
11:58:21
не проверяй.

Roman
11.09.2018
11:58:22

Andrei
11.09.2018
11:59:11
руби со своим синтаксисом вообще живет в параллельной реальности
а к го ближе всего си, просто потому что его разрабатывали матерые сишники

Roman
11.09.2018
12:01:30

Subbotin
11.09.2018
12:02:22

Google

Andrei
11.09.2018
12:02:27

Subbotin
11.09.2018
12:02:42

Roman
11.09.2018
12:02:44

Andrei
11.09.2018
12:03:27

Vadim
11.09.2018
12:03:52

Subbotin
11.09.2018
12:04:13

Roman
11.09.2018
12:04:18
однако Python я бы только для таких вещей как ML рассматривал бы когда нужно быстро склеить высокопроизводительные модули написанные на C++ в небольшую, экспрессивную логику. Я бы даже сказал что из-за его экспрессивности он в плане скриптинга лучше Go
но он абсолютно не годится для всего остального учитывая его энерго-эффективность. На нём можно писать скрипты, но не алгоритмы и системы, он для этого слишком медленный и прожорливый.
но это такой, очень банальный и поверхностный анализ. Более глубокие анализов на 99.8% уверен в сети придостаточно

?? Eugene
11.09.2018
12:09:23
что такое алгоритмы и системы?

Andrei
11.09.2018
12:10:13

Roman
11.09.2018
12:10:17
что такое алгоритмы и системы?
number crunching.
вычисления.
обработки большого колва одновременных клиентов.
рендеринг...
что угодно...
для всего этого он вообще не годится

?? Eugene
11.09.2018
12:10:41
а, ну для числодробилок он не очень подходит, если не брать во внимание numpy
для всего остального - вполне

Pawel
11.09.2018
12:12:54


Roman
11.09.2018
12:12:58
asyncio достаточно производительный, чтобы продолжать использовать питон в том же вебе, особенно там, где много бизнес логики
с Python та-же проблема что и с Node.js JavaScript.
Да, нода сама по себе быстрая и с I/O справляется отлично поскольку построена на libuv (C++) event loop'е и V8 JS engine (достаточно мощный движок)
Но проблемы возникают тогда, когда нам помимо I/O нужны вычисления.
Какой-нибудь поиск по древу или фильтрация массива могут заблокировать event loop и всё нахрен встанет. JavaScript сам по себе не столь быстрый как Go даже с V8, но если ты ещё и блокируешь вычислением event loop то всё, ты проиграл.
с Go же у нас большое преимущество в том, что горутины не event loop, заблокировав горутину мы блокируем лишь 1 системный поток вычислением, все остальные продолжают работу.

?? Eugene
11.09.2018
12:14:28

Andrei
11.09.2018
12:14:53

Google

Roman
11.09.2018
12:15:12

Алексей
11.09.2018
12:15:23
хотите числа дробить, то надо по любому брать достаточно низкоуровневые языки типа крестов

Subbotin
11.09.2018
12:15:32

Roman
11.09.2018
12:15:52

Olzhas
11.09.2018
12:16:32
Зачем на ноде бэкенд писать?

Алексей
11.09.2018
12:16:42

Daniel
11.09.2018
12:17:20

Алексей
11.09.2018
12:17:44

Roman
11.09.2018
12:18:03
уже завезли треды, неактуальный аргумент про однопоточность
в системных потоках писать сложнее чем на горутинах, в этом и суть горутин.
Никто не спорит что можно написать намного более оптимизированный поточный код аля Nginx на C или даже на worker'ах в JS, но сколько у тебя это займёт по времени и сколько съест нервишек?
Go в этом плане почти идеален, он позволит тебе быстро написать асинхронный код в синхронном стиле, выполняя его не-блокирующе и используя все ресурсы системы, включая число-дробилки.

Pawel
11.09.2018
12:18:33
мне лично проще для ML завести 20 интрпретаторов петона, которые к одной и тойже базе конектяца и выполняют один и тот же скрипт. Чем манаться с С++/java или с маргинальными биндингами на Go

Roman
11.09.2018
12:19:20

Daniel
11.09.2018
12:20:31
он неограниченно расширяется?
коллега, давайте без херни, а?
вы не знали, что он расширяемый - ок, теперь знаете.
а болтать на тему "что будет, если я все же смогу вызвать одновременно более 10К сисколов, которые заблочат треды" я не хочу и вам не советую

Алексей
11.09.2018
12:20:42

Daniel
11.09.2018
12:21:54
задайте этот вопрос гуглу, пожалуйста

Алексей
11.09.2018
12:22:02
вот придётся

Roman
11.09.2018
12:22:02

?? Eugene
11.09.2018
12:24:17

Google

Daniel
11.09.2018
12:24:44

Roman
11.09.2018
12:25:28

Wingman
11.09.2018
12:26:22
товарищи, кто go-pg юзает?
как в нём правильно WhereIn использовать со слайсом интов?

Pawel
11.09.2018
12:26:52

Admin
ERROR: S client not available

Pawel
11.09.2018
12:27:10
то же самое

Roman
11.09.2018
12:27:16

Алексей
11.09.2018
12:28:03

Roman
11.09.2018
12:29:58
о чём Rob Pike собственно и говорил в 2015 на конференции, что многие ЯП напрасно стремятся к господству во всех сферах деятельности и что Go это нишевой ЯП by-design.

Roman
11.09.2018
12:31:21

stixlink
11.09.2018
12:32:04

?? Eugene
11.09.2018
12:32:34

Roman
11.09.2018
12:32:41

Daniel
11.09.2018
12:33:17
именно у постгреса есть более эффективная конструкция, чем where id in (1,b,c,d,e...)

Roman
11.09.2018
12:34:41

Wingman
11.09.2018
12:34:43
pg.In() использовать, WHERE id IN(?)" , pg.In([]int{1,2})
да вот хрен
код:
if err = db.DB.Model(&vlansArr).WhereIn(`id IN (?)`, pg.In(vlanIDs)).Select(); err != nil {
ошибка:
ОШИБКА #22P02 неверное значение для целого числа: "{}"
лог pg:
FROM vlans AS "vlan" WHERE (id IN ('{}'))
переменная точно не пустая: vlanIDS: []int64{0, 0, 0, 20633, 20640, 20603}

Roman
11.09.2018
12:39:10

Daniel
11.09.2018
12:39:45

stixlink
11.09.2018
12:39:46

Google

Daniel
11.09.2018
12:40:14

Wingman
11.09.2018
12:40:26

stixlink
11.09.2018
12:41:12
значит не юзай WhereIn, юзай плейсхолдер и то что я писал выше

Алексей
11.09.2018
12:41:39

Daniel
11.09.2018
12:42:13
нет, конечно
это же не блокировка
тред работает

Wingman
11.09.2018
12:42:41

Алексей
11.09.2018
12:42:43
ну то есть числа дробить надо аккуратно

Daniel
11.09.2018
12:43:09
очень трудно написать такую дробилку, которая не вызывает шедулер

Алексей
11.09.2018
12:44:24
можно легко написать дробилку, которая будет очень редко его вызывать

Daniel
11.09.2018
12:44:52
не думаю. мне это удалось один раз за 4 года

Алексей
11.09.2018
12:44:54
собственно если будет часто вызывать, то это уже будет довольно плохой дробилкой

Roman
11.09.2018
12:45:20

Daniel
11.09.2018
12:45:38
воткни в него Goshed :)