Dk
https://play.golang.org/p/IzSAtrhNjsj
Отвечаю по порядку.
Чтобы скомпилировалось - надо сравнить слайсы.
Слайсы использую - потому, что ещё нет опыта в выборе правильной структуры, прошу подсказать.
walk запустил 2 раза ^
Dk
А в чём ещё хранить список int, чтобы потом сравнить?
Евгений
Чтобы сравнить одинаковы ли 2 набора int?
Dk
Евгений
Например, сет?
Igor
гуйс, а если юзать прокси в http.Client, там же по дефолтному указывать можно? user:pass@ip:host?
Dk
Отличная идея, но я их не увидел в туре🤔
Множества - это хорошо
Aleksandr
Евгений
Если упорядочены, то можно и слайс. Но они в лоб не сравниваются. Нужно чуть хитрее
Dk
Dk
Ну правда, я прошу best practice, как это лучше сделать, чтобы сразу понять как нормально делается.
Евгений
Если я верно понял задачу, то вам даже слайс не нужен. Понимаете?
Илья
Илья
но, насколько я понимаю, при этом останутся горутины повисшие, так что задача мне не нравится
Dk
Илья
да
Евгений
а если поток не упорядочен?
Илья
это бинарные деревья
Евгений
> структурированное случайным образом двоичное дерево, которое содержит значения k, 2k, 3k, ..., 10k.
Dk
Они не упорядочены. Поэтому и собирал всё в слайсы.
Илья
Евгений
Кстати, вы хороший вопрос подняли: как сделать, чтобы горутины не оставались висеть?
Илья
Евгений
Если красиво то да. Если некрасиво, то можно обойтись глобальными переменными
Aleksandr
ch1 := make(chan int)
ch2 := make(chan int)
defer close(ch1)
defer close(ch2)
Илья
Илья
Илья
каналы, по идее, нужно закрывать внутри Walk, а рекурсивный кусок выносить в другую функцию
Евгений
Aleksandr
https://play.golang.org/p/IzSAtrhNjsj
Aleksandr
я про этот код
Евгений
это не рабочий код, мы про правильно работающий вариант
Aleksandr
кинь ссылку. понятно что нерабочий, я исходил их того, что логика такая же останется
Евгений
я уже грейс выход добавил )
сейчас
Евгений
https://play.golang.org/p/oL1MkvQHd03
Aleksandr
ну так такая же логика
Евгений
да
Евгений
но в этом случае горутины будут пытаться писать в канал, который никто не читает
Евгений
понятно, что конкретно в данном случае программа завершится и ничего страшного в этом нет
Aleksandr
Евгений
но в рабочем проекте начнется утечка
Евгений
https://play.golang.org/p/1wgUnkkA-Y5
Илья
Евгений
а если кто-то вызовет same 2 раза?
А такое не предполагается :)
По-хорошему, канал quit надо втащить в Same и передавать в Walk.
Использование глобальных переменных - зло. Здесь только ради того, чтобы не менять сигнатуру Walk
Евгений
https://play.golang.org/p/aWZ8mzaV14w
Anonymous
Такой вопрос. Хочу сделать бэкенд для упрощенный проекта типа Яндекс Музыки. MongoDB подойдет?
Илья
L
L
завезли
Andrei 🦉
завезли
значит либо сломали старый функционал, либо это на самом деле не транзакции
чудес не бывает
L
Andrei 🦉
Andrei 🦉
если добавили C, значит сломали A или P
Viacheslav!
Скажите, где лучше делать локализацию шаблона? Бэк или фронт? Одностраничник но с большим количеством текстовых блоков
A
Igor
Товарищи подскажите в каком случае следует или не следует создавать несколько коннектов к одной и той же бд? Речь про postgresql.
Допустим, есть процессы связанные с фронтендом, а есть вычисления бизнес-лоигки. И то и другое всё в одном апи. Бд это рассматривает как два подключения и работает с ними параллельно или она всё равно последовательно обрабатывает запросы и оттуда и оттуда?
Dmitry
Igor
эка красота
Dmitry
Почитайте как реализовывать интерфейс sql.Db
Igor
спасибо.
arkady
ребята, очень хочется почитать или послушать перевод доклада
Concurrency is not parallelism на русском, есть у кого нибудь? я слаб в английском(
Daniel
TWIMC:
вчерашняя проблема с listen оказалась очень странной: нельзя слишком часто открывать-закрывать unix сокеты. от этого что-то где-то ломается, и listen сокет закрывается
надо бы багрепорт написать, но непонятно, куда
Kirill
Daniel
ubuntu 16.04
Daniel
воспроизводится на голом железе, кстати
Oleg
arkady
Oleg
Плюс вот слайды в помощь, потому что на видео там видно чуть менее чем ничего
https://talks.golang.org/2012/waza.slide
Илья
Daniel
ага
Daniel
полный привет
Kirill
Илья
треш :)