This media is not supported in your browser
VIEW IN TELEGRAM
Когда Питонщик приходит в мир Golang
😁28👎10👍7🥴2
👣 Тестовое задание для Golang разработчика
Тестовое задание для кандидата на должность Golang разработчика.
Описание
Есть внешний сервис, который обрабатывает некие абстрактные объекты батчами. Данный сервис может обрабатывать только определенное количество элементов n в заданный временной интервал p. При превышении ограничения, сервис блокирует последующую обработку на долгое время.
Задача заключается в реализации клиента к данному внешнему сервису, который позволит обрабатывать максимально возможное количество объектов без блокировки. Приводить реализацию внешнего сервиса необязательно!
Определение сервиса:
- язык программирования Golang.
- решение должно быть в git-репозитории (можно прислать архив или опубликовать на github, gitlab, bitbucket...).
Пожелания
- документирование кода;
- тесты;
- использование статического анализатора (конфигурацию положить в репозиторий).
Варианты решений можно присылать в комментарии.
❤️, если нравится такие задачи.
Тестовое задание для кандидата на должность Golang разработчика.
Описание
Есть внешний сервис, который обрабатывает некие абстрактные объекты батчами. Данный сервис может обрабатывать только определенное количество элементов n в заданный временной интервал p. При превышении ограничения, сервис блокирует последующую обработку на долгое время.
Задача заключается в реализации клиента к данному внешнему сервису, который позволит обрабатывать максимально возможное количество объектов без блокировки. Приводить реализацию внешнего сервиса необязательно!
Определение сервиса:
package main
import (
"context"
"errors"
"time"
)
// ErrBlocked reports if service is blocked.
var ErrBlocked = errors.New("blocked")
// Service defines external service that can process batches of items.
type Service interface {
GetLimits() (n uint64, p time.Duration)
Process(ctx context.Context, batch Batch) error
}
// Batch is a batch of items.
type Batch []Item
// Item is some abstract item.
type Item struct{}
Требования- язык программирования Golang.
- решение должно быть в git-репозитории (можно прислать архив или опубликовать на github, gitlab, bitbucket...).
Пожелания
- документирование кода;
- тесты;
- использование статического анализатора (конфигурацию положить в репозиторий).
Варианты решений можно присылать в комментарии.
❤️, если нравится такие задачи.
❤48👍7🔥5💩4
🐍 Почему мы перешли с Python на Go
Поставщик высоконагруженного API Stream перешёл с Python на Go, хотя этот язык знают немногие...
💎 Чат: ссылка
💎 Канал по Golang: @golangprofi
Подробнее: https://habr.com/ru/company/skillfactory/blog/669818/
Поставщик высоконагруженного API Stream перешёл с Python на Go, хотя этот язык знают немногие...
💎 Чат: ссылка
💎 Канал по Golang: @golangprofi
Подробнее: https://habr.com/ru/company/skillfactory/blog/669818/
👍9🤡9👎1
🖥 Goose — инструмент для миграции баз данных
Может запускать миграции в виде файлов SQL на диске или встроенных в функции Go. Это означает, что вы можете отправить автономный двоичный файл для выполнения миграций без каких-либо зависимостей. Поддерживает неупорядоченные миграции. Имеется поддержка БД: Redshift, MySQL, Postgres, Clickhouse и другие.
Стоимость: #бесплатно.
➡️ Инструкции к установке
Может запускать миграции в виде файлов SQL на диске или встроенных в функции Go. Это означает, что вы можете отправить автономный двоичный файл для выполнения миграций без каких-либо зависимостей. Поддерживает неупорядоченные миграции. Имеется поддержка БД: Redshift, MySQL, Postgres, Clickhouse и другие.
Стоимость: #бесплатно.
$ go install github.com/pressly/goose/v3/cmd/goose@latest
🖥 Github➡️ Инструкции к установке
👍11🔥1
👣 Что будет, если размер горутины превысил допустимый максимум?
Если размер стэка горутины превышен (к примеру, запустили бесконечную рекурсию), то приложение упадет с fatal error.
Если размер стэка горутины превышен (к примеру, запустили бесконечную рекурсию), то приложение упадет с fatal error.
runtime: goroutine stack exceeds 1000000000-byte limit
fatal error: stack overflow
👌15
Что выведет код?
Anonymous Quiz
22%
[7 6 5]
17%
[7 0 5 6]
43%
Ошибка компиляции
18%
Посмотреть ответ
👍27🔥6🏆3👏1
Что выведет код?
Anonymous Quiz
10%
0A,1B,2C
21%
0A,1Z,2Z
7%
0A,1M,2M
5%
0A,1M,2C
3%
0A,1Z,2M
7%
0A,1M,2Z
23%
Бесконечный цикл
24%
Посмотреть ответ
👎18💩4👍3
Go после Python: как я учу новый язык
Привет, Хабр! Меня зовут Максим Чижов, я бэкенд-инженер. Несколько месяцев назад мне понадобилось в довесок к основному языку Python выучить также Go. Расскажу, с какими проблемами я столкнулся в процессе и как их решал, а также где я сейчас.
💎 Чат: ссылка
💎 Канал по Golang: @golangprofi
Подробнее: https://habr.com/ru/company/avito/blog/594495/
Привет, Хабр! Меня зовут Максим Чижов, я бэкенд-инженер. Несколько месяцев назад мне понадобилось в довесок к основному языку Python выучить также Go. Расскажу, с какими проблемами я столкнулся в процессе и как их решал, а также где я сейчас.
💎 Чат: ссылка
💎 Канал по Golang: @golangprofi
Подробнее: https://habr.com/ru/company/avito/blog/594495/
👍7👎3💩2
Что выведет код?
Anonymous Quiz
9%
[0 1 2 3] [0 2 3 3 3]
9%
[0 2 3 3] [0 2 3 3 3]
40%
[0 1 2 3] [0 2 3 2 3]
11%
[0 2 3 3] [0 2 3 2 3]
31%
Посмотреть ответ
🤔15👍6❤1
Что Go грядущий нам готовит? Разбираем долгожданный релиз 1.19
Не успели мы до конца оправиться от долгожданного релиза Go 1.18 c дженериками, в котором нам предоставили дженерики, как команда Go анонсировала следующий бета-релиз Go 1.19.
💎 Чат: ссылка
💎 Канал по Golang: @golangprofi
Подробнее: https://habr.com/ru/company/ozontech/blog/674190/
Не успели мы до конца оправиться от долгожданного релиза Go 1.18 c дженериками, в котором нам предоставили дженерики, как команда Go анонсировала следующий бета-релиз Go 1.19.
💎 Чат: ссылка
💎 Канал по Golang: @golangprofi
Подробнее: https://habr.com/ru/company/ozontech/blog/674190/
🤡13👍7👎3🔥1🙈1🎅1
👍5🔥4👨💻2
Использование Golang для разработки Node.js приложений (Node.js: In Go We Trust)
💎 Чат: ссылка
Меня зовут Алексей Новохацкий, я – Software Engineer. Сейчас работаю над архитектурой высоконагруженных систем, провожу технические собеседования, воплощаю в жизнь собственные проекты.
Как известно, Node.js хорошо справляется с I/O intensive задачами. А вот для решения CPU bound мы имеем несколько вариантов – child processes/cluster, worker threads. Также есть возможность использовать другой язык программирования (C, C++, Rust, Golang) в качестве отдельного сервиса/микросервиса или через WebAssembly скрипты.
Подробнее: https://habr.com/ru/post/593537/
💎 Чат: ссылка
Меня зовут Алексей Новохацкий, я – Software Engineer. Сейчас работаю над архитектурой высоконагруженных систем, провожу технические собеседования, воплощаю в жизнь собственные проекты.
Как известно, Node.js хорошо справляется с I/O intensive задачами. А вот для решения CPU bound мы имеем несколько вариантов – child processes/cluster, worker threads. Также есть возможность использовать другой язык программирования (C, C++, Rust, Golang) в качестве отдельного сервиса/микросервиса или через WebAssembly скрипты.
Подробнее: https://habr.com/ru/post/593537/
👍10👎4
📚 Лучшие бесплатные книги Golang 2023.
Есть много доступных книг по GO, некоторые полезные, некоторые не очень. Я думаю, что если вы изучаете Go, вы должны стремиться читать как можно больше книг.
✔️ Смотреть список
Есть много доступных книг по GO, некоторые полезные, некоторые не очень. Я думаю, что если вы изучаете Go, вы должны стремиться читать как можно больше книг.
✔️ Смотреть список
👍17❤2🔥1
👍2😁1
👍10💩4🤡1