TGViewer
Channel Public Channel
Golang Юниор

Golang Юниор

@golangprofi

Канал для начинающих изучать язык программирования Go. Юниоры или Junior - Вперед.

Контент нашего канала состоит из:
- туториалы
- вопросы с собесов
- тесты на знания Go


@viktorreh
@anothertechrock

Чат: https://t.me/+UA9kQbQdpFxmZGY6
Subscribers
4.98K
Photos
257
Videos
6
Links
312

Showing posts older than #753 · Back to latest

Older Posts 19 shown
Post #751 1.4K
Post #750 1.42K
Ты думаешь, что conn.Read() блокирует? Нет. Тебя красиво обманули

В Go ты пишешь максимально прямолинейно: открыл соединение, читаешь данные, ждешь.

Выглядит как обычный blocking I/O. Но если бы это было правдой, любой highload сервис умирал бы уже на нескольких тысячах соединений.

Под капотом работает netpoller. Это часть runtime, которая превращает твой “блокирующий” код в неблокирующую систему с event loop логикой.

Когда goroutine делает conn.Read(), она не блокирует поток. Если данных нет, runtime просто паркует goroutine и освобождает поток для других задач. В этот момент файловый дескриптор уходит в epoll, kqueue или IOCP в зависимости от системы.

Как только ОС говорит “данные готовы”, netpoller будит нужную goroutine и возвращает ее в scheduler. Всё. Никаких потоков на каждое соединение, никакого оверхеда на контекст-свитчи.

И вот тут главный трюк Go. Ты пишешь код как синхронный. Но исполняется он как асинхронный. Без колбэков, без promise, без ручного управления состоянием.

По сути это комбинация scheduler + event loop, спрятанная внутри runtime. Ты не видишь сложность, но получаешь масштабируемость.

Именно поэтому тысячи goroutines могут одновременно ждать I/O почти бесплатно. Каждая занимает килобайты памяти, а не мегабайты как поток.

Но есть нюанс. Netpoller это не бесконечная магия. При экстремальной нагрузке он сам может стать узким местом. Один poll loop, огромное количество событий и привет, рост latency на хвостах.

В итоге Go делает редкий финт. Даёт тебе простой синхронный код и сам превращает его в высоконагруженную асинхронную систему.

https://internals-for-interns.com/posts/go-netpoller/
  • 👍 6
  • ❤ 3
Post #749 1.15K
🔔Новые вакансии по Golang за последние 14 дней

1️⃣ Golang developer / Логистика (Внутренний контроль)
Wildberries
Lead · Remote

2️⃣ Golang-разработчик (SberInfra.Cloud)
Сбер
Remote · г Москва

3️⃣ Golang-разработчик
Туманов Виктор Владимирович
Remote · Омск

4️⃣ Golang developer в Департамент Логистики
Wildberries & Russ
Senior · Remote · Москва

5️⃣ Golang Dev
Supersourcing
Senior · Remote · Remote, India

6️⃣ GoLang Developer
Supersourcing
Middle · Remote · Remote, United States

7️⃣ Golang-разработчик
VK (Сервисы продуктивности VK Tech)
Hybrid · Москва

8️⃣ Golang-разработчик
ЧАКБ «ДАВР БАНК»
Office · Ташкент

9️⃣ Golang developer
Открытая мобильная платформа
Senior · Remote · Москва

1️⃣0️⃣ Golang разработчик в направление Финансового Департамента
Wildberries
Lead · Remote

1️⃣1️⃣ Golang Engineering Manager, Commercial Systems
Canonical
Lead · Remote · Remote, Worldwide

1️⃣2️⃣ Golang Backend Engineer - Latin America- Remote
Azumo
Senior · Remote · Remote, Argentina

1️⃣3️⃣ GoLang Разработчик Backend
Корпу
Remote · Москва · 💰 200 000 – 250 000 RUR

1️⃣4️⃣ Golang разработчик
Иван Королёв
Remote · Омск · 💰 250 000 – 350 000 RUR

1️⃣5️⃣ Golang-разработчик (eHealth)
evrone.ru
Remote · Москва · 💰 до 200 000 RUR

1️⃣6️⃣ Golang developer
MIND Software
Remote · Москва

1️⃣7️⃣ Golang - разработчик
Сбер
Office · г Москва

1️⃣8️⃣ Golang developer/Golang разработчик
Aston
Hybrid · Москва

✈️ Talanto | #вакансии #golang
  • 👍 1
Post #746 1.12K
godotenv в Go: однострочник, который сэкономит тебе нервы (но не в проде)
Если ты работаешь с переменными окружения через joho/godotenv, почти наверняка у тебя в начале main.go живёт классика жанра: импорт пакета, вызов godotenv.Load(), проверка ошибки, log.Fatal на всякий случай. Работает? Да. Красиво? Нет.

А теперь фокус. Подключаешь godotenv/autoload через пустой идентификатор, и всё. Больше ничего писать не надо.

Пустой идентификатор говорит Go: «мне сам пакет не нужен, просто запусти его init()». А в init() как раз и вызывается Load().

Переменные окружения подхватываются до того, как стартует main, и даже до инициализации package-level переменных.

То есть твои var cfg = os.Getenv("...") на уровне пакета уже увидят нужные значения, а не пустоту.

Для скриптов, демок, пет-проектов и быстрых экспериментов это чистая магия.

Минус две трети бойлерплейта и ноль мыслей о том, где и когда загружать .env.

Но вот тебе ложка дёгтя, и она важная. В проде так делать нельзя. Причины простые. Во-первых, autoload молча проглатывает ошибку от Load(). Нет файла, кривые права, битая кодировка — ты об этом не узнаешь, приложение просто запустится с пустыми переменными и начнёт падать где-то глубже, в самом неожиданном месте.

Отлаживать такое удовольствие ниже среднего.

Во-вторых, никакого контроля над тем, какой файл грузить и в каком порядке.

Никаких .env.local, .env.production, никаких фолбэков. Только дефолтный .env в рабочей директории, и точка.

Autoload - отличный инструмент, когда тебе надо быстро и без лишнего шума.

Но как только проект выходит за рамки песочницы, возвращайся к явному Load() с нормальной обработкой ошибок. Явное лучше неявного, особенно когда речь про конфигурацию.
Post #744 1.12K
👣 Reload — это библиотека для Go, разработанная для автоматического обновления ассетов веб-сервера, таких как HTML, CSS и JavaScript, без необходимости вручную перезагружать страницу!

🌟 Она отслеживает изменения файлов на сервере и автоматически передаёт обновления в браузер с помощью WebSocket. Это значительно упрощает процесс разработки веб-приложений, особенно для динамических проектов с частыми изменениями интерфейса.

🌟 Библиотека интегрируется с различными фреймворками Go, используя middleware, и поддерживает управление кэшированием через заголовки Cache-Control. Простота настройки делает Reload удобным инструментом для ускорения разработки и тестирования. Она идеально подходит для разработчиков, которые хотят минимизировать рутинные задачи и сосредоточиться на создании функционального и качественного кода.

🔐 Лицензия: MIT

🖥 Github
Post #741 1.47K
🔔Новые вакансии по Golang за последние 14 дней

1️⃣ Golang разработчик (Platform V Synapse Service Mesh)
Сбер
Remote · Москва

2️⃣ Golang developer / Логистика (Внутренний контроль)
Wildberries
Lead · Remote

3️⃣Golang developer (Рассрочки)
Wildberries & Russ
Senior · Remote · Москва

4️⃣ Golang разработчик (Испытательный центр)
БЮРО 1440
Remote · Москва

5️⃣ GoLang Developer
Supersourcing
Middle · Remote · United States

6️⃣ Golang-разработчик
VK (Сервисы продуктивности VK Tech)
Hybrid · Москва

7️⃣ Golang-разработчик в информационную безопасность
Т-Банк
Ростов-на-Дону

8️⃣ Golang Engineering Manager, Commercial Systems
Canonical
Lead · Remote · Worldwide

9️⃣ Golang Backend Engineer - Latin America- Remote
Azumo
Senior · Remote · Argentina

✈️ Talanto | #вакансии #golang
Post #738 2.04K
Вакансия. Junior Go разработчик
Мы — ITK академия, резиденты Сколково,аккредитованная IT-компания. Помогаем специалистам развиваться и получать реальный коммерческий опыт на проектах наших партнёров. Для junior-разработчиков у нас предусмотрена прозрачная траектория роста и возможность повышения квалификации до уровня Middle.


Сегодня компаниям нужны не просто выпускники курсов, а джуны, готовые к реальной работе.
Именно поэтому многие застревают на этапе «я учился, но меня не берут».
Мы ищем тех, кто готов сделать следующий шаг — войти в профессию, а не просто учиться дальше.
Мы создаём условия, которых обычно не хватает на старте:
реальная практика,
ментор, который всегда на связи,
понятный путь развития,
официальное трудоустройство и стабильность.

Ожидания от кандидата
Понимание работы с реляционными базами данных (PostgreSQL).
Умение писать SQL-запросы, включая простые транзакции, JOIN и оптимизацию запросов.
Опыт работы с Redis (базовые знания).
Уверенные знания синтаксиса языка Go.

Дополнительные требования:

Наличие pet-проектов на GitHub или других платформах, демонстрирующих навыки работы с Go.
Опыт работы с gRPC.
Желание учиться и развиваться в профессиональной среде.
Умение работать в команде.
Ответственность и организованность.
Готовность к решению сложных задач.

Условия работы
Доход 75 000 – 125 000 ₽ (в зависимости от уровня и прогресса).
Официальное трудоустройство после дообучения.
Менторское сопровождение 12 месяцев: помощь, рекомендации, разбор задач.
Работа над реальными проектами компании.
Удалённый формат и гибкий старт рабочего дня.
Пошаговый рост до уровня Middle при активной работе.

Кому подойдёт вакансия:
Тем, кто переходит на Go с другого языка программирования или смежной области.
Тем, кто ценит менторство и стабильность.
Тем, кто хочет официальное трудоустройство в аккредитованной IT-компании.

Откликнуться с резюме и описанием опыта
  • 💩 15
Post #734 1.79K
Вакансии для Golang-разработчиков за последние 14 дней:

Golang Junior Developer. Удалёнка, 70–150 т.р.

Golang Middle+ Developer. Удалёнка (РФ), 270 т.р.

Golang Middle+/Senior Разработчик. Удалёнка (РФ), 220–250 т.р.

Golang Middle+ Разработчик. Удалёнка, до 300 т.р.

Go Developer Middle/Senior. Удалёнка (РФ), 200–450 т.р.

Senior Golang Fullstack Engineer. Удалёнка, 4 000–5 000 $

Golang Senior Разработчик. Удалёнка (РФ), 270–320 т.р.

Golang Senior Разработчик. Удалёнка, 270–320 т.р.

Разработчик на Python и Go. Гибрид

#подборка #go
Post #733 2.23K
Effective Go
Руководство на русском языке

Автор: go.dev
Перевод от:
2024

#go #ru

Скачать
Post #731 1.91K
Вакансии для Golang-разработчиков за последние 14 дней:

Junior Golang Разработчик. Удалёнка, 2000–3200 $

Go/Ruby Middle Backend-разработчик. Удалёнка, 170–220 т.р.

Go Middle+ Разработчик. Удалёнка (РФ), 220–350 т.р.

Go Senior Developer. Удалёнка (по миру)/офис (релок в Ташкент), 5500–7000 $

Senior Golang Engineer. Удалёнка (worldwide, except Belarus and Russia), 4000–5000 $

Golang Senior Разработчик. Офис/гибрид (Москва), 250–420 т.р.

Golang Senior Developer. Удалёнка, 260–300 т.р.

Go Backend-разработчик. Удалёнка, 3500–5000 $

#подборка #go
Post #730 1.7K
🎤 Легкий альтернативный инструмент для распознавания речи Golos

Golos - это компактный инструмент для преобразования речи в текст. Просто удерживайте горячую клавишу, говорите, и ваши слова будут вставлены в нужное место. Идеально подходит для пользователей macOS, которые хотят быстро и удобно вводить текст.

🚀 Основные моменты:
- Легкая настройка с использованием API Deepgram
- Поддержка горячих клавиш для удобства
- Возможность работы в фоновом режиме
- Управление заменами слов и фраз
- Конфигурация через файл или переменные окружения

📌 GitHub: https://github.com/basilysf1709/golos
Post #728 1.5K
✔️ Whosthere - удобный способ посмотреть, кто сейчас в твоей локальной сети

Это инструмент на Go с терминальным интерфейсом (TUI), который быстро показывает устройства в LAN без сложной настройки и без обязательных прав администратора.

Что умеет:

• Находит устройства в сети разными способами (mDNS, SSDP, TCP/UDP sweep), чтобы получить максимально полный список
• Может заполнять и читать ARP-кэш, чтобы определять хосты даже без root-доступа
• Имеет удобный TUI-интерфейс — можно интерактивно просматривать список устройств
• Показывает доп. информацию: производителей устройств (OUI), открытые порты
• Есть режим демона и HTTP API — можно встроить в свои инструменты
• Конфигурируется через YAML

По сути это более удобный и “дружелюбный” способ сделать базовую разведку своей сети без Wireshark и сложных сетевых тулзов.

Репозиторий: github.com/ramonvermeulen/whosthere
Post #727 1.68K
🛠 Go-инструмент для sanity-проверок контейнеров - крошечный бинарник и ноль зависимостей.

Если нужно быстро проверить контейнер перед деплоем, без тяжёлых тулов и образов - preflight как раз про это. Написан на Go, работает автономно, можно встроить в CICD или локальную диагностику.

🔗 https://github.com/vertti/preflight

Канал с вакансиями по GO
  • ❤ 2
Post #725 1.8K
👣 PicoBot - лёгкий open-source инструмент для запуска локальных LLM без сложной инфраструктуры.

Он позволяет:
- общаться с моделями локально
- запускать задачи и команды через AI
- работать без облака и без передачи данных наружу
- быстро развернуть персонального AI-помощника

Тренд на локальный AI усиливается:
• такой инструмент это приватность по умолчанию
• нулевая задержка
• отсутствие API-расходов
• полный контроль над данными и моделями

PicoBot делает вход в локальный AI максимально простым, без тяжёлых фреймворков и сложной настройки.

https://github.com/louisho5/picobot

Канал с вакансиями по GO
  • ❤ 3
  • 👍 1
Post #723 1.74K
Вакансии для Golang-разработчиков за последние 14 дней:

Go-разработчик (Junior → Middle). Удалёнка, 75–120 т.р.

Go Junior Middle Разработчик. Удалёнка, 75–120 т.р.

Golang Middle+ Разработчик. Удалёнка, 250–300 т.р.

Golang Middle+ Разработчик. Удалёнка, 250–300 т.р.

Go Senior Developer. Удалёнка (РФ), до 270 т.р.

Go Senior Разработчик. удалённо/гибрид/офис (Ульяновск), 200–2500 т.р.

Старший Go-разработчик. Удалёнка

Senior Golang Developer. Удалёнка, 3000–4000 $

Go Backend-разработчик. Удалёнка, 3500–5000 $

Golang Senior Developer. Удалёнка, до 5000 €

Go Developer (Blockchain / DeFi). Удалёнка, до 7000 $

Lead Golang Developer. офис (Алматы), 5000–6500 $

Go Senior Developer. удаленно (по миру)/офис (релок в Ташкент), 5500–7000 $

#подборка #go
  • ❤ 1
Post #722 1.87K
👣 Go 1.26: go fix теперь реально модернизирует код

В Go 1.26 команда полностью переписала подкоманду go fix.
Теперь это не просто инструмент совместимости, а система для автоматической модернизации кода.

Что делает новый go fix

* находит устаревшие конструкции
* переписывает код под современные возможности языка
* обновляет использование стандартной библиотеки
* улучшает код без ручного рефакторинга

Как использовать


go fix ./...


Под капотом - набор анализаторов, которые ищут возможности улучшения, а не только ошибки.
Инструмент эволюционирует в сторону умного статического анализа.

Ключевая идея релиза
Self-service анализ.

Компании и мейнтейнеры смогут:

* добавлять собственные правила
* кодировать внутренние стандарты
* автоматически применять best practices ко всему проекту

Языки начинают сами улучшать код за разработчика.

Статический анализ становится частью инженерной культуры, а не отдельным инструментом.

https://go.dev/blog/gofix

Канал с вакансиями по GO
  • 🔥 4
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →