Golang Books
17K subscribers
316 photos
4 videos
335 files
298 links
Библиотека Golang разработчика

По всем вопросам- @haarrp

@Golang_google - Golang

@golangl - golang chat

@GolangJobsit - golang channel jobs

@golangtests golang tests

@itchannels_telegram - 🔥лучшие ит-каналы

№ 5032829002
Download Telegram
Forwarded from Golang
🛠️ Cloudflare нашла редкий баг в компиляторе Go для ARM64 — ошибка повреждала стек и вызывала краши

Инженеры Cloudflare заметили странные fatal panics на ARM64-серверах, сопровождающиеся сообщениями вроде *“traceback did not unwind completely”*.
Ошибки указывали на то, что Go runtime не может корректно «размотать» стек после паники, а значит — стек повреждён.

После длительного расследования выяснилось: проблема была в самом компиляторе Go для ARM64.
Он иногда разбивал инструкцию на две отдельные операции:

ADD $framesize, RSP, RSP

Если между ними происходило асинхронное прерывание (async preemption), например, от планировщика или сборщика мусора, указатель стека (RSP) переходил в некорректное состояние.

В результате, когда Go runtime пытался «размотать» стек для трассировки ошибки, он сталкивался с повреждёнными адресами и завершался крашем.

Cloudflare смогла воспроизвести баг на минимальном примере: функция с большим стеком вызывала panic, и если прерывание происходило ровно между двумя частями инструкции, процесс завершался segmentation fault.

Исправление уже включено в версии Go 1.23.12, 1.24.6 и 1.25.0.

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

Cloudflare подчёркивает: подобные ошибки встречаются крайне редко и проявляются только под высокой нагрузкой на ARM-серверах.
Но этот случай показывает, насколько сложно отлавливать низкоуровневые race condition-баги, которые могут оставаться незаметными годами, пока не сойдутся «идеальные» условия.

📌Подробнее: https://blog.cloudflare.com/how-we-found-a-bug-in-gos-arm64-compiler/

@Golang_google
👍185🥰1
16 октября пройдёт совместный митап 2ГИС и Lamoda Tech — офлайн и онлайн. Доклады, факапы, еда, пиво и люди, которые говорят на одном языке — Go.

📍 Москва, Новоданиловская наб., 12, офис 2ГИС, 14 этаж
🕖 19:00 — 23:00

В программе:
— Дмитрий Буров, Lamoda Tech: «За кулисами асинхронности: корутины, горутины и правда между ними»
— Павел Шнель, 2ГИС: «Интеграции под нагрузкой: практики и последствия решений»
— Разгоны факапов от спикеров и участников. За лучшие факапы — фирменный мерч.

После — афтерпати и нетворкинг. Скучно не будет!

👉 Регистрация


Реклама. ООО "ДУБЛЬГИС" ИНН: 5405276278 Erid: 2RanymgKstm
3
🖥 Гайд по PostgreSQL для продвинутых разработчиков

PostgreSQL – одна из самых мощных СУБД с открытым исходным кодом. Этот гайд подробно охватывает ключевые аспекты PostgreSQL: от внутренней архитектуры до приёмов оптимизации. Мы рассмотрим администрирование, производительность, расширения, инструменты, а также сравним популярные ORM для Python и Go. В конце приведён список продвинутых вопросов, часто встречающихся на собеседованиях.

🟠Гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥42
🖥 Новый курс на Stepik - PostgreSQL для разработчиков: от основ к созданию API

Здесь на пальцах объясняют не только как писать SQL-запросы, а строить настоящие backend-сервисы с базой данных как у профи.

В этом курсе ты шаг за шагом создашь REST API на FastAPI + PostgreSQL:
от установки среды и первых таблиц - до масштабируемого приложения с безопасностью и CRUD-операциями.

🔹 На практике разберете:
• SQL-запросы, фильтры, агрегаты и подзапросы
• Связи между таблицами и нормализацию БД
• Взаимодействие Python и PostgreSQL
• Реализацию REST API и подключение базы
• Оптимизацию и разбор реальных задач с собеседований

После курса у вас будет свой работающий API-проект и реальные навыки работы с PostgreSQL в продакшене.

🎁 Сегодня –30% от цены!

🚀 Прокачаю свои знания: https://stepik.org/course/255542/
Please open Telegram to view this post
VIEW IN TELEGRAM
3😁3👏2👍1🥰1
👣 Как писать универсальный код в Go с дженериками

Долгое время Go-разработчики обходились без дженериков. Для универсальных алгоритмов приходилось использовать interface{} и приводить типы вручную, теряя типобезопасность и читаемость.
С выходом дженериков Go наконец-то получил нативный способ писать универсальный, но строгий по типам код.

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

Пример 1. Универсальное сравнение разных типов


func Compare[T ~int | ~int64 | ~float64 | ~string](a, b T) int {
if a < b {
return -1
} else if a > b {
return 1
}
return 0
}



Теперь можно сравнивать любые значения базовых типов — без кучи копий кода и без interface{}.

Пример 2. Типобезопасная коллекция Set


type Set[T comparable] map[T]struct{}

func NewSet[T comparable]() Set[T] { return make(Set[T]) }

func (s Set[T]) Add(v T) { s[v] = struct{}{} }
func (s Set[T]) Has(v T) bool { _, ok := s[v]; return ok }
func (s Set[T]) Delete(v T) { delete(s, v) }

func main() {
users := NewSet[string]()
users.Add("alice")
users.Add("bob")

nums := NewSet[int]()
nums.Add(1)
nums.Add(2)

fmt.Println(users.Has("bob")) // true
fmt.Println(nums.Has(3)) // false
}


Один тип Set теперь подходит и для string, и для int — без потери типобезопасности.

Практические советы

- Если функция используется только в одном месте, дженерик может быть избыточен.

- Дженерики - это про безопасность типов и читаемость, а не про автоматическое ускорение.

Применяйте их, когда реально хотите избавиться от дублирования и сохранить строгую типизацию.

Дженерики это не просто синтаксический сахар, а инструмент, который делает Go ближе к языкам уровня production-инженерии, где читаемость и надёжность важнее микрооптимизаций.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍115🔥4
📘 На Stepik вышел курс — «Golang для продвинутых»
 Уже знакомы с Go и хотите перейти на следующий уровень? Этот курс — именно то, что нужно, чтобы прокачать свои навыки.

🔍 Что вы получите:
Глубокое понимание ключевых тем: goroutines, channels, context, garbage collector, genericsРешение реальных инженерных задач: конкурентность, сетевое программирование, работа с базами данныхБолее 200 интерактивных заданий с автопроверкой — всё в браузере, без установки, в удобное для вас время

🎓 Сертификат по завершении — добавьте его в резюме или профиль LinkedIn

🚀 Прокачайте Go с пользой и удовольствием. Начните уже сегодня и получите скидку 25%, которая действительна в течение 48 часов

👉 Пройти курс на Stepik
2
🖥 Полный гайд: защита от SQL-инъекций для разработчиков

SQL-инъекции остаются одной из самых частых и опасных уязвимостей в веб-приложениях. Ошибка в одном запросе — и злоумышленник получает доступ к базе данных, паролям и пользовательским данным.

В этом материале — полный практический разбор:
как именно происходят SQL-инъекции, какие ошибки разработчиков к ним приводят, как их распознать в коде и главное — как защититься.

Разберём реальные примеры на Python, PHP и Go, посмотрим, как атакующий «взламывает» запрос, и научимся писать безопасный код с параметризованными запросами и ORM.

Это не теория, а руководство, которое поможет понять уязвимость изнутри и навсегда закрыть её в своих проектах.

👉 Читать гайд
Please open Telegram to view this post
VIEW IN TELEGRAM
4🔥3🥰2👍1
👣 Отличный воркшоп для тех, кто хочет понять, как устроен свой ИИ-агент изнутри.

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

Без воды и интерфейсной шелухи — чистая практика и архитектура:

- подключение к API Claude,
- создание чат-бота на Go,
- добавление инструментов для чтения и правки кода,
- обработка ошибок и ответов,
- построение агента, который обучается на своих действиях.

После этого воркшопа Cursor может начать напрягаться: https://github.com/ghuntley/how-to-build-a-coding-agent
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53🔥1
1 ноября Яндекс приглашает на Я.Субботник по Go. Встреча, где в уютной атмосфере можно обсудить всё: от архитектуры и инструментов до свежих релизов.

Гостей ждут выступления экспертов:

- Александр Никитин, старший разработчик бэкенда Яндекс Маркета, расскажет о способе логирования Debug Tree
-Александр Демиденко, старший разработчик бэкенда Yandex Cloud, выступит с докладом «Userspace Networking на Go: когда net уже не справляется»
-Игорь Панасюк, разработчик бэкенда Плюса и Финтеха, разберёт, является ли новый garbage collector в Go 1.25 эволюционным улучшением, и как новый greenteagc влияет на работу сервисов

Доклады — только часть программы. В Москве для участников будут организованы круглые столы по использованию AI-инструментов, нетипичному применению Golang, будущему языка и другим темам.

Узнать детали и зарегистрироваться
🤬32👍1🔥1
👣 Go 1.25.3 и Go 1.24.9 - исправление ошибок после обновления безопасности

Команда Go выпустила минорные версии 1.25.3 и 1.24.9, чтобы устранить проблемы, появившиеся после предыдущего патча (1.25.2 и 1.24.8).

Тогда была введена слишком строгая проверка X.509-сертификатов, из-за чего часть приложений перестала работать.
Теперь эти ограничения удалены, но исправление уязвимости сохранено.

Разработчики приносят извинения и рекомендуют всем обновиться.
Подробнее: go.dev/doc/devel/release#go1.25.3

📡 Анонс: https://groups.google.com/g/golang-announce/c/YEyj6FUNbik/m/_SDlIvxuCAAJ

⬇️ Скачать: https://go.dev/dl/#go1.25.3

👉 Зеркало в Max

@Golang_google

#golang
Please open Telegram to view this post
VIEW IN TELEGRAM
👍73🔥1
🔍Тестовое собеседование с Go-разработчиком из VK уже завтра

16 октября(уже завтра!) в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Go-разработчика.

Как это будет:
📂 Владислав Кирпичов, Go-разработчик в VK, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Владислав будет комментировать каждый ответ респондента, чтобы дать понять, чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Владиславу

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Go-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир
@shortcut_sh_bot

Реклама.
О рекламодателе.
Please open Telegram to view this post
VIEW IN TELEGRAM
1🤬1
Forwarded from Machinelearning
🧬Gemma C2S-Scale 27B помогла учёным найти новый способ борьбы с раком

Исследователи из Google Research и Calico применили эту модель, чтобы анализировать активность генов в клетках и искать вещества, усиливающие иммунный отклик против опухолей.

В чем сложность: многие опухоли остаются «холодными» - иммунная система их «не замечает». Чтобы обратить это, нужно вызвать экспрессию антигенов (antigen presentation), но делать это точно, только там, где уже есть слабый иммунный сигнал, но не всем клеткам подряд.

Gemma смогла предсказать, что комбинация препарата silmitasertib (ингибитор CK2) и низкой дозы интерферона повышает экспрессию MHC-I - это делает “холодные” опухоли более заметными для иммунной системы.

🔬 Результаты лабораторных тестов подтвердили прогноз модели:

- совместное применение действительно усилило работу антигенов примерно на 50 % и это может стать основой для новых видов иммунотерапии.

Главное достижение: ИИ не просто ускорил анализ данных, а сформулировал новую научную гипотезу, которая нашла подтверждение в реальных экспериментах.

Это пример того, как большие модели выходят за рамки генерации текста - они начинают открывать новые лекарства и механизмы действия.

🟠Подробнее: https://blog.google/technology/ai/google-gemma-ai-cancer-therapy-discovery
🟠Статья: https://www.biorxiv.org/content/10.1101/2025.04.14.648850v2
🟠Github: https://github.com/vandijklab/cell2sentence

@ai_machinelearning_big_data


#AI #GoogleDeepMind #BioTech
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3🥰1