Библиотека Go-разработчика | Golang
23.3K subscribers
2.07K photos
41 videos
87 files
4.44K links
Все самое полезное для Go-разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/32d20779

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4a8c2468
Download Telegram
🔥 Знакомьтесь, преподаватель нашего нового курса по ML — Мария Жарова.

В карточках рассказали, чем Мария занимается и какие советы даёт тем, кто хочет расти в IT и Data Science ☝️

А если вы уже поняли, что тянуть нечего, начните свой путь в ML правильно: с реальной практикой, поддержкой ментора и видимым результатом.

👉 Записывайтесь на курс
🥱32👍1
💡 Заработок или выгорание

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

Когда аутсорсинг — это хорошая идея:

• Аутсорсинг может стать отличным источником дополнительного дохода. Это круто, если нужно накопить на что-то большое.

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

• Это шанс расширить вашу экспертизу и портфолио, а также обрести конкурентное преимущество на рынке.

• В отличие от основной работы, где часто нужно придерживаться жёстких стандартов и сроков, аутсорсинг может быть более гибким.

Когда аутсорсинг — это плохая идея:

• Работая на основном месте, вы можете подписывать соглашения, которые запрещают заниматься сторонними проектами, особенно если они касаются конкурентов.

• Постоянный стресс и нехватка времени могут повлиять на вашу продуктивность и общее самочувствие.

• Ограниченные сроки и нехватка времени могут привести к снижению качества работы или даже к срыву сроков, что скажется на вашей репутации.

💬 Как у вас дела с работой? Хватает одной или пытаетесь успеть везде? Делитесь своими делами в комментариях 👇

🐸Библиотека Go-разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
2
🆕 Семь дней информации

За неделю можно собрать новый стартап, а мы собрали для вас новости и материалы.

Революция в производительности парсинга Protobuf

HyperPB — это новая библиотека для Go, обеспечивающая динамичный и высокопроизводительный парсинг Protobuf-сообщений.

Как настроить Go SDK для Azure Cosmos

В блоге Microsoft описывается, как адаптировать Go SDK для Azure Cosmos DB под реальные условия эксплуатации.

Глубокие vs поверхностные интерфейсы в Go

Обсуждаются два типа интерфейсов: глубокие и поверхностные. Глубокие интерфейсы, как правило, предлагают мощные абстракции с минимальными методами, а поверхностные интерфейсы включают множество методов.

Карьерный козырь в резюме

Как продвинуть резюме в ТОП на HeadHunter

🐸Библиотека Go-разработчика #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
1
🔥 Вы ещё можете застать старый добрый Proglib — с вечным доступом к курсам.

С 1 августа всё меняется: навсегда — останутся только те, кто успел купить сейчас.

-40% на все курсы. Включая обновлённый Python (кроме курса по AI-агентам)

Это не просто распродажа. Это — последняя точка входа в Proglib Academy по старым правилам.

📚 Выбрать и забрать свой курс навсегда → https://clc.to/TBtqYA
😁5🥱2🤔1
🍆 Топ-вакансий для Go-разработчиков за неделю

Senior Golang Developer — от 300 000 ₽, Удалённо (Москва)

Golang-разработчик — Офис (Санкт-Петербург)

Go Developer — до 500 000 ₽, Удалёнка в Москве

Разработчик SIP-сервисов — от 350 000 ₽, Удалённо (Москва)

Middle Golang-разработчик — до 230 000 ₽, Удалёнка в Москве

Бустер — удалённо (не только Москва)

➡️ Еще больше топовых вакансий — в нашем канале Go jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
🛠 Простота в написании тестов

Библиотека should делает из тестов небольшие рассказы. Она превращает привычные утверждения в чистые и интуитивно понятные фразы, такие как «должен быть равен» или «должен быть больше».

Пример:
should.BeGreaterThan(t, 10, 5)
should.BeLessThan(t, 3, 7)
should.BeLessOrEqualTo(t, 5, 10)


Простые и понятные утверждения, которые легко воспринимаются даже новичками.

➡️ Написать читаемые тесты

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
7🤔5👾5
👨‍💻 Ваш идеальный инструмент для разработки

Что для вас важнее: скорость работы, расширяемость, поддержка плагинов или минимализм?

Когда дело доходит до написания кода на Go, выбор IDE или редактора — это почти личное дело каждого.

Давайте соберём статистику, поставьте эмоцию соответствующую вашей IDE:
👍 — VS Code
🤩 — GoLand
👾 — Другие IDE

Также ждём тёплые слова в пользу своего инструмента и камни в огород ненавистных IDE в комментариях 👇

