Anonymous
а джунам не тяжело читать err != nil в каждой строке ?
V
обычно через строчку же, что вы все врете?
Andrey
через две, там ещё }
Alexander
но как правило чем выше уровень разраба, тем более простой и понятный код он старается писать. особенно если сам его поддерживать собирается.
Great
я думал мы про маня-мирок, где кто-то кому-то что-то должен :D
Nick
Господа, есть какой-то список must-know вопросов на гошного мидла?
V
меня про технологии-фреймворки спрашивали и общие вопросы по бек-разработке, независимые от языка
Oleh
а джунам не тяжело читать err != nil в каждой строке ?
зачем обрабатывать ошибку, если можно её игнорить ?)))
Anonymous
Коллеги, кто-нить NATS юзал?...
Алексей
Добрый день, Что этот код делает?
Daniel
никто с картинки код читать не будет
Daniel
давайте ссылку на плейграунд
Denis
я прочитал. этот код страдает какой-то херней.
Алексей
+
Anonymous
Добрый день, Что этот код делает?
Судя по заголовку, делает awesome.
Tigran
Так ли важно, что этот код делает, по сравнению с вечным вопросом, зачем он это делает.
Tigran
Добрый день, Что этот код делает?
Если серьёзно, что именно тебе не понятно?
Tigran
Если в деталях объяснять, что он делает, долго будет
Алексей
Алексей Прокопчук: Добрый день ,мне просто надо создать две гоурутины и передать обеим сразу значение map через sync.mutex
Je
через sync.mutex это мощно) у нас обычно через каналы передают
Илья
без ГМО и асбеста)
Pawel
Написал 2 статьи как я делаю онлайновую игру на Go http://dorogoy.tilda.ws/gosaveindie1 http://dorogoy.tilda.ws/gosaveindie2
кстати, если уж экономить на спичках, то почему бы не FlatBuffers вместо protobuff ?
Anonymous
без ГМО и асбеста)
А я специально ищу продукты с ГМО и асбетом ))
Anonymous
Но тщетно ((
Je
Алексей Прокопчук: Добрый день ,мне просто надо создать две гоурутины и передать обеим сразу значение map через sync.mutex
Ты что хочешь-то, sync это у нас примитивы синхронизации, mutex здесь, чтобы одновременно горутины не начали писать в вывод и не сломали вывод, тебе нужно либо статику передать, то так и возьми ее по имени переменной, если что-то получать и выводить, то гугли golang channel
Yuriy
кстати, если уж экономить на спичках, то почему бы не FlatBuffers вместо protobuff ?
во-первых для онлайновых игр это не экономия на спичка а так можно и флэт буффер, на тот момент когда я начал пилить флет буффера не было
Yuriy
кстати, если уж экономить на спичках, то почему бы не FlatBuffers вместо protobuff ?
а из мелочей есть разница в размере пакетов, флетбуфре толще
Yuriy
на 30% без zipa
Yuriy
с зипом 20
🏁Александр
а можно мне код на плей который на скрине выше?
🏁Александр
мне просто свербит угадал ли я вывод или нет :)
🏁Александр
по прикидка подождет секунду, напишет "a work two goroutines" и после разлока мьютекса два раза принтом пустой мап распечатает
🏁Александр
потом сдохнет (истек таймер в майн процессе)
🏁Александр
да я прав - https://play.golang.org/p/PsXRLN8KmVA :)
Yuriy
ну да, большие пакеты больше 1 кб могут биться на несколько становится больше пинг и еще много нюансов
Yuriy
конечно чем меньше пакет тем лучше
Yuriy
иначе я не заморачивался с дельта компрессией это та тема от которогой игровой опыт зависит
Yuriy
However, an intermediate network along this connection supports only 1-KB packets. Every 3-KB packet sent by the client to the server will be fragmented by the intermediate network into three 1-KB packets and the server node will have to put the pieces back together before delivering the data to the application. Because this is an expensive process that can impact throughput and network performance, IP fragmentation should be avoided whenever possible.
Aleksandr
кто что юзал для лемматизации в го?
Aleksandr
русский язык
Pawel
конечно чем меньше пакет тем лучше
а в каком смысле пинг прстите? либо я тупой, либо у вас пакеты один раз вытягиваются при сборке бинарника
Pawel
или там каждый раз всё пересробирается при любом запросе на сервер?
Yuriy
ты про протобаф сейчас?
Pawel
или там каждый раз всё пересробирается при любом запросе на сервер?
или как вариант облако сворачивается после получасового простоя, а потом при пинге надо развернуть контейнер и пересобрать бинарник?
Pawel
ты про протобаф сейчас?
я пытаюсь понять на что влияет +- 1 кб в репе
Yuriy
да я скинул с сайта айбиэм про устройство тисипи протокола мы тут не при чем
Yuriy
большие пакеты будут разбиваться на мелкие второй пакет теряется теперь мы ждем его заново
Yuriy
так пинг превращается из 40 мс в 120
Yuriy
что значит при пинге? пинг постоянный, во всех играх есть тик сервера, допустим 30-120 раз в секунду, по этим тикам он что-то считает и отправляет на клиент в моем случае у меня полупошаговая, я не на каждый тик отправляю на клиент сообщение. только если есть что отправлять
Pawel
спасибо за пояснения, я думал речь о том, что сам гошный пакет флэтбуффа толще и это типа на что-то влияет. когнитивный диссонанс начался
Yuriy
флэт буфер очень хорошо будет жить там где очень часто нужно отправлять очень мало информации, один string, несколько интов
Anonymous
клёвый ник
Anonymous
Где репорт на него можно кинуть?
Nazar
вроде как сразу банить можно за рекламу лол
Aleksey
Чудо пришло в группу к нам!
Pawel
флэт буфер очень хорошо будет жить там где очень часто нужно отправлять очень мало информации, один string, несколько интов
я в таких случаях использую тупо [количество байт] + [инты и стринги] + [crc32]. Чуть больше говнокода, зато безотказно
Daniel
чем вам msgpack не msgpack?
Yuriy
и не делать мэппинг
Pawel
чем вам msgpack не msgpack?
ну это же fixme парсируемый формат а мы тут типа за срашную экномию
Daniel
и что намеряли? какая получилась экономия?
Anonymous
товарищи подскажите. Правильно ли на go делать веб-сервер скажем под 100к запросов в секунду? Если да, то какие будут советы? Наверное, не просто http.ListenAndServe или как?
Yuriy
и что намеряли? какая получилась экономия?
у msgpacka немного больше размер сообщения процентов на 10 но сериализует быстрее мне schemaless совсем не нравится подход когда я меняю протокол передачи я хочу чтобы клиент и сервер одновременно показали мне где у меня ошибки
Aleksey
Ещё одна распределённая DB теперь над MySQL http://radondb.io/
Pawel
и что намеряли? какая получилась экономия?
у меня значительная была экономия на десериализации при переходе от protobuff к flat buffers - от 2.5 с на пакет до 2 c (пачка - несколько мегабайт). В браузере, куда пачка приходит - оно ещё больше
Pawel
нагрузка на проц тоже заметно меньше стала
Daniel
про браузер нам не интересно на самом деле.
Pawel
мне ещё как интересно, на мне фронт висит
Daniel
браузеров много, и их совокупная мощь куда как больше любого кластера
heavycharged
Ещё одна распределённая DB теперь над MySQL http://radondb.io/
с вашего позволения, профоловлю ваш пост в чатик mysql, интересно послушать мнение людей.
Pawel
браузеров много, и их совокупная мощь куда как больше любого кластера
это слабо утещает когда клиентское приложение начинает лагать при десериализации. Вообще не понятно почему только 20% улучшение, а не 90% . что там ещё влияет кроме парсинга - загадка
Radaram
При работе с каналами получил такую ошибку: fatal error: all goroutines are asleep - deadlock! всего две горутины которые обмениваются между собой сообщениями как можно избежать такую ошибку?