Please open Telegram to view this post
VIEW IN TELEGRAM
😁43😢1
Использование стандартного подхода с
b.N
для тестирования производительности может быть полезным, но это не дает самых точных результатов. Для этого лучше использовать новый метод testing.B.Loop
для улучшения точности бенчмарков.В традиционном методе бенчмарков в Go, цикле от 0 до
b.N
, вы тестируете функцию или метод, который повторяется b.N раз.Однако, при таком подходе могут возникнуть несколько проблем:
Пример использования
testing.B.Loop
:func BenchmarkMyFunction(b *testing.B) {
for b.Loop() {
// Код, производительность которого необходимо измерить
}
}
Рекомендуется использовать b.Loop в любом новом бенчмарке, так как это позволяет вам избежать ряда потенциальных проблем с точностью тестирования и оптимизацией.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17❤2
Пилим крутую подборку ноутов для кодеров в 2025-м и хотим собрать реальный фидбек от тех, кто в теме!
Какой ноут спасает вас в кодинге и почему?
Расскажите все:
• Что за зверь (модель, начинка)
• Где жмет и где радует в ежедневной работе
• На какие фишки смотреть при выборе
• Как вам с ним живется
Топовые советы попадут в нашу статью!
💬 Делитесь в комментах 👇 Сделаем годный гайд, который реально поможет коллегам!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Когда дело доходит до доступа к базе данных, мир делится на два лагеря:
• Писать SQL — это прошлый век. Зачем самому лезть в кишки, если можно красиво и декларативно?
• GORM, Ent, XORM — всё уже придумано. Ассоциации, миграции, preloading, всё есть.
• Быстро собрать MVP? ORM — твой друг. CRUD за 5 минут, остальное — потом.
SQL руками — философия настоящего разработчика:
• Хочется понять, что реально происходит? Тогда нужно писать руками.
• Полный контроль над запросами, никакой магии, всё читается чётко.
• Оптимизация, читаемость, отладка — всё проще, когда ты не в плену ORM-абстракций.
💬 А на чём строите своё DAO-королевство вы? GORM, sqlx, Ent или database/sql на самописных запросах? Ждём вас в комментариях 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8❤2👍2🥱2
🔍 Поиск по структуре в GoLand
Structural Search and Replace — это как Ctrl+F, только с пониманием структуры кода, а не просто текста.
➖ Как его использовать
➖ Например, хочется заменить все
По шаблону найдём все вызовы:
И заменим их на:
Все вызываемые методы изменятся, а сообщение останется тем же.
➖ Ещё один простой пример по поиску всех функций, в которые передаётся один аргумент
🐸 Библиотека Go разработчика #буст
Structural Search and Replace — это как Ctrl+F, только с пониманием структуры кода, а не просто текста.
Ctrl + Shift + A → Replace Structurally
log.Println
на zap.S().Info
По шаблону найдём все вызовы:
log.Println($msg$)
И заменим их на:
zap.S().Info($msg$)
Все вызываемые методы изменятся, а сообщение останется тем же.
int
:func $name$($arg$: int) { $body$ }
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🌚3🔥2😁2❤1
🎧 104 выпуск подкаста Cup o' Go
Не пропустите новый эпизод подкаста Cup o' Go, где ведущие как всегда анализируют самые важные новости и обновления в мире Go.
Что обсудили на этот раз:
• Уязвимость в пакете x/net: ошибка парсинга HTML, связанная с некорректной интерпретацией тегов с незакавыченными атрибутами, заканчивающимися символом слэша.
• «IngressNightmare»: критическая уязвимость в Ingress NGINX, позволяющая неаутентифицированное удаленное выполнение кода.
• Добавление команды
🖇 Слушать обсуждение новостей
🐸 Библиотека Go разработчика #свежак
Не пропустите новый эпизод подкаста Cup o' Go, где ведущие как всегда анализируют самые важные новости и обновления в мире Go.
Что обсудили на этот раз:
• Уязвимость в пакете x/net: ошибка парсинга HTML, связанная с некорректной интерпретацией тегов с незакавыченными атрибутами, заканчивающимися символом слэша.
• «IngressNightmare»: критическая уязвимость в Ingress NGINX, позволяющая неаутентифицированное удаленное выполнение кода.
• Добавление команды
go mod verify -tag
🖇 Слушать обсуждение новостей
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
🔒 Go 1.24.2 и 1.23.8 — важные патчи безопасности
Выпущены свежие минорные версии Go, что поправили:
• Закрыта уязвимость в net/http (CVE-2025-22871): http принимал некорректные chunked-запросы, заканчивающиеся только
• Фикс "out of memory" в компиляторе
• Улучшена работа с cgo и профилировщиками
🐸 Библиотека Go разработчика #свежак
Выпущены свежие минорные версии Go, что поправили:
• Закрыта уязвимость в net/http (CVE-2025-22871): http принимал некорректные chunked-запросы, заканчивающиеся только
\n
вместо \r\n
• Фикс "out of memory" в компиляторе
• Улучшена работа с cgo и профилировщиками
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18
Если вы работаете с языком Go и уверены в своих знаниях — самое время это проверить.
Это мини-экзамен перед собеседованием: синтаксис, тонкости работы с горутинами, ошибки, которые делают даже опытные разработчики.
Please open Telegram to view this post
VIEW IN TELEGRAM
🌚12
Please open Telegram to view this post
VIEW IN TELEGRAM
😁51
🎲 Go-квест: разгадай кроссворд
Если вы осваиваете язык Go или просто хотите повторить базовые понятия — этот кроссворд для вас.
1. Как называется легковесный поток выполнения в Go, создаваемый с помощью ключевого слова go?
2. Какое ключевое слово в Go используется для отложенного выполнения функции до выхода из окружающей функции?
3. Какой механизм синхронизации используется в Go для блокировки доступа к разделяемым ресурсам?
4. Какой оператор в Go позволяет обрабатывать несколько каналов одновременно?
5. Как в Go называется структура данных, представляющая собой динамический массив?
6. Какой пакет в Go используется для управления временем жизни горутин и отмены операций?
💬 Пишите ответы под спойлер в комментарии 👇
🐸 Библиотека Go разработчика #междусобойчик
Если вы осваиваете язык Go или просто хотите повторить базовые понятия — этот кроссворд для вас.
1. Как называется легковесный поток выполнения в Go, создаваемый с помощью ключевого слова go?
2. Какое ключевое слово в Go используется для отложенного выполнения функции до выхода из окружающей функции?
3. Какой механизм синхронизации используется в Go для блокировки доступа к разделяемым ресурсам?
4. Какой оператор в Go позволяет обрабатывать несколько каналов одновременно?
5. Как в Go называется структура данных, представляющая собой динамический массив?
6. Какой пакет в Go используется для управления временем жизни горутин и отмены операций?
Please open Telegram to view this post
VIEW IN TELEGRAM
👾7👍4😁3🥱2
☕️ Дайджест недели: после первой чашки кофе
Коротко и по делу: собрали для вас новости из мира Go.
➖ Тестирование с
➖ Написано на Go: GitHub выпускает MCP-сервер для интеграции с API
➖ Revive v1.8.0
➖ Новый эпизод подкаста Cup o' Go
➖ Минорные патчи безопасности Go
➖ Поучаствуйте в нашей подборке ноутов
➖ Проверьте свои знания Go
🐸 Библиотека Go разработчика #свежак
Коротко и по делу: собрали для вас новости из мира Go.
b.loop
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Forwarded from Библиотека Go для собеса | вопросы с собеседований
Затенение
var x int = 10 // глобальная переменная
func main() {
x := 20 // локальная переменная, затеняющая глобальную
fmt.Println(x) // Выведет 20, потому что локальная переменная затеняет глобальную
}
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23
Forwarded from Библиотека задач по Go | тесты, код, задания
goto
для перехода из одной функции в другую👻 — Это приведёт к ошибке компиляции, так как
goto
работает только внутри одной функции.🌚 — Это возможно, но только если функции находятся в одном пакете.
⚡️ — Это приводит к стековому переполнению, так как переход между функциями дорогостоящий.
🎉 —
goto
разрешает переход между функциями, но лучше использовать обычные вызовы функций.Please open Telegram to view this post
VIEW IN TELEGRAM
🎉52👏3👍2👾2
Forwarded from Библиотека джависта | Java, Spring, Maven, Hibernate
В каждой команде бывают специалисты, чья ценность не укладывается в привычные метрики продуктивности. Они редко в топе по количеству закрытых задач, но именно их вклад критически важен для общего результата.
Такие люди помогают менее опытным коллегам разобраться в сложных вопросах, улучшают архитектуру и процессы незаметными правками, предотвращают ошибки ещё до того, как они стали задачами, создают культуру качества, которую не видно в отчётах.
Иногда стоит пересмотреть, как мы оцениваем эффективность. Потому что не все цифры отражают суть.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍9❤1
🔧 Установка
go get github.com/patrickmn/go-cache
🚀 Быстрый пример
c := cache.New(5*time.Minute, 10*time.Minute)
c.Set("foo", "bar", cache.DefaultExpiration)
val, found := c.Get("foo")
if found {
fmt.Println("Found:", val)
}
• 5m — TTL по умолчанию для всех ключей
• 10m — интервал очистки просроченных ключей
• можно указать cache.NoExpiration — чтобы хранить вечно
🛠 Полезные методы
// Установить с TTL
c.Set("key", "value", time.Minute)
// Получить значение
c.Get("key")
// Удалить ключ
c.Delete("key")
// Очистить всё
c.Flush()
💬 Какой либой для кэша пользуетесь вы? Делитесь в комментариях👇
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥13👍7🤔5
Гоферы!
Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый Go-разработчик.
➡️ Поддержать канал: https://t.iss.one/boost/goproglib
Проголосуйте за наш канал, и в сторис мы опубликуем топ материалов, которые должен прочитать каждый Go-разработчик.
Please open Telegram to view this post
VIEW IN TELEGRAM
3🥱15😢2❤1🔥1
Forwarded from Библиотека девопса | DevOps, SRE, Sysadmin
🤦♂️ Я забил на споры о микросервисах с архитекторами, и вот почему
С момента появления концепции микросервисов прошло уже несколько лет. За это время появилось много споров о её эффективности.
Зачем спорить о микросервисах, если можно просто посмотреть на факты? Давайте разберёмся, что действительно важно
➡️ Читать статью
💬 Как вы относитесь к микросервисам? Использовали ли вы их в своих проектах? Ждём ваши комментарии 👇
🐸 Библиотека devops'a
С момента появления концепции микросервисов прошло уже несколько лет. За это время появилось много споров о её эффективности.
Зачем спорить о микросервисах, если можно просто посмотреть на факты? Давайте разберёмся, что действительно важно
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🥱6🌚1
lazygit — это удобный и понятный интерфейс для работы с Git прямо в терминале. Настоящая находка для тех, кто ценит скорость и наглядность.
Решение конфликтов, переключение веток, работа с stash, выполнение rebase или amend — всё это становится проще, потому что действия визуализированы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩8❤2👍2🎉1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁37👍2🌚2
🌐 Чек-лист: как искать работу
Чтобы не застрять в вечной отладке своей карьеры, держим в голове (и перед глазами) понятный план. Вот чек-лист на период поиска:
✅ Обновите резюме и профиль (и да, Go-модули на GitHub — тоже)
Покажите, что у вас не только есть опыт, но и Golang под капотом:
• актуальные технологии (Go 1.20+, gRPC, PostgreSQL, Redis, Kafka, Docker и пр.).
• внятные результаты («снизил время отклика API на 40%», а не «делал API»).
• ссылки на GitHub с чистыми, рабочими проектами (а не репо «test123» с одним файлом main.go).
✅ Сформулируйте ключевые навыки и корректные поисковые запросы.
Рекрутеры — не экстрасенсы. Упростите им жизнь и напишите в резюме: Gin, Echo, Fiber, REST/gRPC, PostgreSQL, Redis, Kafka, RabbitMQ, CI/CD, Kubernetes.
Даже если вы фанат net/http — упомяните это тоже.
✅ Следите за вакансиями регулярно, но без стресса
• Настройте уведомления на LinkedIn, Habr Career, hh.
• Подпишитесь на каналы с вакансиями, например, наш канал с вакансиями для трушных go-разработчиков.
✅ Готовьтесь к собеседованиям заранее
• Освежите основы: goroutines, channels, context, interfaces, error handling.
• Разберитесь с нюансами работы garbage collector, конкурентного доступа и профилирования.
• Подготовьте истории про то, как вы спасали прод — но без «встал и всё заработало».
💬 Сколько в среднем ищете работу? Пару дней или пару месяцев? Пишите в комментарии👇
🐸 Библиотека Go разработчика #буст
Чтобы не застрять в вечной отладке своей карьеры, держим в голове (и перед глазами) понятный план. Вот чек-лист на период поиска:
Покажите, что у вас не только есть опыт, но и Golang под капотом:
• актуальные технологии (Go 1.20+, gRPC, PostgreSQL, Redis, Kafka, Docker и пр.).
• внятные результаты («снизил время отклика API на 40%», а не «делал API»).
• ссылки на GitHub с чистыми, рабочими проектами (а не репо «test123» с одним файлом main.go).
Рекрутеры — не экстрасенсы. Упростите им жизнь и напишите в резюме: Gin, Echo, Fiber, REST/gRPC, PostgreSQL, Redis, Kafka, RabbitMQ, CI/CD, Kubernetes.
Даже если вы фанат net/http — упомяните это тоже.
• Настройте уведомления на LinkedIn, Habr Career, hh.
• Подпишитесь на каналы с вакансиями, например, наш канал с вакансиями для трушных go-разработчиков.
• Освежите основы: goroutines, channels, context, interfaces, error handling.
• Разберитесь с нюансами работы garbage collector, конкурентного доступа и профилирования.
• Подготовьте истории про то, как вы спасали прод — но без «встал и всё заработало».
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4🔥1