Максим
но проще сразу нормальные контейнера делать, чтобы были продакшен реди
Максим
докер же послойно собирает, так что проблем не вижу
Andrey
но проще сразу нормальные контейнера делать, чтобы были продакшен реди
продакшен реди контейнеры имутабельные, а там вроде задача внутри контейнера что-то делать
Maks
кто за жс шарит
Maks
условно уменя есть объект кей валью. допустим там 2 ключа 2 значения.
Maks
как сделать в конструкторе объекта this.key где key будет меняться
Maks
типо что бы по имени ключа получать переменную например
Илья
кто за жс шарит
@Snawoot настало твоё время
Maks
а, кажется разобрался
Maks
this[key]
Sweety
a := []int{} a := make([]int, 0) Эти две записи чем-то отличаются?
Anton
конечно
Anton
по написанию да, а по факту нет
Anton
у обоих лен и кап нулевой
Anton
ок
https://go.dev/play/p/FLHSlJhHyUA
Илья
Разница будет при объявлении nil слайса var s []int
Anton
почему?
что почему?
Anton
в первом - через литерал во втором - через make()
Илья
А, неправильно прочитал
kostyaBro
Разница будет при объявлении nil слайса var s []int
Нуу можно сказать и не отличается
kostyaBro
Илья
Ого, реально
kostyaBro
Можно в любом месте тыкать кстт
Andrey
Такое и со словом собака работает
Emin Zalaev
Со словом питонист не получилось, а жаль..
Даниил
Хах, решение оказалось не очевидным. Оказывается, в окружении Go была активирована переменная GO111MODULE. Ее отключение командой go env -w GO111MODULE=off убрало поиск моих пакетов в GOROOT и расширило взгляд парсера до директорий GOPATH и включение зависимостей по go.mod. Также пришлось заново использовать go get, но это не проблема =) И в результате удалось собрать учебный проект со всем, что нужно.
Хахаха, еще одно обновление =))) Далее очевидная информация, однако мне стоило много нервов в ней разобраться =))) Но считаю важным написать сюда, потому что представленное решение ошибки: package ... is not in GOROOT неверное, и у меня заработало по счастливому стечению обстоятельств. В общем, разобрался наконец с этой переменной окружения GO111MODULE. В режиме on - всегда видит только модули. В режиме off - только GOPATH и GOROOT В режиме auto - туда и сюда в зависимости от существования go.mod. Ошибка же была в том, что это я дурак, как обычно =))) Изучение go project layout хорошо все прояснило, некоторые эмпирические наблюдения подтвердили точку зрения, представленную ниже. Я никогда не задумывался, куда нужно бросать файл go.mod. Так получилось, что в учебных проектах ее бросаешь вместе с main файлом и оно там живет и в целом хватает. Никто особо не думает объяснять на счет go.mod, что это не просто штука для версионирования, но и точка входа в проект! Оказывается, когда go переходит в режим модуля он за точку отсчета всех путей импортов, указанных в коде (существующих локально, к примеру internal/package.go, импорты из сети это не касается) берет директорию, где лежит go.mod и отсчитывает пути импорта относительно нее. Соответственно, когда я создавал проект и инициировал go.mod в директории main файла, а не проекта, go путался и начинал искать собственные, локальные пакеты от директории cmd/main(пример) - импорта по указанному в коде пути нет(логично), GOPATH - нет вообще, значит нужно искать в стандартной библиотеке - GOROOT - там, логично, тоже нет пакетика - в итоге выдает ошибку, что в GOROOT такого пути импорта\пакета нет. Такая ошибка сбивает, ведь она вообще про другое, а не про то, что go просто найти сам импорт в пакете проекта не может: package ... is not in GOROOT Поэтому решение с присвоением состояния off переменной GO111MODULE - неверное (подсмотрел его на стаковерфлоу и не подумал) и вообще выключать ее не нужно, иначе придется все писать в $GOPATH/src =) А все что нужно - это располагать go.mod в корне проекта и все импорты писать от этого корня, пример: "projectOnGo/internal" Такие пироги. Спасибо что прочитали крик души. Да, звездочки капитана Очевидность обмою =))) Думаю будет полезно для начинающих, ведь особо про go.mod нигде не написано. А это штука оказалась гораздо важнее, чем могло показаться 0_0 вопросы с этой ошибкой встречаются часто и советуют совсем не то, что действительно нужно.
Florian Geyer von Giebelstadt
Привет. Если не сложно, можете скинуть тестовые задания на позицию бек джуна? Сам язык учу в свободное от работы время, для использования в бекенде помимо питона. Хотелось бы попробовать тестовое сделать.
Florian Geyer von Giebelstadt
Хочу опробовать какой-нибудь популярный фреймворк в этом задании
Florian Geyer von Giebelstadt
Но пока мало интересного нашел
kostyaBro
Хочу опробовать какой-нибудь популярный фреймворк в этом задании
Фреймворк не важен, компании такое не спрашивают обычно, это слишком узко
kostyaBro
Сек
Florian Geyer von Giebelstadt
Я видел что обычно спрашивают по теории,а тестовые задания ни разу не видел.Да и на собеседовании по го не был ни разу ещё
kostyaBro
Тут в идеале и шина и бд и json rpc, можно grpc добавить
Florian Geyer von Giebelstadt
kostyaBro
Кеш за пол часа на собесе написать ок. Ну в целом секция кодинга. А тестовое... Когда ты опытный чел, просто пошлешь куда подальше, ещё время тратить
Florian Geyer von Giebelstadt
Ну я в го не опытный,от слова совсем
Кіт ✙
Хахаха, еще одно обновление =))) Далее очевидная информация, однако мне стоило много нервов в ней разобраться =))) Но считаю важным написать сюда, потому что представленное решение ошибки: package ... is not in GOROOT неверное, и у меня заработало по счастливому стечению обстоятельств. В общем, разобрался наконец с этой переменной окружения GO111MODULE. В режиме on - всегда видит только модули. В режиме off - только GOPATH и GOROOT В режиме auto - туда и сюда в зависимости от существования go.mod. Ошибка же была в том, что это я дурак, как обычно =))) Изучение go project layout хорошо все прояснило, некоторые эмпирические наблюдения подтвердили точку зрения, представленную ниже. Я никогда не задумывался, куда нужно бросать файл go.mod. Так получилось, что в учебных проектах ее бросаешь вместе с main файлом и оно там живет и в целом хватает. Никто особо не думает объяснять на счет go.mod, что это не просто штука для версионирования, но и точка входа в проект! Оказывается, когда go переходит в режим модуля он за точку отсчета всех путей импортов, указанных в коде (существующих локально, к примеру internal/package.go, импорты из сети это не касается) берет директорию, где лежит go.mod и отсчитывает пути импорта относительно нее. Соответственно, когда я создавал проект и инициировал go.mod в директории main файла, а не проекта, go путался и начинал искать собственные, локальные пакеты от директории cmd/main(пример) - импорта по указанному в коде пути нет(логично), GOPATH - нет вообще, значит нужно искать в стандартной библиотеке - GOROOT - там, логично, тоже нет пакетика - в итоге выдает ошибку, что в GOROOT такого пути импорта\пакета нет. Такая ошибка сбивает, ведь она вообще про другое, а не про то, что go просто найти сам импорт в пакете проекта не может: package ... is not in GOROOT Поэтому решение с присвоением состояния off переменной GO111MODULE - неверное (подсмотрел его на стаковерфлоу и не подумал) и вообще выключать ее не нужно, иначе придется все писать в $GOPATH/src =) А все что нужно - это располагать go.mod в корне проекта и все импорты писать от этого корня, пример: "projectOnGo/internal" Такие пироги. Спасибо что прочитали крик души. Да, звездочки капитана Очевидность обмою =))) Думаю будет полезно для начинающих, ведь особо про go.mod нигде не написано. А это штука оказалась гораздо важнее, чем могло показаться 0_0 вопросы с этой ошибкой встречаются часто и советуют совсем не то, что действительно нужно.
Спасибо!
kostyaBro
Ситуация экстримадьная только в голове интервьюируемого. Если интервьеры норм то ситуация экстримальноц не будет
kostyaBro
А если ты в 50 строках кода запутался ну извините.
kostyaBro
Тебя ж не просят прям написать идеально, можно дообщаться
kostyaBro
Сказать где бы и как дополнил
Roman
Ситуация экстримадьная только в голове интервьюируемого. Если интервьеры норм то ситуация экстримальноц не будет
Ситуация экстремальная, потому что отличная от привычной На работе никто не ставит задачи "реализуй за полчаса кэш без гугла, а мы будем смотреть в монитор"
kostyaBro
Хочешь доку бери пох
kostyaBro
И вообще нафига тебе гугл в такой ситуации??
kostyaBro
Тебе надо например сохранить в мапу и считать. И мьютекс добавит
kostyaBro
Ладно ты не помнишь как таймаут сделать в дефолтной http либе, и нужна дока но тут...
kostyaBro
Ну да это не для джуна таск согласен
kostyaBro
Я выше хотел сказать что тестовое это так себе... Во первых вы не одни собеседуете. Во вторых не ясно сколько времени было потрачено и не ясно действительно ли таск сделал этот человек
Roman
И вообще нафига тебе гугл в такой ситуации??
а хз, вдруг понадобится, на работе я могу гуглить много чего, а тут ограничение
kostyaBro
Тут ты додумал, речь именно о написании кода в рантайме
Roman
Я выше хотел сказать что тестовое это так себе... Во первых вы не одни собеседуете. Во вторых не ясно сколько времени было потрачено и не ясно действительно ли таск сделал этот человек
Ну с этим я согласен, мне тоже тестовые не нравятся Особенно, когда тестовое плохо сформулировано, а уточнить не у кого, либо уточнений не дают
kostyaBro
Кстати смотрят обычно не на экран а на вкладку где пишешь, можно и шпаргалки подготовить
Roman
И у тебя ж никто за спиной не стоит, есть ты и код, расслабся, схавай глицинчика накрайняк
Но код же шарится, то есть его видишь и ты, и собеседующие А может вылететь из головы даже что-то элементарное
kostyaBro
Ну с этим я согласен, мне тоже тестовые не нравятся Особенно, когда тестовое плохо сформулировано, а уточнить не у кого, либо уточнений не дают
Кстати было интересное тестовое, написать инкрементор, класс. Но составлено очень конкретно. И проверялось именно то что ты не отошёл от тз. Например не заменил int на uint, покрыл тестами, учел многопоточность. И тд
kostyaBro
Всеж все понимают
kostyaBro
Для интервьера это тоже стресс между прочим
Roman
Для интервьера это тоже стресс между прочим
А для него в чем стресс? Его дальнейшая работа не зависит от этого собеседования
kostyaBro
Ого, прикольное
Тут кстати не сразу заметил есть момент что стоит сделать генератор и потребитель через шину чтобы независимо скецлить. И это впервые когда задание было позоже на то что писать на работе. SCADA система
kostyaBro
Например можно взять случайно идиота, или потерять крутого кадра. Он также общается с неизвестным челом. Стресс уменьшается с опытом так же как и у того кто ищет работу
kostyaBro
А для него в чем стресс? Его дальнейшая работа не зависит от этого собеседования
Дальнейшая работа того кто ищет тоже не зависит от конкретно этого собеса
Roman
Дальнейшая работа того кто ищет тоже не зависит от конкретно этого собеса
Зависит От успешности в прохождении собеса зависит попадет ли он в данную компанию или нет
kostyaBro
И точно также есди ты нанял дибила который сделал вид что умный и компания потерпела убытки.. можно и уволить за такое
kostyaBro
А если ты прям стопудов хочешь попасть к ним. Стресс да, но ты подготовишься и скажешь им что ты мотивирован, и тебя с большей вероятностью возьмут