Daniel
расстройство психики
Co(n)stantine👨🔬
🏁Александр
ну как это
🏁Александр
идеальный код это когда сторонний разработчик садится, открывает и говорит - да я все понял
Daniel
анекдот такой есть
энштейн умер, попал в рай.
господь его спрашивает - ты очень умный, энштейн, и порадовал меня. чего хочешь?
энштейн - напиши мне формулу вселенной, господи
ну, господь сотворил доску, пишет. большая доска, почти вся исписанная.
и тут энштейн такой - господи, у тебя в восьмой строке ошибка!!!
господь повернулся и отвечает - я в курсе!
🏁Александр
if (a == 132) { b(c()) } // не идеальный
Pavel
🏁Александр
🏁Александр
вот Daniel тут насмотрелся
Pavel
Ну че тут смотреть
Pavel
Вопросы ж в основном задают те, кто го тур не прошёл 😂
Daniel
я lоклад на СС делал про говнокод на go
Pavel
Daniel
нету, я прям с листа, с гитхаба
Daniel
если перечитаю на митапе на каком-нибудь - будет запись, наверное
Pavel
Да меня больше пример кода интересует.
Daniel
https://github.com/keroserene/go-webrtc/blob/master/demo/chat/chat.go
Pavel
Для примера выглядит нормально.
Daniel
нет
Daniel
ни-хе-ра
Daniel
это реальный говнокод
Vadim
ребята, а как итерироваться по изменяющемуся слайсу? например, если в процессе итерации удаляешь из слайса или добавляешь в слайс элемент?
Vadim
я только через goto сумел(
Daniel
в этом смысле слайс иммутабельный
Daniel
изменение длины всегда приводит к появлению нового слайса
Vadim
соответственно я сделал единственно возможный вариант?
Алексей
не надо использовать goto пожалуйста
Daniel
ну - вариантов больше одного, но все они связаны с прерыванием процесса
Vadim
Daniel
но что за задача-то такая?
Pavel
Алексей
Vadim
Daniel
ну - описывайте
Pavel
И старый после прохода выкидывай
Vadim
ну - описывайте
ну я по определенному критерию выбрасываю из слайса элементы и через goto вхожу в цикл снова
Daniel
тут больше интересно - как именно коллега удаляет элемент, если он не последний
Vadim
slice = append(slice[:i], slice[i+1:]...)
Aleksandr
Daniel не факт, что новый слайс https://play.golang.org/p/mQk1Rqhr3Qy
Vadim
Daniel
p0rsche
Вообщем, решил свою проблему через sync.Cond и Broadcast. примеров в доках нету. Спасибо
Daniel
спасибо, не знал
там же копирование всех элементов от i+1 случается на каждом удалении
Vadim
Vadim
или я не так понял
Daniel
Алексей
так - да, вполне корректно.
Тут я могу поспорить. Потому что в общем случае массивы и слайсы - это всё таки упорядоченные коллекции и менять порядок в них для удалении элемента может быть не всегда корректно, точнее почти всегда некорректно
Vadim
сорян, я ниче не понял
Vadim
оставлю как есть
Pavel
Daniel
p0rsche
Энивей, проблему порешал. Broadcast зарешал
Pavel
https://golang.org/pkg/sync/#Cond.Wait
Pavel
Не совсем пример, но годно.
Pavel
А тут же есть Тим Лиды или те, кто в команду нанимают себе людей-разработчиков. Вопрос: вы берёте себе в команды джуниоров? (Не по оплате, а по навыкам)
Daniel
иногда
Daniel
когда проект позволяет
Daniel
а что?
Pavel
Интересно — часто ли позволяет и зачем?
Aleksandr
Скинуть рутину дабы освободить мидлов и сеньоров для более важных таск?
Aleksandr
как одна из причин
Daniel
джуниор обладает отрицательно стоимостью. как монгольский космонавт на орбите.
Daniel
но из него может вырасти мидл, или даже сеньер, и тогда все окупится
Pavel
Daniel
если в проекте есть деньги на инвестиции в будущее - нанимать джунов пачками, увольнять непригодных и снова нанимать может оказаться выигрышной стратегией
Диёр
Viktor
V
все уходят, так выгодней 🙂
Artem
Pavel