🔄 Релиз Go 1.26
Команда Go представила версию 1.26 с улучшениями языка, рантайма и инструментария.
Ключевые нововведения:
➡️ Язык
• Функция new теперь принимает выражения с начальным значением
• Дженерики получили поддержку самоссылающихся типов для сложных структур данных
➡️ Производительность
• Green Tea GC теперь включён по умолчанию.
• Накладные расходы cgo сократились примерно на 30%
• Компилятор чаще размещает слайсы на стеке
➡️ Инструменты
• go fix переписан с нуля: автоматические модернизации кода под новые возможности языка
• Встроенные анализаторы помогают использовать фичи эффективнее
➡️ Стандартная библиотека
• Три новых пакета: crypto/hpke, crypto/mlkem/mlkemtest, testing/cryptotest
➡️ Экспериментальное:
• simd/archsimd — работа с SIMD-инструкциями
• runtime/secret — безопасная очистка криптографических данных
➡️ Блог разработчиков
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoLive
Команда Go представила версию 1.26 с улучшениями языка, рантайма и инструментария.
Ключевые нововведения:
• Функция new теперь принимает выражения с начальным значением
• Дженерики получили поддержку самоссылающихся типов для сложных структур данных
• Green Tea GC теперь включён по умолчанию.
• Накладные расходы cgo сократились примерно на 30%
• Компилятор чаще размещает слайсы на стеке
• go fix переписан с нуля: автоматические модернизации кода под новые возможности языка
• Встроенные анализаторы помогают использовать фичи эффективнее
• Три новых пакета: crypto/hpke, crypto/mlkem/mlkemtest, testing/cryptotest
• simd/archsimd — работа с SIMD-инструкциями
• runtime/secret — безопасная очистка криптографических данных
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27🔥11👏4
Каждый разработчик на Go должен написать свой инструмент. Вот ещё один пример отличного проекта.
gottp — это альтернатива Postman и Insomnia для тех, кто живёт в терминале.
Проект поддерживает HTTP/REST, GraphQL, WebSocket и gRPC. Коллекции запросов хранятся в YAML-файлах, есть переменные окружения с интерполяцией, а импортировать данные можно из cURL, Postman или Insomnia.
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
❤11🔥8
Middle+ Golang-разработчик (ИИ-код) — 230 000 - 320 000 ₽. Удаленно (Москва)
Senior Golang Engineer в команду Отелло — до 550 000 ₽. Гибрид/Офис (Москва, Санкт-Петербург, Новосибирск)
Junior Go Developer — от 75 000 до 120 000 ₽. Удаленно (Казань)
#GoWork
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤3
benchmark_test.go
11 KB
🚀 5 техник оптимизации Go
Оптимизация в Go нужна, когда приложение упирается в CPU, память или задержки в проде. Но Дональд Кнут прав: преждевременная оптимизация портит код, так что сначала замерьте узкие места.
Запускайте бенчмарки через
Для глубокого анализа используйте pprof: импортируйте
Полный бенчмарк приложим отдельным файлом. Ниже будут сами техники.
📎 Преаллокация слайсов
Слайсы в Go динамические — они растут, когда заканчивается место.
Если знаете размер заранее, то укажите ёмкость:
При указанной ёмкости будет 0 реаллокаций и предсказуемое потребление памяти. Лучше выделить чуть больше памяти, чем делать реаллокации.
📎 strings.Builder для строк
Строки в Go иммутабельны. Каждая операция
Правило: если видите
📎 Избегание конверсий []byte в string
Слайсы байт — изменяемые, а строки нет. Чтобы гарантировать, что строка не изменится, при конверсии
Работайте с одним типом до конца. Если данные пришли как
Unsafe вариант. Используйте осторожно — только если
Zero-copy, но небезопасно eсли
📎 Буферы для I/O
Каждый вызов
Ядро эффективнее обрабатывает большие блоки данных, чем россыпь мелких запросов.
Eсли делаете >100 операций I/O в цикле — используйте буферизацию.
📎 Выравнивание полей в структурах
Процессор читает память словами — на 64-bit системе — 8 байт за раз. Если поле структуры не выровнено на границу слова, CPU придётся делать два чтения вместо одного.
Чтобы этого избежать, компилятор добавляет отступы — пустые байты для выравнивания. Но если поля расположены неоптимально, отступ может съесть много памяти.
Правила выравнивания:
• Сортируйте поля от большего к меньшему размеру
• Группируйте маленькие поля вместе
• Используйте инструменты для проверки
Эти техники — инструменты для конкретных проблем, а не обязательный чеклист для каждого проекта.
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoToProduction
Оптимизация в Go нужна, когда приложение упирается в CPU, память или задержки в проде. Но Дональд Кнут прав: преждевременная оптимизация портит код, так что сначала замерьте узкие места.
Запускайте бенчмарки через
go test -bench=. -benchmem или go test -cpu=1,2,4. Они покажут наносекунды на операции, аллокации и объекты в GC.Для глубокого анализа используйте pprof: импортируйте
net/http/pprof, соберите профиль curl localhost:8080/debug/pprof/profile?seconds=30, разберите go tool pprof.Полный бенчмарк приложим отдельным файлом. Ниже будут сами техники.
Слайсы в Go динамические — они растут, когда заканчивается место.
Если знаете размер заранее, то укажите ёмкость:
make([]int, 0, известныйРазмер)
При указанной ёмкости будет 0 реаллокаций и предсказуемое потребление памяти. Лучше выделить чуть больше памяти, чем делать реаллокации.
Строки в Go иммутабельны. Каждая операция
s = s + "x" создаёт новую строку, копируя старую.strings.Builder — это буфер, который растёт как слайс. Вы добавляете части, а в конце получаете готовую строку одним вызовом String().Правило: если видите
s += something в цикле — меняйте на Builder.Слайсы байт — изменяемые, а строки нет. Чтобы гарантировать, что строка не изменится, при конверсии
string([]byte) Go всегда копирует данные. Даже если вы не планируете менять слайс.Работайте с одним типом до конца. Если данные пришли как
[]byte — используйте функции для []byte.data := []byte("payload")
str := string(data) // копирование
if strings.Contains(str, "error") { ... }
// Без копирования
if bytes.Contains(data, []byte("error")) { ... }Unsafe вариант. Используйте осторожно — только если
[]byte не изменяется:func unsafeString(b []byte) string {
return *(*string)(unsafe.Pointer(&b))
}Zero-copy, но небезопасно eсли
[]byte освободится — строка будет указывать на мусор.Каждый вызов
Write() в файл или сеть — это системный вызов. Программа переключается, ядро делает операцию, возвращает управление. Это дорого.Ядро эффективнее обрабатывает большие блоки данных, чем россыпь мелких запросов.
bufio.Writer — буфер для таких вызовов. Вы пишете в буфер, когда буфер заполнится или вы вызовете Flush() — данные уходят одним большим куском.Eсли делаете >100 операций I/O в цикле — используйте буферизацию.
Процессор читает память словами — на 64-bit системе — 8 байт за раз. Если поле структуры не выровнено на границу слова, CPU придётся делать два чтения вместо одного.
Чтобы этого избежать, компилятор добавляет отступы — пустые байты для выравнивания. Но если поля расположены неоптимально, отступ может съесть много памяти.
Правила выравнивания:
• Сортируйте поля от большего к меньшему размеру
• Группируйте маленькие поля вместе
• Используйте инструменты для проверки
Эти техники — инструменты для конкретных проблем, а не обязательный чеклист для каждого проекта.
📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
❤20👍6
Чтобы ваши агенты не были такими глупыми приходите на наш курс по разработке AI-агентов
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoGiggle
📍 Навигация: Вакансии • Задачи • Собесы
#GoGiggle
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8❤4
🤖 Контрольный слой для продовых AI-систем
Когда компания внедряет LLM в продакшн, возникает проблема: как контролировать то, что уходит к OpenAI или Anthropic? Как убедиться, что модель не получит персональные данные клиентов или не выполнит SQL-инъекцию через подключенную базу данных?
AxonFlow решает эту задачу, размещаясь между вашим приложением и LLM-провайдером. Платформа проверяет каждый запрос на соответствие политикам безопасности ещё до того, как он достигнет модели.
Cистема анализирует не только входящие запросы, но и ответы от подключённых баз данных через MCP-коннекторы. Если в ответе обнаружены признаки эксплуатации уязвимостей, данные не передаются дальше.
Исходный код открыт, разработка ведётся на Go с покрытием тестами.
➡️ Репозиторий
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoToProduction
Когда компания внедряет LLM в продакшн, возникает проблема: как контролировать то, что уходит к OpenAI или Anthropic? Как убедиться, что модель не получит персональные данные клиентов или не выполнит SQL-инъекцию через подключенную базу данных?
AxonFlow решает эту задачу, размещаясь между вашим приложением и LLM-провайдером. Платформа проверяет каждый запрос на соответствие политикам безопасности ещё до того, как он достигнет модели.
Cистема анализирует не только входящие запросы, но и ответы от подключённых баз данных через MCP-коннекторы. Если в ответе обнаружены признаки эксплуатации уязвимостей, данные не передаются дальше.
Исходный код открыт, разработка ведётся на Go с покрытием тестами.
📍 Навигация: Вакансии • Задачи • Собесы
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9🥱4👍3
🪴 Бустим продуктивность
Температура воздуха, растения на столе и даже звуки вокруг влияют на вашу работоспособность сильнее, чем вы думаете.
➡️ В карточках 5 базовых советов, а в статье продвинутые лайфхаки
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
Температура воздуха, растения на столе и даже звуки вокруг влияют на вашу работоспособность сильнее, чем вы думаете.
📍 Навигация: Вакансии • Задачи • Собесы
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔7👍6❤2
Код на картинке достаточно прост, чтобы скомпилировать его в голове. Загвоздка лишь в том, что на разных версиях вывод будет разный.
Попробуйте разгадать какая версия изменит этот код и в чём конкретно будет разница.
Ответ:
📍 Навигация: Вакансии • Задачи • Собесы
#ReadySetGo
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱12
Собираем фулл-хаус: 3 курса по цене 1
Хватит выбирать между «полезно», «модно» и «для души». Мы запустили механику, которая позволяет собрать кастомный стек навыков без удара по бюджету: покупаете один курс — два других забираете бесплатно.
Highload требует базы. Прокачайте алгоритмы и структуры данных для оптимизации производительности и архитектуру и шаблоны проектирования для создания надёжных микросервисов.
Для тех, кто хочет расширить стек (особенно в сторону ML) — полный набор по AI: от математики и ML-старта до разработки автономных агентов.
Ну и классика: обновлённый Python (стандарт в Data Science) и основы IT для тех, кто хочет закрыть пробелы.
Собрать свой пак
Хватит выбирать между «полезно», «модно» и «для души». Мы запустили механику, которая позволяет собрать кастомный стек навыков без удара по бюджету: покупаете один курс — два других забираете бесплатно.
Highload требует базы. Прокачайте алгоритмы и структуры данных для оптимизации производительности и архитектуру и шаблоны проектирования для создания надёжных микросервисов.
Для тех, кто хочет расширить стек (особенно в сторону ML) — полный набор по AI: от математики и ML-старта до разработки автономных агентов.
Ну и классика: обновлённый Python (стандарт в Data Science) и основы IT для тех, кто хочет закрыть пробелы.
Собрать свой пак
Отдохнём в эту субботу от бэкенда и поиграемся с фронтом.
Тёмные паттерны — не только UX-грех, но и проблема для фронтенда. Наткнулись на игру, в которой нужно уворачиваться от всех попыток выманить у вас деньги, кликая по правильным кнопкам «Skip».
📍 Навигация: Вакансии • Задачи • Собесы
#GoGiggle
Please open Telegram to view this post
VIEW IN TELEGRAM
❤🔥4
Библиотека Go-разработчика | Golang
📍 Навигация: Вакансии • Задачи • Собесы 🐸 Библиотека Go-разработчика #GoGiggle
🔄 GoRL v2.0.0
GoRL — это библиотека для ограничения запросов на Go, которая недавно получила мажорное обновление v2.0.0.
GoRL поддерживает четыре алгоритма ограничения и работает как с in-memory хранилищем, так и с Redis для распределённых систем.
Что нового
• Lock-free in-memory хранилище
• Автоматическая сборка мусора для истёкших ключей
• Context-aware API
• Zero-config middleware для всех популярных фреймворков
• Оптимизированные алгоритмы
➡️ Репозиторий | Release Notes
📍 Навигация: Вакансии • Задачи • Собесы
🐸 Библиотека Go-разработчика
#GoLive
GoRL — это библиотека для ограничения запросов на Go, которая недавно получила мажорное обновление v2.0.0.
GoRL поддерживает четыре алгоритма ограничения и работает как с in-memory хранилищем, так и с Redis для распределённых систем.
Что нового
• Lock-free in-memory хранилище
• Автоматическая сборка мусора для истёкших ключей
• Context-aware API
• Zero-config middleware для всех популярных фреймворков
• Оптимизированные алгоритмы
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤2
Главный фокус на Go 1.26, но помимо этого были события.
— Go 1.26
— ИИ хотел завалить разработчиков JetBrains
Чат-бот во время пожарной тревоги ответил в Slack, что не стоит беспокоится и тревога учебная. Тревога не была учебной.
— Оптимизации кода + бенчмарк
— Бустим продуктивность
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Anonymous Poll
48%
Паттерны работы с каналами
23%
Выбор фреймворка для разработки
17%
Тестирование
34%
Работа с БД
25%
Всё и сразу!
Крестики-нолики в реальном времени, запускаемые прямо в терминале через SSH.
Отличный пример для первого проекта: SSH как протокол доступа, Go для backend-логики, Firebase для состояния, Bubble Tea для интерфейса
📍 Навигация: Вакансии • Задачи • Собесы
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5😁2