Многие знакомы с cd, ls, pwd, но под капотом терминала — море полезных шорткатов и трюков. Вот список тех, которые экономят время, исправляют ошибки и упрощают работу:
1. Запуск предыдущей команды —
!!
Бывает забываешь написать
sudo
, тогда можно просто sudo !!
2. Заменить очепятку и выполнить команду заново —
^old^new
3. Заменить все вхождения в команде —
!!:gs/old/new/
4. Поиск по тексту в файлах —
grep -R "pattern" .
5. Открыть последнюю команду в редакторе для редактирования —
fc
6. Проверка доступности порта —
nc -zv <host> <port>
7. Проверить чем занят порт —
lsof -i :<port>
Практикуйте — и они войдут в привычку.
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29❤2😁2
Библиотека failsafe-go долго не обновлялась с прошлого года, и вот — свежий релиз. Разработчик вернулся к активной доработке инструмента для отказоустойчивости в Go.
Что изменилось:
v0.8.0 — серьёзная переработка API: политики стали более гибкими, добавились удобные билдеры и улучшена работа с асинхронностью.
v0.8.1–0.8.3 — фиксы и улучшения, связанные с управлением retry/timeout, плюс доработка логики fallback.
v0.8.4 — свежий релиз, в котором можно напрямую задавать Budget в retry и hedge-политиках
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Иногда для ускорения не нужны сложные оптимизации — достаточно пары строк кода. В одном проекте команда заметила, что при каждом JSON-энкодинге создаётся новый bytes.Buffer. Это вело к лишним аллокациям и работе GC.
Решение оказалось простым: вынести буфер в sync.Pool и переиспользовать его для json.NewEncoder. В итоге:
— меньше аллокаций
— меньше работы сборщика мусора
— задержка p99 снизилась примерно на 35%.
Вот как это сделать:
var bufPool = sync.Pool{
New: func() interface{} {
return new(bytes.Buffer)
},
}
func encodeJSON(w http.ResponseWriter, v interface{}) error {
buf := bufPool.Get().(*bytes.Buffer)
buf.Reset()
defer bufPool.Put(buf)
if err := json.NewEncoder(buf).Encode(v); err != nil {
return err
}
_, err := w.Write(buf.Bytes())
return err
}
Буфер не создаётся каждый раз заново — он берётся из пула и после использования возвращается обратно.
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23❤6👏1😁1
Проект tunn — это небольшой инструмент для прокидывания портов. Его задача проста: быстро и прозрачно соединять локальные сервисы с внешними клиентами без лишних зависимостей.
В отличие от тяжёлых решений, tunn держит фокус на минимализме и скорости. Подходит для отладки, работы с микросервисами или когда нужно пробросить соединение через узлы сети.
Всё это — в духе утилиты взял и запустил, без лишней конфигурации.
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤3
🤫 Курс «ИИ-агенты для DS-специалистов»
Каждый технологический скачок оставляет позади тех, кто «подождал ещё чуть-чуть». ИИ-агенты — это новый рывок.
Уже через пару лет именно они будут драйвить аналитику и автоматизацию. Хотите остаться на гребне?
🖥️ На курсе «ИИ-агенты для DS-специалистов» мы разберём:
— создание AI-агентов с нуля
— сборку собственной RAG-системы
— интеграцию LLM под задачи бизнеса
📌 Курс подходит:
→ ML/AI инженерам (middle+ / senior)
→ Data Scientists
→ Backend и platform-инженерам
→ Advanced CS/DS студентам
⚡️ Старт уже скоро — 3 октября.
💰 До 28 сентября действует скидка — 57.000 ₽ вместо 69.000 ₽ (по промокоду datarascals).
🔗 Узнать больше о курсе и записаться
З.ы. если вы не успели на вебинар «ИИ-агенты: новая фаза развития искусственного интеллекта» — запись уже доступна
Каждый технологический скачок оставляет позади тех, кто «подождал ещё чуть-чуть». ИИ-агенты — это новый рывок.
Уже через пару лет именно они будут драйвить аналитику и автоматизацию. Хотите остаться на гребне?
🖥️ На курсе «ИИ-агенты для DS-специалистов» мы разберём:
— создание AI-агентов с нуля
— сборку собственной RAG-системы
— интеграцию LLM под задачи бизнеса
📌 Курс подходит:
→ ML/AI инженерам (middle+ / senior)
→ Data Scientists
→ Backend и platform-инженерам
→ Advanced CS/DS студентам
⚡️ Старт уже скоро — 3 октября.
💰 До 28 сентября действует скидка — 57.000 ₽ вместо 69.000 ₽ (по промокоду datarascals).
🔗 Узнать больше о курсе и записаться
З.ы. если вы не успели на вебинар «ИИ-агенты: новая фаза развития искусственного интеллекта» — запись уже доступна
🥱5❤1
🕵️♂️ 5 приёмов поиска утечек горутин в Go
Утечки горутин — скрытая проблема, которая со временем приводит к росту потребления памяти, деградации производительности и неожиданным падениям. В отличие от «обычных» багов, такие ошибки долго не проявляют себя, а в продакшене отлавливать их уже поздно.
Ниже 5 рабочих приёмов, которые помогут держать горутины под контролем.
1. Мониторинг количества горутин
Запуск фоновой задачи, которая периодически считывает
2. Трассировка с помощью
При сложных сценариях запускают трассировку жизненного цикла горутин: когда они создаются, когда завершаются, как взаимодействуют.
3. Контекстная отмена
Важно проксировать контекст через цепочку вызовов (например, в HTTP-хендлерах). Когда клиент прерывается или таймаут срабатывает — все дочерние горутины получают сигнал отмены и должны корректно завершаться.
4. Интеграция
В тестовой среде использовать goleak.VerifyTestMain или goleak.VerifyNone (внутри тестов) для автоматического обнаружения оставшихся горутин. Это помогает не допустить утечки до продакшена.
5. Graceful shutdown
При завершении сервера или приложения — ждать, пока работающие операции завершатся, использовать таймауты, отслеживать завершение горутин.
Эти паттерны не заменяют внимательного дизайна кода, но дают страховку
🐸 Библиотека Go-разработчика
#GoDeep
Утечки горутин — скрытая проблема, которая со временем приводит к росту потребления памяти, деградации производительности и неожиданным падениям. В отличие от «обычных» багов, такие ошибки долго не проявляют себя, а в продакшене отлавливать их уже поздно.
Ниже 5 рабочих приёмов, которые помогут держать горутины под контролем.
1. Мониторинг количества горутин
Запуск фоновой задачи, которая периодически считывает
runtime.NumGoroutine()
и сравнивает с базовым уровнем — если количество горутин выросло выше порога, сигнализировать (лог, алерт).go func() {
for range ticker.C {
n := runtime.NumGoroutine()
if n > base+50 { // ваш порог
log.Printf("горутин многовато: %d (base %d)", n, base)
}
}
}()
2. Трассировка с помощью
go tool trace
При сложных сценариях запускают трассировку жизненного цикла горутин: когда они создаются, когда завершаются, как взаимодействуют.
func main() {
f, _ := os.Create("trace.out")
defer f.Close()
_ = trace.Start(f)
defer trace.Stop()
for i := 0; i < 10; i++ {
go func() { time.Sleep(500 * time.Millisecond) }()
}
time.Sleep(2 * time.Second)
}
go run . # создаст trace.out
go tool trace trace.out
3. Контекстная отмена
Важно проксировать контекст через цепочку вызовов (например, в HTTP-хендлерах). Когда клиент прерывается или таймаут срабатывает — все дочерние горутины получают сигнал отмены и должны корректно завершаться.
func worker(ctx context.Context, jobs <-chan int) {
for {
select {
case <-ctx.Done():
log.Println("worker: cancelled")
return
case j, ok := <-jobs:
if !ok {
return
}
_ = j // делаем работу
}
}
}
func main() {
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
jobs := make(chan int)
go worker(ctx, jobs)
go func() { // имитация продьюсера
for i := 0; i < 100; i++ {
select {
case <-ctx.Done():
close(jobs)
return
case jobs <- i:
}
}
}()
time.Sleep(3 * time.Second)
}
4. Интеграция
goleak
в тестыВ тестовой среде использовать goleak.VerifyTestMain или goleak.VerifyNone (внутри тестов) для автоматического обнаружения оставшихся горутин. Это помогает не допустить утечки до продакшена.
func TestMain(m *testing.M) { // глобальная проверка
goleak.VerifyTestMain(m)
}
func TestNoLeaks(t *testing.T) {
defer goleak.VerifyNone(t)
// Демонстрация «правильной» горутины
done := make(chan struct{})
go func() {
time.Sleep(10 * time.Millisecond)
close(done)
}()
<-done
}
5. Graceful shutdown
При завершении сервера или приложения — ждать, пока работающие операции завершатся, использовать таймауты, отслеживать завершение горутин.
Эти паттерны не заменяют внимательного дизайна кода, но дают страховку
#GoDeep
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤5🔥2
🏗 Красивые таблицы в Go
Иногда данные хочется вывести не просто строками в консоль, а в аккуратной читаемой таблице. Чтобы не изобретать велосипеды с
Что умеет
— Форматировать данные в консольные таблицы.
— Поддерживает выравнивание колонок.
— Позволяет строить вложенные таблицы (nested).
Как использовать:
Вывод:
➡️ Сделать свою таблицу
🐸 Библиотека Go-разработчика
#GoToProduction
Иногда данные хочется вывести не просто строками в консоль, а в аккуратной читаемой таблице. Чтобы не изобретать велосипеды с
fmt.Printf
и ручными отступами, можно взять библиотеку tabby.Что умеет
— Форматировать данные в консольные таблицы.
— Поддерживает выравнивание колонок.
— Позволяет строить вложенные таблицы (nested).
Как использовать:
t := tabby.New()
t.AddHeader("ID", "Name", "Age")
t.AddLine(1, "Alice", 23)
t.AddLine(2, "Bob", 30)
t.Print()
Вывод:
ID Name Age
1 Alice 23
2 Bob 30
#GoToProduction
Please open Telegram to view this post
VIEW IN TELEGRAM
👍32❤4
🚀 Всё о курсе «ИИ-агенты для DS-специалистов»
❓ Зачем нужны ИИ-агенты?
Это системы, которые берут на себя задачи аналитики и автоматизации. Именно они становятся основой для работы с корпоративными данными и для поддержки принятия решений.
❓ Зачем мне курс?
Курс отвечает на три ключевых вопроса:
— Как построить собственную систему агентов с нуля?
— Каким образом использовать RAG-подход для работы с корпоративными данными?
— Как адаптировать LLM под реальные задачи бизнеса?
❓ Подходит ли это мне?
Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам.
Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке.
❓ Когда старт?
Обучение начинается 3 октября.
❓ Сколько стоит?
До 28 сентября действует скидка → 57 000 ₽ вместо 69 000 ₽ (промокод datarascals).
🔗 Описание программы и регистрация
❓ Зачем нужны ИИ-агенты?
Это системы, которые берут на себя задачи аналитики и автоматизации. Именно они становятся основой для работы с корпоративными данными и для поддержки принятия решений.
❓ Зачем мне курс?
Курс отвечает на три ключевых вопроса:
— Как построить собственную систему агентов с нуля?
— Каким образом использовать RAG-подход для работы с корпоративными данными?
— Как адаптировать LLM под реальные задачи бизнеса?
❓ Подходит ли это мне?
Курс рассчитан на специалистов уровня middle+ и senior: ML/AI инженеров, Data Scientists, backend и platform-разработчиков. Подойдёт и студентам CS/DS, если вы готовы к продвинутым практикам.
Запись вводной встречи «ИИ-агенты: новая фаза развития искусственного интеллекта» доступна по ссылке.
❓ Когда старт?
Обучение начинается 3 октября.
❓ Сколько стоит?
До 28 сентября действует скидка → 57 000 ₽ вместо
🔗 Описание программы и регистрация
❤2
🔥 Сегодня последний день скидки!
На недавнем вебинаре «ИИ-агенты: новая фаза развития AI» мы показали, как агенты уже меняют работу Data Scientists и инженеров.
Что тебя ждёт на курсе:
⚡️ создашь своего ИИ-агента с нуля
⚡️ соберёшь RAG-систему
⚡️ научишься адаптировать LLM под реальные данные бизнеса
⏳ До конца этого дня цена на курс 57 000 ₽. Уже завтра будет 69 000 ₽. Успевай записаться (используй промокодdatarascals ).
🔗 Записаться на курс
На недавнем вебинаре «ИИ-агенты: новая фаза развития AI» мы показали, как агенты уже меняют работу Data Scientists и инженеров.
Что тебя ждёт на курсе:
⚡️ создашь своего ИИ-агента с нуля
⚡️ соберёшь RAG-систему
⚡️ научишься адаптировать LLM под реальные данные бизнеса
⏳ До конца этого дня цена на курс 57 000 ₽. Уже завтра будет 69 000 ₽. Успевай записаться (используй промокод
🔗 Записаться на курс
❤1
Пробежимся быстро по новостям и обновлениям недели.
— Свежий Cup o' Go
— Go Flight Recorder
Flight Recorder — встроенный инструмент, который работает как «чёрный ящик» в самолёте. Его планируют добавить в стандартный стек Go.
— Failsafe-go v0.8.4
— Релиз tunn
#GoLive
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2
⏳ Последние часы со скидкой!
Мы уже закрыли вебинар «ИИ-агенты: новая фаза развития AI», но запись всё ещё доступна.
А дальше остаётся только практика. На курсе «ИИ-агенты для DS-специалистов» ты научишься разрабатывать агентов, собирать RAG-системы и адаптировать LLM под бизнес.
⏰ Сегодня цена ещё 57.000 ₽ с промокодом datarascals.
Завтра — 69.000 ₽.
👉 Успеть оплатить до полуночи
Мы уже закрыли вебинар «ИИ-агенты: новая фаза развития AI», но запись всё ещё доступна.
А дальше остаётся только практика. На курсе «ИИ-агенты для DS-специалистов» ты научишься разрабатывать агентов, собирать RAG-системы и адаптировать LLM под бизнес.
⏰ Сегодня цена ещё 57.000 ₽ с промокодом datarascals.
Завтра — 69.000 ₽.
👉 Успеть оплатить до полуночи
🥱2
Как вам контент этой недели? Что понравилось, а что не зашло?
Велком в комменты 👇
Please open Telegram to view this post
VIEW IN TELEGRAM
👏3❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁38💯3❤2🔥1👾1
У нас к вам несерьёзный вопрос — как вы называете X? Не букву, а социальную сеть. До сих пор говорите твиттер или привыкли, к тому, что это теперь икс?
Пишите свои варианты в комменты, а ещё подпишитесь на наш канал в твиттериксе
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Смотрите какие вакансии есть в нашем канале с вакансиями — Go jobs.
Software Engineer с ЗП от 6 тысяч €
Мидл разработчик в офис в Казань.
Удалённый мидл с плюсом.
#GoWork
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
🤖 Курс «ИИ-агенты для DS-специалистов»
Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! Первый вебинар пройдёт в день старта, а подробности вебинара можно найти на сайте.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
Последняя возможность в этом году освоить ИИ-агентов — курс стартует уже 3 октября! Первый вебинар пройдёт в день старта, а подробности вебинара можно найти на сайте.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
🌚3😁1
На реддите возникло обсуждение о том, как же правильно произносить название либы для логгирования — slog.
Одни уверены, что это «эс-лог», как аббревиатура.
Другие читают как «слог»
💬 А вы как произносите — эс-лог или слог?
#GoTalk
Please open Telegram to view this post
VIEW IN TELEGRAM
🥱11🤔1👾1
🤖 Курс «ИИ-агенты для DS-специалистов»
Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября!
Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности
Последняя возможность в этом году освоить ИИ-агентов с Proglib— старт живых вебинаров на курсе уже 3 октября!
Уже 24 студента изучают 5 лонгридов подготовительного модуля, чтобы сформировать базу к старту живых вебинаров с Никитой Зелинским.
📚 Бонус: при оплате до 30 сентября вы получите дополнительный лонгрид для подготовки к курсу. Это отличный способ подойти к занятиям уже с базой.
🔥 А ещё после прохождения курса у вас будет достаточно знаний, чтобы участвовать в хакатоне с призовым фондом 1 125 000 ₽.
🔗 Записаться на курс и узнать подробности