🐸Библиотека Go-разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩133👍124👾34
🔄 Перекладывать JSON теперь проще

Составили промпт, который поможет в ежедневной рутине перемещения жсонов. Достаточно вставить структуру объекта и необходимый формат.

Промпт:
Напиши функцию на Go, которая преобразует JSON-объект с полями [Ваш JSON] в [Ваш формат]. Функция должна корректно обрабатывать ошибки парсинга JSON, возвращая либо строку, где произошла ошибка, либо ошибку.


👇 JSONо-укладчики «+» в чат

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱21🤔51😁1
🔥 Хороший ML-разработчик не начинает с нейросетей

На собеседовании по ML System Design кандидату дают задачу «предсказать отток», а он сразу лезет в нейросети. Красиво, модно, дорого.

Но профи думает иначе:

💭 Логрегрессия? Градиентный бустинг?
💭 А сколько у нас данных и времени?
💭 Что с интерпретируемостью?

Потому что не выбрать адекватную модель — это уже ошибка.

Нейросети — это круто. Но без понимания классического ML вы просто «подключаете модельку», а не строите решения.

➡️ На курсе разберём:

— линейные модели, деревья, PCA, кластеризацию
— метрики, переобучение, bias vs variance
— инженерные подводные камни, которые идут сразу после fit()

🎁 Скидка 10 000₽ по промокоду Earlybird, только до 27 июля.

А ещё — подарок для первых 10 участников: специальный лонгрид по теме курса, чтобы вы могли начать погружение в материал уже сегодня.

🔗 Успей записаться — и начни карьеру в Data Science уже через 3 месяца!
1
👨‍💻 Как работать с регулярными выражениями

В языке Go для работы с регулярными выражениями используется стандартный пакет regexp. Этот пакет позволяет искать, заменять и извлекать части строк на основе шаблонов.

Основные функции пакета regexp

regexp.Compile — компилирует строку в регулярное выражение.

regexp.Match — проверяет, соответствует ли строка регулярному выражению.

regexp.MatchString — проверяет, соответствует ли строка регулярному выражению. Применяется к строкам.

regexp.FindString — находит первое совпадение с регулярным выражением.

regexp.FindAllString — находит все совпадения с регулярным выражением.

regexp.ReplaceAllString — заменяет все совпадения строк на новый текст.

Проверка строки на соответствие регулярке:
package main

import (
"fmt"
"regexp"
)

func main() {
// Пример регулярного выражения для проверки email
re := `^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$`

// Проверка строки
validEmail := "[email protected]"
invalidEmail := "test.com"

// Используем MatchString для проверки
isValid := regexp.MustCompile(re).MatchString(validEmail)
isInvalid := regexp.MustCompile(re).MatchString(invalidEmail)

fmt.Println("Is [email protected] valid email?", isValid) // true
fmt.Println("Is test.com valid email?", isInvalid) // false
}


Поиск первого совпадения:
package main

import (
"fmt"
"regexp"
)

func main() {
re := `\d+` // Шаблон для поиска чисел
str := "The price is 100 dollars."

// Находим первое совпадение
match := regexp.MustCompile(re).FindString(str)
fmt.Println("First match:", match) // "100"
}


Поиск всех совпадений:
package main

import (
"fmt"
"regexp"
)

func main() {
re := `\d+` // Шаблон для поиска чисел
str := "The prices are 100, 200, and 300 dollars."

// Находим все совпадения
matches := regexp.MustCompile(re).FindAllString(str, -1)

fmt.Println("All matches:", matches) // ["100", "200", "300"]
}


Флаги регулярных выражений

В Go также можно использовать флаги для изменения поведения регулярных выражений. Например:

(?i) — делает регулярное выражение нечувствительным к регистру.

(?m) — включает многострочный режим (по умолчанию ^ и $ работают только в начале и в конце всей строки).

Пример с флагом (?i) для нечувствительности к регистру:
package main

import (
"fmt"
"regexp"
)

func main() {
re := `(?i)hello` // Флаг (?i) делает регулярное выражение нечувствительным к регистру
str := "Hello World!"

match := regexp.MustCompile(re).MatchString(str)
fmt.Println("Is match:", match) // true
}


Несмотря на то, что регулярные выражения могут быть сложными для понимания, Go делает их использование интуитивно понятным.

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍112
💬 Почему Go популярный, но «победил» не всех

Go — это язык, который появился в 2007 году в Google. Разработчики языка ставили своей целью создание высокопроизводительного языка, который бы идеально подходил для многопоточных и масштабируемых приложений.

При этом Go — это статически типизированный язык, что даёт ему высокую производительность, но при этом не имеет той сложности, как у Java или C++.

Но почему бы всем не перейти на такой крутой язык?

• В Go нет полноценного наследования, классов и интерфейсов с полиморфизмом, как в Java или C++.

• Go, хотя и имеет активное сообщество и множество пакетов, всё ещё уступает в количестве и разнообразии экосистемы таким языкам, как Java или C++.

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

• Несмотря на высокую производительность Go, язык не даёт такого уровня контроля над памятью и аппаратными ресурсами, как C++.

• Если задача требует низкоуровневой оптимизации или работы с конкретными устройствами, то плюсы будут предпочтительнее.

Go и не нужна эта аудитория, ведь плюсов у него хватает.

• Go — это один из самых простых языков для освоения и написания. Язык спроектирован таким образом, чтобы минимизировать количество концепций и сложных абстракций.

• Благодаря горутинам (легковесным потокам) и каналам (для синхронизации), Go предоставляет удобные и эффективные средства для работы с параллелизмом.

• Go компилируется очень быстро, а скомпилированный код — это просто один исполняемый файл. Это упрощает деплой, особенно для серверных решений.

• В последние годы экосистема Go стремительно развивается. Google, Uber, Dropbox используют Go для решения различных задач, от облачных сервисов до контейнеризации.

💬 Что вы думаете по этому поводу? Каждому языку своё место или Go должен заменить плюсы?

🐸Библиотека Go-разработчика #междусобойчик
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
🐳 Как использовать контейнеры в IDE

Недавно мы спрашивали у вас, какую IDE вы используете, и оказалось, что большая часть из вас работает либо в VS Code, либо в GoLand — причём почти поровну.

Мы любим всех одинаково, поэтому расскажем про фишку для обоих лагерей — Docker.

Docker в VS Code

Чтобы начать работать с Docker в VS Code, вам нужно установить несколько расширений, которые обеспечат полноценную интеграцию:

• Docker — это основное расширение, которое добавит поддержку всех функций Docker.

• Docker Compose — полезно для работы с многоконтейнерными приложениями.

После установки расширений, в боковой панели появится специальная вкладка Docker, которая предоставляет удобный интерфейс для работы с контейнерами

Вы можете видеть все запущенные контейнеры, а также управлять ими: запуск, остановка, перезапуск, удаление.

Также отображаются все доступные Docker-образы. Вы можете запускать контейнеры из образов или создавать новые образы на основе текущего контейнера

Для продвинутых есть вкладка с управлением томами для сохранения данных контейнеров и сетевыми настройками.

Для Go-разработки вы можете отлаживать код прямо в контейнере. Для этого нужно будет настроить отладчик, который будет работать с контейнерами.

В VS Code есть поддержка Remote - Containers, которая позволяет подключаться к работающим контейнерам и использовать их как среду для разработки и отладки.

Docker в GoLand

В GoLand Docker уже интегрирован прямо в IDE, и настройка занимает несколько секунд.

Перейдите в File → Settings → Build, Execution, Deployment → Docker и нажмите «+», чтобы добавить новое подключение Docker.

Если Docker установлен локально, GoLand автоматически подключится к вашему Docker-демону.

Если вы работаете с удалённым сервером, необходимо указать параметры SSH или URL для подключения к удалённому Docker-демону.

💬 Как вы используете Docker в своей разработке? В какой IDE удобнее работать с контейнерами?

🐸Библиотека Go-разработчика #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🥱63
😤 Устал листать туториалы, которые не складываются в картину

У тебя в голове уже есть логрегрессии, деревья, метрики и какая-то PCA, но системного понимания всё нет?

Пора с этим разобраться!

Наш курс по классическому ML:

— научит выбирать адекватные модели под задачу
— разложит метрики, переобучение и bias по полочкам
— покажет, что скрывается за fit/predict, и что с этим делать

🔔 До 27 июля по промокоду Earlybird минус 10.000₽

P.S. Первые 10 участников получат эксклюзивный лонгрид, чтобы начать изучать тему ещё до старта курса.

👉 Поменяй свою жизнь: старт карьеры в AI — успей до закрытия набора!
🥱21
✏️ Как правильно представить пет-проект

Вы часто работаете над пет-проектами или берете фриланс-заказы в свободное время, но не знаете, как правильно представить эти проекты в резюме?

В карточках о том, как превратить даже самый небольшой опыт в весомый аргумент для работодателя.

➡️ Превратите пет-проекты в козырь

🐸Библиотека Go-разработчика
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚1