Forwarded from Библиотека задач по Go | тесты, код, задания
Anonymous Quiz
18%
Поле во встроенной структуре становится недоступным, так как оно скрывается полем внешней структуры.
15%
Структура вызывает ошибку компиляции из-за дублирования имен.
64%
Поле во встроенной структуре остаётся доступным через обращение к внутренней структуре
3%
Невозможно обратиться к скрытому полю, так как это вызовет ошибку компиляции.
Senior Golang Developer — от 300 000 ₽, Удалённо (Москва)
Golang-разработчик — Офис (Санкт-Петербург)
Go Developer — до 500 000 ₽, Удалёнка в Москве
Разработчик SIP-сервисов — от 350 000 ₽, Удалённо (Москва)
Middle Golang-разработчик — до 230 000 ₽, Удалёнка в Москве
Бустер — удалённо (не только Москва)
Please open Telegram to view this post
VIEW IN TELEGRAM
🛠 Простота в написании тестов
Библиотека should делает из тестов небольшие рассказы. Она превращает привычные утверждения в чистые и интуитивно понятные фразы, такие как «должен быть равен» или «должен быть больше».
Пример:
Простые и понятные утверждения, которые легко воспринимаются даже новичками.
➡️ Написать читаемые тесты
🐸 Библиотека Go-разработчика #буст
Библиотека should делает из тестов небольшие рассказы. Она превращает привычные утверждения в чистые и интуитивно понятные фразы, такие как «должен быть равен» или «должен быть больше».
Пример:
should.BeGreaterThan(t, 10, 5)
should.BeLessThan(t, 3, 7)
should.BeLessOrEqualTo(t, 5, 10)
Простые и понятные утверждения, которые легко воспринимаются даже новичками.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7🤔5👾5
Что для вас важнее: скорость работы, расширяемость, поддержка плагинов или минимализм?
Когда дело доходит до написания кода на Go, выбор IDE или редактора — это почти личное дело каждого.
Давайте соберём статистику, поставьте эмоцию соответствующую вашей IDE:
👍 — VS Code
🤩 — GoLand
👾 — Другие IDE
Также ждём тёплые слова в пользу своего инструмента и камни в огород ненавистных IDE в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩121👍116👾34
🔄 Перекладывать JSON теперь проще
Составили промпт, который поможет в ежедневной рутине перемещения жсонов. Достаточно вставить структуру объекта и необходимый формат.
Промпт:
👇 JSONо-укладчики «+» в чат
🐸 Библиотека Go-разработчика #буст
Составили промпт, который поможет в ежедневной рутине перемещения жсонов. Достаточно вставить структуру объекта и необходимый формат.
Промпт:
Напиши функцию на Go, которая преобразует JSON-объект с полями [Ваш JSON] в [Ваш формат]. Функция должна корректно обрабатывать ошибки парсинга JSON, возвращая либо строку, где произошла ошибка, либо ошибку.
👇 JSONо-укладчики «+» в чат
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱20🤔5❤1😁1
Please open Telegram to view this post
VIEW IN TELEGRAM
💯35🌚5
🔥 Хороший ML-разработчик не начинает с нейросетей
На собеседовании по ML System Design кандидату дают задачу «предсказать отток», а он сразу лезет в нейросети. Красиво, модно, дорого.
Но профи думает иначе:
💭 Логрегрессия? Градиентный бустинг?
💭 А сколько у нас данных и времени?
💭 Что с интерпретируемостью?
Потому что не выбрать адекватную модель — это уже ошибка.
Нейросети — это круто. Но без понимания классического ML вы просто «подключаете модельку», а не строите решения.
➡️ На курсе разберём:
— линейные модели, деревья, PCA, кластеризацию
— метрики, переобучение, bias vs variance
— инженерные подводные камни, которые идут сразу после fit()
🎁 Скидка 10 000₽ по промокодуEarlybird , только до 27 июля.
А ещё — подарок для первых 10 участников: специальный лонгрид по теме курса, чтобы вы могли начать погружение в материал уже сегодня.
🔗 Успей записаться — и начни карьеру в Data Science уже через 3 месяца!
На собеседовании по ML System Design кандидату дают задачу «предсказать отток», а он сразу лезет в нейросети. Красиво, модно, дорого.
Но профи думает иначе:
💭 Логрегрессия? Градиентный бустинг?
💭 А сколько у нас данных и времени?
💭 Что с интерпретируемостью?
Потому что не выбрать адекватную модель — это уже ошибка.
Нейросети — это круто. Но без понимания классического ML вы просто «подключаете модельку», а не строите решения.
➡️ На курсе разберём:
— линейные модели, деревья, PCA, кластеризацию
— метрики, переобучение, bias vs variance
— инженерные подводные камни, которые идут сразу после fit()
🎁 Скидка 10 000₽ по промокоду
А ещё — подарок для первых 10 участников: специальный лонгрид по теме курса, чтобы вы могли начать погружение в материал уже сегодня.
🔗 Успей записаться — и начни карьеру в Data Science уже через 3 месяца!
В языке 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 делает их использование интуитивно понятным.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
Go — это язык, который появился в 2007 году в Google. Разработчики языка ставили своей целью создание высокопроизводительного языка, который бы идеально подходил для многопоточных и масштабируемых приложений.
При этом Go — это статически типизированный язык, что даёт ему высокую производительность, но при этом не имеет той сложности, как у Java или C++.
Но почему бы всем не перейти на такой крутой язык?
• В Go нет полноценного наследования, классов и интерфейсов с полиморфизмом, как в Java или C++.
• Go, хотя и имеет активное сообщество и множество пакетов, всё ещё уступает в количестве и разнообразии экосистемы таким языкам, как Java или C++.
• Для более специализированных случаев может не быть готовых решений или библиотек, которые уже давно доступны в более зрелых языках.
• Несмотря на высокую производительность Go, язык не даёт такого уровня контроля над памятью и аппаратными ресурсами, как C++.
• Если задача требует низкоуровневой оптимизации или работы с конкретными устройствами, то плюсы будут предпочтительнее.
Go и не нужна эта аудитория, ведь плюсов у него хватает.
• Go — это один из самых простых языков для освоения и написания. Язык спроектирован таким образом, чтобы минимизировать количество концепций и сложных абстракций.
• Благодаря горутинам (легковесным потокам) и каналам (для синхронизации), Go предоставляет удобные и эффективные средства для работы с параллелизмом.
• Go компилируется очень быстро, а скомпилированный код — это просто один исполняемый файл. Это упрощает деплой, особенно для серверных решений.
• В последние годы экосистема Go стремительно развивается. Google, Uber, Dropbox используют Go для решения различных задач, от облачных сервисов до контейнеризации.
💬 Что вы думаете по этому поводу? Каждому языку своё место или Go должен заменить плюсы?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8
🐳 Как использовать контейнеры в 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-разработчика #буст
Недавно мы спрашивали у вас, какую 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 удобнее работать с контейнерами?
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🥱5❤1
😤 Устал листать туториалы, которые не складываются в картину
У тебя в голове уже есть логрегрессии, деревья, метрики и какая-то PCA, но системного понимания всё нет?
Пора с этим разобраться!
Наш курс по классическому ML:
— научит выбирать адекватные модели под задачу
— разложит метрики, переобучение и bias по полочкам
— покажет, что скрывается за fit/predict, и что с этим делать
🔔 До 27 июля по промокодуEarlybird — минус 10.000₽
P.S. Первые 10 участников получат эксклюзивный лонгрид, чтобы начать изучать тему ещё до старта курса.
👉 Поменяй свою жизнь: старт карьеры в AI — успей до закрытия набора!
У тебя в голове уже есть логрегрессии, деревья, метрики и какая-то PCA, но системного понимания всё нет?
Пора с этим разобраться!
Наш курс по классическому ML:
— научит выбирать адекватные модели под задачу
— разложит метрики, переобучение и bias по полочкам
— покажет, что скрывается за fit/predict, и что с этим делать
🔔 До 27 июля по промокоду
P.S. Первые 10 участников получат эксклюзивный лонгрид, чтобы начать изучать тему ещё до старта курса.
👉 Поменяй свою жизнь: старт карьеры в AI — успей до закрытия набора!
❤1🥱1
Вы часто работаете над пет-проектами или берете фриланс-заказы в свободное время, но не знаете, как правильно представить эти проекты в резюме?
В карточках о том, как превратить даже самый небольшой опыт в весомый аргумент для работодателя.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁29❤2🥱2
🥱21❤2😁1
🤔 «Начни сразу с нейросетей — зачем тебе логрегрессия?»
Это один из худших советов для начинающего ML-разработчика. Зрелость — это понимать, где простого достаточно, а не тянуть трансформеры на любую задачу из-за хайпа.
Классика ML — это не допотопная теория, а база (bias/variance, деревья, метрики), без которой не понять Deep Learning.
⚡️ Хотите освоить этот фундамент на реальных задачах? Приходите на наш курс по классическому ML. Только хардкор, только продовые задачи!
📆 Старт — 12 августа.
Для первых 10 участников бонус — специальный лонгрид по теме курса, чтобы вы могли начать разбираться уже сейчас.
🎁 Последний день промокодаEarlybird на скидку 10.000₽.
👉 Не упустите шанс!
Это один из худших советов для начинающего ML-разработчика. Зрелость — это понимать, где простого достаточно, а не тянуть трансформеры на любую задачу из-за хайпа.
Классика ML — это не допотопная теория, а база (bias/variance, деревья, метрики), без которой не понять Deep Learning.
⚡️ Хотите освоить этот фундамент на реальных задачах? Приходите на наш курс по классическому ML. Только хардкор, только продовые задачи!
📆 Старт — 12 августа.
Для первых 10 участников бонус — специальный лонгрид по теме курса, чтобы вы могли начать разбираться уже сейчас.
🎁 Последний день промокода
👉 Не упустите шанс!
👍3
Каждую неделю выходят полезные материалы, а мы собираем их в одном месте.
— Создание собственного ИИ-маскота
Автор показывает, как разработать перетаскиваемого, кликабельного и анимированного персонажа для рабочего стола, который может взаимодействовать с пользователем и служить визуальным помощником.
— Адаптация gopls к растущей экосистеме Go
С выходом версии v0.12 gopls была проведена переработка его ядра, из-за чего удалось сократить время запуска и потребление памяти в среднем на 75%.
— Не нужно разделять память и потоки
Безопасность памяти невозможно гарантировать без учёта безопасности потоков. В многопоточных системах ошибки в управлении потоками, такие как гонки, могут приводить к неопределённому поведению, даже если ошибки в памяти отсутствуют.
— Реализация деревьев Меркла на Go
Автор объясняет, как с помощью хэш-функций можно эффективно и безопасно подтверждать наличие данных в больших наборах, таких как блокчейны.
Please open Telegram to view this post
VIEW IN TELEGRAM