Какие символы команда go fmt использует для отступа?
Anonymous Quiz
26%
4 пробела
21%
Эту функцию можно настроить
10%
2 пробела
43%
Символ табуляции
Какой из нижеприведенных вариантов является верным относительно выражения range в Go?
Anonymous Quiz
19%
При использовании с массивами и слайсами range возвращает индекс элемента как целое число
7%
При использовании с хеш-таблицами range возвращает ключ следующей пары с ключевым значением
12%
Ключевое слово range используется в цикле для повтора элементов массива,слайса,канала или хеш-таблиц
62%
Все приведенные варианты являются верными
Для тех, кто программирует на Go!
Golang-разработчиков с опытом от трех лет приглашают на Go Weekend Offer в Тинькофф. Все этапы интервью можно будет пройти за выходные. А еще вы познакомитесь с командой и спросите обо всем, что вас интересует.
В Тинькофф нет бюрократии, много интересных проектов и прозрачная система карьерного роста. А работать можно в гибридном режиме в офисах в 22 городах России или в Казахстане, Беларуси и Армении.
И главное: Go Weekend Offer состоится 3 и 4 июня. Но подать заявку надо до 31 мая. Регистрируйтесь!
Golang-разработчиков с опытом от трех лет приглашают на Go Weekend Offer в Тинькофф. Все этапы интервью можно будет пройти за выходные. А еще вы познакомитесь с командой и спросите обо всем, что вас интересует.
В Тинькофф нет бюрократии, много интересных проектов и прозрачная система карьерного роста. А работать можно в гибридном режиме в офисах в 22 городах России или в Казахстане, Беларуси и Армении.
И главное: Go Weekend Offer состоится 3 и 4 июня. Но подать заявку надо до 31 мая. Регистрируйтесь!
25 мая в Петербурге – в оффлайн и онлайн формате – пройдет митап для всех, кто только задумывается или уже начал применять Go в коммерческой разработке. Ждем разработчиков любого уровня, лидов и команды!
Регистрируйтесь и приходите или смотрите трансляцию онлайн, участие бесплатное.
>> To Go or not to Go (Евгений Соколов, YADRO)
Рассмотрим ключевые парадигмы программирования на Go. Узнаем, как работают горутины, планировщик, каналы и модули. И поймем, как ускорить изучение языка.
>> Функции, методы и интерфейсы в Gо: особенности и идиомы (Владислав Белогрудов, YADRO)
Вы узнаете, как идиоматично писать функции без побочных эффектов и когда это не работает. Заглянем под капот интерфейсов и устроим небольшие соревнования производительности.
>> Эффективно используем Go в команде (Геннадий Ковалев, YADRO)
Поговорим, что такое хороший код на Go с точки зрения командной разработки, и как средства языка помогут убрать лишние споры, сделать продукт тестируемым, а будущий рефакторинг — спокойным.
Регистрируйтесь и приходите или смотрите трансляцию онлайн, участие бесплатное.
>> To Go or not to Go (Евгений Соколов, YADRO)
Рассмотрим ключевые парадигмы программирования на Go. Узнаем, как работают горутины, планировщик, каналы и модули. И поймем, как ускорить изучение языка.
>> Функции, методы и интерфейсы в Gо: особенности и идиомы (Владислав Белогрудов, YADRO)
Вы узнаете, как идиоматично писать функции без побочных эффектов и когда это не работает. Заглянем под капот интерфейсов и устроим небольшие соревнования производительности.
>> Эффективно используем Go в команде (Геннадий Ковалев, YADRO)
Поговорим, что такое хороший код на Go с точки зрения командной разработки, и как средства языка помогут убрать лишние споры, сделать продукт тестируемым, а будущий рефакторинг — спокойным.
Какой спецификатор следует использовать с fmt.Printf, чтобы напечатать логическое значение?
Anonymous Quiz
59%
%b
18%
%t
19%
%v
3%
%s
Вакансия инженера по эксплуатации ClickHouse
Ozon в поисках разработчика в команду платформы баз данных, без которых не обходится ни один проект или сервис в Ozon. ∼100 инсталляций Clickhouse и несколько крупных кластеров (петабайты данных!). Важно, чтобы они работали быстро и безотказно. Поэтому нужен человек, который умеет копать вглубь и решать сложные технические вопросы.
Что ждут от тебя:
• Владеешь C++ или Golang;
• Знаешь устройство ClickHouse, движков, индексов;
• Работал с Git, Kubernetes, Docker, Kafka, Zookeeper, Ansible/Terraform/Helm;
• Понимаешь внутренности Unix/Linux и инструментов отладки;
Оставить отклик и рассказать о себе можно по ссылке ниже
Откликнуться
Ozon в поисках разработчика в команду платформы баз данных, без которых не обходится ни один проект или сервис в Ozon. ∼100 инсталляций Clickhouse и несколько крупных кластеров (петабайты данных!). Важно, чтобы они работали быстро и безотказно. Поэтому нужен человек, который умеет копать вглубь и решать сложные технические вопросы.
Что ждут от тебя:
• Владеешь C++ или Golang;
• Знаешь устройство ClickHouse, движков, индексов;
• Работал с Git, Kubernetes, Docker, Kafka, Zookeeper, Ansible/Terraform/Helm;
• Понимаешь внутренности Unix/Linux и инструментов отладки;
Оставить отклик и рассказать о себе можно по ссылке ниже
Откликнуться
Каким образом можно изменить значение GOMAXPROCS в Go?
Anonymous Quiz
8%
Его невозможно изменить, так как оно равно количеству доступных процессоров
13%
В коде
79%
Через переменную среды GOMAXPROCS и в коде
С какими типами данных можно использовать оператор “for — range”?
Anonymous Quiz
2%
Слайсы, хеш-таблицы
3%
Слайсы, хеш-таблицы, строки
14%
Массивы, слайсы, хеш-таблицы
82%
Массивы, слайсы, хеш-таблицы, строки
Когда осуществляется вызов метода init()?
Anonymous Quiz
41%
После импорта пакета с определенной функцией init()
5%
Ни один из приведенных вариантов не является верным
21%
Оба приведенных варианта являются верными
33%
Перед функцией main() в основном пакете
👨🏻💻 Реальный вопрос от реального человека
Есть табличное тестирование функции (делал на основании туториалов с официального сайта go). Примечание: Go недавно щупаю.
Условный код:
Если прожать кнопку тестирования несколько раз, то со второго-третьего раза тесты все проходят успешно и больше ошибок не возникает, пока не изменить код. Сначала я думал что дело в vscode, но go test даёт тот же самый эффект.
Пробовал ставить t.Parallel() в главную функцию, не помогает. Есть объяснение что за чародейство и какое решение может быть?
Golang задачи с собеседований
Есть табличное тестирование функции (делал на основании туториалов с официального сайта go). Примечание: Go недавно щупаю.
Условный код:
func TestMyFunc(t *testing.T) {Так вот, у меня в массиве структур порядка 30 позиций для теста, но почему-то возникает ситуация, когда я нажимаю пройти тесты в vscode, некоторые тесты кидают в result просто что-то случайное. Например ожидается какая-то ошибка, но приходит nil, или наоборот, ожидается nil, но приходит ошибка, и третий вариант, ожидается одна ошибка, но приходит совершенна другая(!). При этом корректность функции проверена и точно должна выдавать нужный результат.
testTable := []struct {
name string
input string
want error
}{
{"find_expect_nil", "data", nil},
{"not_find_expect_err", "otherdata", ErrNoData},
}
for _, test := range testTable {
test := test
t.Run(test.name, func(t *testing.T) {
t.Parallel()
err := MyFunc(test.input)
if !errors.Is(err, test.want) {
t.Errorf("input value %s, result: %s, expected: %s", test.input, err, test.want)
}
})
}
}
Если прожать кнопку тестирования несколько раз, то со второго-третьего раза тесты все проходят успешно и больше ошибок не возникает, пока не изменить код. Сначала я думал что дело в vscode, но go test даёт тот же самый эффект.
Пробовал ставить t.Parallel() в главную функцию, не помогает. Есть объяснение что за чародейство и какое решение может быть?
Golang задачи с собеседований
👨🏻💻 Реальный вопрос от реального человека
docker-compose при сборке выдает следующую ошибку:
Мейники лежат по следующей структуре:
cmd/producer/main.go
cmd/consumer/main.go
Два Dockerfile:
docker/consumer/Dockerfile
docker/producer/Dockerfile
Dockerfile consumer:
Golang задачи с собеседований
docker-compose при сборке выдает следующую ошибку:
=> CANCELED [5/5] RUN go build -o consumer-app ./cmd/consumer/main.go 16.7sЗадача запустить два мейника в отдельных контейнерах, но использовать одную и ту же папку для сборки образов.
failed to solve: executor failed running [/bin/sh -c go build -o producer-app ./cmd/producer/main.go]: exit code: 1
Мейники лежат по следующей структуре:
cmd/producer/main.go
cmd/consumer/main.go
Два Dockerfile:
docker/consumer/Dockerfile
docker/producer/Dockerfile
Dockerfile consumer:
FROM golang:1.20Dockerfile producer:
RUN go version
ENV GOPATH=/
COPY ./ ./
RUN go mod download
RUN go build -o consumer-app ./cmd/consumer/main.go
CMD ["./consumer-app/cmd/consumer"]
FROM golang:1.20В docker compose опущу данные кафки и кипера), опишу что касается двух сервисов. docker-compose:
RUN go version
ENV GOPATH=/
COPY ./ ./
RUN go mod download
RUN go build -o producer-app ./cmd/producer/main.go
CMD ["./producer-app/cmd/producer"]
consumer:
build:
context: .
dockerfile: './docker/consumer/Dockerfile'
container_name: "consumer"
ports:
- "8081:8081"
depends_on:
- broker
producer:
build:
context: .
dockerfile: './docker/producer/Dockerfile'
container_name: "producer"
ports:
- "8080:8080"
depends_on:
- broker
Подскажите, что я делаю не так??Golang задачи с собеседований
👨🏻💻 Реальный вопрос от реального человека
Рефлексия и обработка всех структур определенного типа
Пытаюсь реализовать пост-процессинг в проекте, и перед сериализацией в JSON сделать обработку структуры (для ответов API используются разные структуры) с целью конверсии валюты в заданную.
Имеется:
Структура, содержащая цену с валютой
Golang задачи с собеседований
Рефлексия и обработка всех структур определенного типа
Пытаюсь реализовать пост-процессинг в проекте, и перед сериализацией в JSON сделать обработку структуры (для ответов API используются разные структуры) с целью конверсии валюты в заданную.
Имеется:
Структура, содержащая цену с валютой
type Price struct {Структура ответа #1:
Amount decimal.Decimal `json:"Amount"`
Currency string `json:"Currency`"
}
type ExampleRS struct {Дополнительная структура для ответа #2
Total price.Price `json:"Total"`
}
type ResponseEntry struct {Структура ответа #2
ExampleIntValue int `json:"ExampleValue"`
ExampleStringArrayValues []string `json:"ExampleStringArrayValues"`
Price price.Price `json:"Price"`
}
type ExampleListRS struct {
Data []ResponseEntry `json:"Response"`
PerPage uint `json:"Count"`
Pages uint `json:"Pages"`
}
Вопрос - как реализовать метод, принимающий на вход interface{}, или reflect.ValueOf вместо конкретного типа (ExampleListRS или ExampleRS), который будет рекурсивно проходить по структуре, делая проверку на price.Price, и умножающий в ней decimal.Decimal скажем, на 5?Golang задачи с собеседований
👨🏻💻 Реальный вопрос от реального человека
Не работает маршрутизация изображений golang gin
У меня есть загрузка статических файлов на golang, фреймворк Gin.
Но почему-то при запуске всё равно выдаёт 404
Golang задачи с собеседований
Не работает маршрутизация изображений golang gin
У меня есть загрузка статических файлов на golang, фреймворк Gin.
func main() {В html такие пути
// Установка роутера Gin
router := gin.Default()
router.Static("/css", "./css")
<img src= "/css/img/logo3.png">а в самой директории проекта есть папка css, в ней папка img и там изображения.
Но почему-то при запуске всё равно выдаёт 404
Golang задачи с собеседований
В Ozon на Go — 1000+ микросервисов, обеспечивающих работу сайта, склада, логистики, а ещё технологическая платформа и сервисы инфраструктуры.
Звучит интересно? Тогда го в команду Ozon Tech.
Как всё будет?
Ozon приглашает вас на предварительное собеседование, а затем на ивент.
Там вы сможете пообщаться с тимлидами и послушать доклады экспертов.
One Day Offer закончится на афтерпати, а затем вы встретитесь снова уже в качестве коллег.
Если вам нравится этот план, кидайте заявку на странице мероприятия!
Звучит интересно? Тогда го в команду Ozon Tech.
Как всё будет?
Ozon приглашает вас на предварительное собеседование, а затем на ивент.
Там вы сможете пообщаться с тимлидами и послушать доклады экспертов.
One Day Offer закончится на афтерпати, а затем вы встретитесь снова уже в качестве коллег.
Если вам нравится этот план, кидайте заявку на странице мероприятия!