Herman
Herman
Минск - город возможностей
Bagasl
Herman
это к теме, что для джунов на го нет вакансий
Herman
а то, что всему можно обучиться самостоятельно - да, и это важный навык
Matvei
Но если посмотреть программу, то это все действительно есть и в открытых источниках
Herman
в программе самое интересное - последние части
Herman
начиная со спринта 4
Herman
ну без учета проектов и тд. то есть многопоточность, профилирование, и тд
Anonymous
очень много хороших англоязычных ресурсов) я просто собрал 5-6 разных сайтов) каждую тему читаю во всех сайтах, параллельно с го тур) на любой вопрос, условно, можно найти ответ в стэк оферфлоу
Bagasl
Ну раз уж такое дело. Есть такой парень, Dave Cheaney зовут (насчёт фамилии не уверен). У него есть блог, в котором он очень интересные вещи касаемо гошки разбирает. Погуглите
Bagasl
Там просто куча отличных статей
Anonymous
только что прикольную вещь нашёл
Anonymous
https://quii.gitbook.io/learn-go-with-tests/
Anonymous
типо как го тур но с тестами
Anonymous
типо пишешь примеры параллельно тесты на них
Anonymous
-
Artyom
вощемта да, yamlMap := make(map[string]interface{}) в такую мапу удалось заАнМаршалить. но выглядит это теперь так
map[cluster:map[projects:map[aa-gol-backends-01:[0.1 200Mi 0.5 400Mi] aa-gol-frontends-01:[0.1 300Mi 0.5 500Mi]]]]
Artyom
причём дотянуться я могу только до yamlMap["cluster"], что возвращает map[projects:map[aa-gol-backends-01:[0.1 200Mi 0.5 400Mi] aa-gol-frontends-01:[0.1 300Mi 0.5 500Mi]]]
Artyom
а вот как это распарсить? может у кого-нибдь уже была такая задача? распарсить "сложный" динамичный yaml?
Bagasl
Andrey
Artyom
Grigory всмысле вложенную структуру?
Anonymous
Слайсы - это структура данных содержащая в себе коллекцию
или же слайсы содержат в себе последовательность определенных данных
Слайсы основаны на массивах.
[]T - Т тип элемента.
Слайс можно создать через ф-цию make.
make([]T, len, cap) []T. Создается массив, возвращается
слайс(этот слайс указывает на массив.)
Слайс - это дескриптор сегмента массива.
У него есть указатель на массив, длина сегмента, вместимость.
Нельзя создать слайс больше его вместимости.
Anonymous
пойдет для ответа?
Anonymous
вот вопрос про concurrency composition - это создание множества экземпляров чего либо, верно?
у меня есть продавец и чтобы ускорить работу я буду создавать экземпляр этого продавца
и нужно ли говорить, что concurrency описывает проблем?
ну разумеется стоит упомянуть, что concurrency и параллелизм это не одно и то же.
concurrency - композиция выполнений какой либо деятельности
параллелизм - это одновременное выполнение нескольких вещей
ну или
concurrency - это взаимодействие с несколькими вещами сразу
а параллелизм - способность делагть много таксок одновременно
надо сказать про горутины, что они выполняется независимо от других ф-ций. что есть каналы. юзается для общения между горутинами
ну еще стоит упомянуть(или понтануться), что при написании кода надо мыслить не как сделать его паралелльным, а как разбить проблему на независимые компоненты, которые можно разделить
Anonymous
пойдет?
Anonymous
упомянул выше. []T где Т тип.
можно добавить, что длину слайса указывать не стоит. это и является основным отличием от массива
массив - это фиксированная структура данных которая содержит коллекцию.
в бошке только одно не укладывается. я не знаю, что мне говорить про аппенд и копи.
Artyom
Artyom
почему-то сами параметры не распарсиваются
Artyom
слайс это же массив, у меня параметры вроде на мапу похожи, могу ошибаться конечно
Anonymous
слайс это указатель на массив
Anonymous
душнила момент
Andrey
ну потому что не правильно понимаешь синтаксис yaml файлов. там не мапа, а вложенная структура
Andrey
мне лень писать пример, но вот тут можешь посмотреть как парсить
https://stackoverflow.com/questions/28682439/go-parse-yaml-file
Bagasl
Слайсы - это структура данных содержащая в себе коллекцию
или же слайсы содержат в себе последовательность определенных данных
Слайсы основаны на массивах.
[]T - Т тип элемента.
Слайс можно создать через ф-цию make.
make([]T, len, cap) []T. Создается массив, возвращается
слайс(этот слайс указывает на массив.)
Слайс - это дескриптор сегмента массива.
У него есть указатель на массив, длина сегмента, вместимость.
Нельзя создать слайс больше его вместимости.
Зачем так сложно ?
Слайс - структура данных, имеющая три поля - data, len, cap.
Data - uintptr на первый элемент массива (массивам из си привет, почитай как они там работают, тут то же самое)
Len - число записанных элементов в массив
Cap - размер массива
Patriot
где внятную инфу по настройке VSCode найти для дебага? что-то все окошко с ошибкой валится.
Bagasl
Patriot
да, натыкал чет разного
Patriot
когда в коде ошибка, почему-то не только в терминал пишет, но и окошко еще вываливает с предложением поправить json
Pushok
Подскажите, как правильно поступить. На гитхабе у меня есть репозиторий под пакет на go, и вот например у него имя go-package. Как мне нужно его назвать в коде, если
package go-package // выдает ошибку (типо тире нельзя)
Patriot
переименовать в гитхабе?
Bagasl
Bagasl
Первая же ссылка ведёт на оф документацию с ответом на твой вопрос
Null
📂 Работа с файлами и директориями в Golang
https://uproger.com/rabota-s-fajlami-i-direktoriyami-v-golang/
@Golang_google
Алексей
Ребята. Привет! Кто может брать шабашки? Нужен мин мидл. Поток задач готовы обеспечить.
Artyom
Vitaly
Артем
Anonymous
при реализации worker pool, если в буферизированный канал передаешь 100 единиц данных (условно) и создаёшь 10 горутин(worker - ов), то эти 100 единиц между этими горутинами делится поровну?
Anonymous
Anonymous
это понятно, но как эти задачи распределяются между горутинами
Anonymous
если 100 задач и 10 горутин
Anonymous
получается разделяются поровну
Anonymous
каждая горутина берет по 10
Артем
если каждая горутина статически берет 10
Артем
это одно
Артем
а если ты просто вывел что одна берет п 10 - то может взять и 9
Артем
и 8
Артем
а другая будет быстрее и возьмет 20
Артем
сделай мутекс мб
Артем
на взятие и на отдачу
Артем
или по какому-то правилу распределяй
Артем
так просто по умолчанию распределятся не будет
Артем
ну чисто теоретически
Артем
ты можешь указать макс заполнение
Артем
для каждого воркера
Артем
на 10 допустим
Артем
и тогда никто из них не будет больше 10 заполняться - а значит они все будут ровно по 10 распределяться
Артем
я могу быть и не прав - просто накидываю как я бы решал
Anonymous
https://go.dev/play/p/TAOfi6fLVyU
Anonymous
глобалки без мутекса
Anonymous
почему у тебя это занимает 20 сек лол
Anonymous
а так это меньше сек