Подборка новостей уходящей недели
— Go 1.25.2 и 1.24.8
— DataGrip теперь бесплатный
— Сравнение Go-библиотек для интеграции Ollama
— golang.org/x/net v0.45.0
Устранены две критические уязвимости в html-парсере
— Свежий Cup o' Go
Про релизы языка с фиксами и конференции по Go.
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤1
💬 Что из контента за эту неделю зацепило лично вас? Делитесь, интересно обсудить👇
🐸 Библиотека Go-разработчика
#GoTalk
#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
В proglib.academy — Глобальная распродажа знаний ‼️
💥 Весь октябрь –40% на те курсы, которые выбирают чаще всего.
👉 Успей забрать свой курс на proglib.academy
💥 Весь октябрь –40% на те курсы, которые выбирают чаще всего.
Курсы с практикой, без воды и пафоса.
Просто берёшь и делаешь апгрейд.
👉 Успей забрать свой курс на proglib.academy
🥱8😁5🌚1
Ваш код компилируется, запускается и работает корректно, но при этом может быть в разы медленнее, чем мог бы. Компилятор не выдаст ошибку — ведь технически всё правильно.
Анализаторы кода замечают: выполняется очень часто, а её структура блокирует инлайнинг — одну из ключевых оптимизаций компилятора.
Представьте: вы написали функцию, которая складывает два числа. Простейшая операция. Но каждый раз, когда программа её вызывает, происходит целая церемония:
1.Процессор прыгает к адресу функции в памяти
2. Сохраняет контекст — где он был, куда вернуться
3. Создаёт новый фрейм стека для аргументов и локальных переменных
4. Выполняет полезную работу (наконец-то!)
5. Разрушает фрейм стека
6.Прыгает обратно и восстанавливает контекст
Для сложения двух чисел весь этот оркестр может занять в 10-100 раз больше времени, чем сама операция сложения.
Как обнаружить проблему
1. Используйте линтеры, они укажут напрямую где и что не инлайнится
2. Спросите компилятор:
go build -gcflags='-m' your_file.go
3. Профилирование выдаст симптомы
go test -bench=. -cpuprofile=cpu.prof
go tool pprof cpu.prof
Если видите, что процессор тратит 20% времени на вызов функции, которая делает return a + b — проблема очевидна.
Как писать код правильно с самого начала
• Уменьшайте функции
• Выносите defer за пределы частоиспользуемых функций
• Разделяйте быстрый и медленный пути:
// ✅ Оптимальный подход
func process(value interface{}) int {
// Fast path — 90% случаев, инлайнится
if v, ok := value.(int); ok {
return v * 2
}
// Slow path — 10% случаев, может быть сложным
return complexProcessing(value)
}
func complexProcessing(value interface{}) int {
// Тут defer, циклы, паники — всё что угодно
// Инлайнинг не критичен, код выполняется редко
switch v := value.(type) {
case string:
defer logProcessing()
return parseAndProcess(v)
case []byte:
return processBytes(v)
}
return 0
}
• Используйте подсказки компилятору
//go:inline
func fastPath(x int) int {
return x * 2
}
⚠️ Директива-подсказка, но не гарантия. Компилятор сам решит.
Эта ошибка не о синтаксисе и не о логике. Это ошибка архитектурного мышления. Вы должны понимать, как компилятор оптимизирует код, и писать так, чтобы дать ему эту возможность.
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡12👍8❤1👾1
Разработчик Go на гибрид в Новосибирск
В офис в Москве или на гибрид Тим лид от 350 000 ₽
Golang-разработчик до 300 000 ₽ на удалёнку в Москве.
Бустер — удалённо (не только Москва)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🥱2👍1
13 октября вышли версии Go 1.25.3 и 1.24.9. Эти версии вышли всего через неделю после предыдущих обновлений, которые закрывали уязвимости в девяти пакетах стандартной библиотеки.
Новый фикс сфокусирован исключительно на дополнительном исправлении в модуле работы с сертификатами.
Если вы работаете с TLS, сертификатами или другими криптографическими примитивами, стоит обновиться на актуальные версии.
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤2👏1👾1
На первый взгляд может показаться, что фраза «пишу чистый код» звучит убедительно и профессионально — но на практике рекрутеры и ATS-системы давно привыкли к таким штампам и игнорируют их как пустые слова.
Когда вы пишете общие формулировки вместо конкретных достижений, ваше резюме теряется среди сотен похожих. Вместо «работаю с микросервисами» напишите «разработал и поддерживаю 12 микросервисов на Go, обрабатывающих 50K RPS с латентностью p99 < 100ms».
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1👾1
🤓 Пока Python стал π-thon, ты можешь стать Data Scientist'ом
В Proglib.academy стартует экспресс-курс «Математика для Data Science»: 10 живых вебинаров, практика на Python и спикеры из ВШЭ, Яндекс Практикума и Wildberries, которые всё разложат по полочкам.
В программе:
🔹 матан, линал, теория вероятностей;
🔹 3 практических проекта + викторина с розыгрышем TG Premium;
🔹 поддержка преподавателей и чат с единомышленниками;
🎁 Оплати курс до 19 октября — получи курс по базовой математике в подарок.
🗓️ Старт — 6 ноября
👉 Записаться на курс
В Proglib.academy стартует экспресс-курс «Математика для Data Science»: 10 живых вебинаров, практика на Python и спикеры из ВШЭ, Яндекс Практикума и Wildberries, которые всё разложат по полочкам.
В программе:
🔹 матан, линал, теория вероятностей;
🔹 3 практических проекта + викторина с розыгрышем TG Premium;
🔹 поддержка преподавателей и чат с единомышленниками;
🎁 Оплати курс до 19 октября — получи курс по базовой математике в подарок.
🗓️ Старт — 6 ноября
👉 Записаться на курс
❤1🥱1
🧩 Полуночный вопрос
Есть такой код:
Вопрос: какое значение будет у
Ответ:0 . И вот почему: когда мы используем , создаётся новый слайс, который начинается с 4-го элемента исходного массива.
Оператор всегда возвращает индексы относительно того слайса, по которому он итерируется, а не исходного массива.
🐸 Библиотека Go-разработчика
#ReadySetGo
Есть такой код:
nums := []int{1, 2, 3, 4, 5, 6, 7, 8}
for i, num := range nums[3:] {
fmt.Printf("i=%d, num=%d\n", i, num)
}Вопрос: какое значение будет у
i на первой итерации? 0 или 3?Ответ:
nums[3:]Оператор
range#ReadySetGo
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51❤5
На reddit разгорелся жаркий спор: можно ли дружить с коллегами по работе или это путь к проблемам? Одни считают, что дружба на работе — это нормально и даже полезно, другие уверены, что нужно держать дистанцию. Разберём обе стороны.
Мы проводим на работе треть своей жизни — так почему бы не общаться с людьми, которые нам интересны? Дружеская атмосфера в команде повышает продуктивность, упрощает коммуникацию и делает работу приятнее.
Но профессионализм требует дистанции. Когда ты дружишь с коллегой, сложно давать критическую обратную связь, объективно оценивать работу или конкурировать за повышение.
💬 Расскажите о своём опыте: помогала ли дружба в работе или, наоборот, создавала проблемы?
#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👾2
🧐 Хочешь в Data Science, но не знаешь, с чего начать?
Пройди короткий тест по математике — бот покажет, насколько ты готов к переходу и что стоит подтянуть.
👉 Пройти тест
Пройди короткий тест по математике — бот покажет, насколько ты готов к переходу и что стоит подтянуть.
Всего пару минут — и ты поймёшь, куда двигаться дальше.
👉 Пройти тест
😁6❤2
Ghost — это CLI-инструмент, который интегрирует возможности языковых моделей прямо в ваш терминал. Вместо того чтобы переключаться между редактором, браузером и ChatGPT, вы можете задавать вопросы и получать помощь не отрываясь от командной строки.
Основные возможности
• Помощь с командами. Забыли, как работает
tar с определёнными флагами? Ghost объяснит и покажет примеры прямо в терминале.• Объяснение ошибок. Скопировали непонятный stack trace? Ghost разберёт его и подскажет возможные решения.
• Генерация кода. Нужен быстрый скрипт или сниппет? Опишите задачу — получите готовый код.
Ghost использует API языковых моделей и работает как прокси между вами и AI. Вы настраиваете API-ключ один раз, и дальше просто вызываете Ghost из командной строки когда нужна помощь.
Чтобы пилить свои надёжные приложения нужно знать архитектуру. Её можно подтянуть на нашем интенсиве по архитектуре. До конца октября действует скидка 40%!
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤4👾1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁36❤1
Если вы всё ещё используете
git checkout для всего подряд, есть две команды, которые сделают вашу работу проще и безопаснее.— Git Switch: для работы с ветками
git switch заменяет checkout в операциях с ветками.Переключиться на существующую ветку:
git switch feature/api-refactoring
Создать новую ветку и сразу переключиться:
git switch -c feature/grpc-implementation
Команда делает только одно — работает с ветками. Меньше шансов случайно перезаписать файлы.
— Git Restore: для работы с файлами
git restore заменяет checkout в операциях с файлами.Откатить один файл к последнему коммиту:
git restore main.go
Откатить несколько файлов:
git restore config.yaml handler.go
Восстановить файл из конкретного коммита:
git restore --source HEAD~1 user_service.go
Явно показывает, что вы работаете с файлами, а не с ветками.
Типичный воркфлоу для разработчика:
# Создаем ветку для новой фичи
git switch -c feature/add-prometheus-metrics
# Работаем, что-то меняем в коде
# Упс, случайно поломали конфиг
# Откатываем конкретный файл
git restore config.yaml
# Проверяем статус
git status
# Коммитим нужные изменения
git add .
git commit -m "Add Prometheus metrics for HTTP handlers"
git push origin feature/add-prometheus-metrics
Случайно запустили go get не в той ветке и сломали зависимости:
# Откатываем go.mod и go.sum
git restore go.mod go.sum
# Возвращаем чистое состояние
go mod tidy
Особенно важно, когда работаете одновременно над несколькими микросервисами или модулями.
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21❤8⚡3
🎲 Мы не только учим, но и играем!
На экспресс-курсе «Математика для Data Science» — викторина с призом TG-Premium 🎁
Проверь знания, прокачай математику и забери приз.
‼️ Оплатишь до 19 октября — получишь базовый курс в подарок.
👉 Записаться на курс
На экспресс-курсе «Математика для Data Science» — викторина с призом TG-Premium 🎁
Проверь знания, прокачай математику и забери приз.
‼️ Оплатишь до 19 октября — получишь базовый курс в подарок.
👉 Записаться на курс
👾1
Сегодня ночью YouTube снова лёг. Видео не грузятся, страницы зависают, и все остались без привычной дозы подкастов на фоне.
Инфраструктура, на которую мы полагаемся каждый день, иногда даёт сбой. И каждый раз это напоминание: зависимость от одного источника — это риск.
Можно, к примеру, пройти наш курс по алгоритмам со скидкой в 40%.
#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4
🎓 Как вайб-кодинг меняет рынок IT-образования
Сегодня студенту достаточно сформулировать задачу голосом, чтобы получить результат быстрее, чем мы когда-то учились выводить первую строку на экран.
Почему за промпт-инжинирингом и работой с LLM уже выстраиваются очереди, а курсы в вузах и онлайн-школах переписывают свои программы? Разбираемся, как вайб-кодинг меняет философию обучения и рынок труда для разработчиков нового поколения.
➡️ В статье о том, что стоит за этим термином и как он меняет обучение IT-специалистов.
🐸 Библиотека Go-разработчика
Сегодня студенту достаточно сформулировать задачу голосом, чтобы получить результат быстрее, чем мы когда-то учились выводить первую строку на экран.
Почему за промпт-инжинирингом и работой с LLM уже выстраиваются очереди, а курсы в вузах и онлайн-школах переписывают свои программы? Разбираемся, как вайб-кодинг меняет философию обучения и рынок труда для разработчиков нового поколения.
Please open Telegram to view this post
VIEW IN TELEGRAM
😁15👍3🤔1🥱1
📐 Какую архитектуру выбрать для приложения
Нашли схемы популярных паттернов: от классического MVC до современного VIPER. Сравните потоки данных и решите, что подходит вашему проекту.
А чтобы потом построить такую архитектуру нужна база с нашего интенсива. До конца октября скидка 40%.
🐸 Библиотека Go-разработчика
#GoVisual
Нашли схемы популярных паттернов: от классического MVC до современного VIPER. Сравните потоки данных и решите, что подходит вашему проекту.
А чтобы потом построить такую архитектуру нужна база с нашего интенсива. До конца октября скидка 40%.
#GoVisual
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2